Kubernetes服务速查表
时间:2020-01-09 10:34:21 来源:igfitidea点击:
说明
Kubernetes服务用于将Pod暴露在集群之外。记住如何编写服务清单的结构可能很困难,并且除结构之外,仅记住使用哪个apiVersion可能更具挑战性。
在本文中,我们将学习如何构建服务清单,以及如何使用kubectl create命令动态地动态生成一个清单。
服务清单
典型的Kubernetes配置清单被编写并存储为YAML文件。服务清单的结构将类似于以下示例。
apiVersion: v1 kind: Service metadata: name: hello-world-service spec: type: LoadBalancer selector: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx ports: - name: http port: 80 protocol: TCP targetPort: http
生成LoadBalancer服务
要使用kubectl生成负载平衡器类型的服务,请使用以下命令。 --dry-run
标志阻止kubectl向Kubernetes api-controller发送请求,而-o yaml
标志指示kubectl在YAML中输出结果。
kubectl create service loadbalancer my-service --tcp=80:3000 --dry-run -o yaml
上面的示例将为具有以下属性的服务生成配置:
- 负载平衡器类型
- 命名为hello-world-service
- 服务端口80
- 定位后端端口3000
该命令的输出将类似于以下内容:
apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: app: my-service name: my-service spec: ports: - name: 80-3000 port: 80 protocol: TCP targetPort: 3000 selector: app: my-service type: LoadBalancer status: loadBalancer: {}
在使用配置文件之前,需要进行一点清理。 Kubernetes集群的许多字段不应作为配置存储。
apiVersion: v1 kind: Service metadata: labels: app: my-service name: my-service spec: ports: - name: 80-3000 port: 80 protocol: TCP targetPort: 3000 selector: app: my-service type: LoadBalancer
生成NodePort服务
生成NodePort服务与LoadBalancer服务器相同,唯一的区别是在命令中使用的是nodeport而不是loadbalancer。
kubectl create service nodeport my-service --tcp=80:3000 --dry-run -o yaml
生成ClusterIP服务配置
与负载平衡器类型和节点端口类型一样,使用以下命令生成ClusterIP类型。
kubectl create service clusterip my-service --tcp=80:3000 --dry-run -o yaml