创建service
创建Service
1. 通过容器云控制台创建Service
1.1. 在创建工作负载过程中开启Service
登录容器云控制台;
若默认进入的集群非目标集群,可在顶部的集群切换栏,切换进入集群;
在容器云控制台左侧导航栏中,选择 【工作负载】并选择工作负载类型;
单击【创建】,进入【创建工作负载】页面;
在【扩展配置】选择开启Service,根据实际需求完成参数配置:
- 名称:设置Service的名称
- 类型:根据实际需求选择ClusterIP或LoadBalancer类型,ClusterIP类型支持开启Headless Service,LoadBalancer类型分为公网访问和私网访问;
- 端口映射:根据实际需求配置端口映射规则,映射规则包括名称、服务端口、容器端口和协议;
- 标签:输入键-值对(Key-Value),为Service设置标签;
注释:输入键-值对(Key-Value),为Service设置注释;
完成工作负载的配置后,单击创建,完成工作负载创建的同时,也会创建相应的Service。
1.2. 为已有工作负载创建Service
登录容器云控制台;
若默认进入的集群非目标集群,可在顶部的集群切换栏,切换进入集群;
在容器云控制台左侧导航栏中,选择 【网络管理】-【服务】;
单击【创建】,进入【创建Service】页面。根据实际需求,完成参数设置:
- 名称:设置Service的名称;
- 命名空间:根据实际需求选择集群下的命名空间;
- 类型:根据实际需求选择ClusterIP或LoadBalancer类型,ClusterIP类型支持开启headless service,LoadBalancer类型分为公网访问和私网访问;
- 关联:根据实际需求选择工作负载或选择添加pod标签,工作负载支持无状态和有状态2种;
- 端口映射:根据实际需求配置端口映射规则,映射规则包括名称、服务端口、容器端口和协议;
- 标签:输入键-值对(Key-Value),为Service设置标签;
- 注解:输入键-值对(Key-Value),为Service设置注解;
单击确定,完成Service创建。
2. 通过YAML创建Service
登录容器云控制台;
若默认进入的集群非目标集群,可在顶部的集群切换栏,切换进入集群;
在容器云控制台左侧导航栏中,选择 【网络管理】-【服务】;
单击【YAML 创建】,完成参数设置:
- 模板:支持使用容器云提供的系统模板或自定义模板;
- 模板内容:选择好模板后,在“模板内容”区域可以对模板进行编辑。完成参数设置后,点击“保存模板”可将改动保存到自定义模板;
单击确定,完成Service创建。
如果通过YAML创建私网访问方式的LoadBalancer类型的Service,必须添加annotation(注释):service.kubernetes.io/csk-loadbalancer-type:intranet。
3. 通过kubectl创建Service
YAML示例:
apiVersion: "v1"
kind: "Service"
metadata:
name: "clusterip"
namespace: "default"
spec:
ports:
- name: "http"
port: 80
protocol: "TCP"
targetPort: 80
selector:
app/deployment: "nginx"
sessionAffinity: "None"
type: "ClusterIP
参考YAML示例,准备 Service YAML 文件;
安装 kubectl,并连接集群。操作详情请参见 连接集群 ;
执行以下命令,创建 Service YAML 文件;
kubectl --kubeconfig KUBECONFIG_NAME create -f Service YAML 文件名称
例如,创建一个文件名为 my-service.yaml 的 Service YAML 文件,则执行以下命令:
kubectl --kubeconfig KUBECONFIG_NAME create -f my-service.yaml
执行以下命令,验证创建是否成功;
kubectl --kubeconfig KUBECONFIG_NAME get services
返回类似以下信息,即表示创建成功。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-service ClusterIP 172.16.255.12 <none> 80/TCP 1d14h