8. [CKA]考试之四层负载均衡Service
8.1 题目要求
重新配置一个已经存在的 deployment front-end,在名字为 nginx 的容器里面添加一个端口配置,名字为 http,暴露端口号为 80;
然后创建一个 service,名字为 front-end-svc,暴露该deployment 的 http 端口,并且 service 的类型为 NodePort。
8.2 官网位置
搜索:service 找到:服务(Service)
8.3 操作步骤
$ kubectl edit deploy front-end
imagePullPolicy:ifNotPresent
name:nginx
ports:
- containerPort: 80
name: http
第二步:添加Service
- 方式一:命令行
kubectl expose deploy front-end --name=front-end-svc --port=80 --target-port=http --type=NodePort
- 方式二: yaml模式
apiVersion: v1
kind: Service
metadata:
name: front-end-svc
spec:
type: NodePort
ports:
- port: 80
targetPort: http
8.4 知识扩充
- port、nodePort、targetPort是在service中配置。
- containerPort是在pod中配置
1、port
port是k8s集群内部(node节点)访问service的端口,即通过clusterIP: port可以访问到某个service。
2、nodePort
nodePort是外部访问k8s集群中service的端口,通过nodeIP: nodePort可以从外部(浏览器/其他集群)访问到某个service。
3、targetPort
targetPort是pod的端口,从port和nodePort来的流量经过kube-proxy流入到后端pod的targetPort上,最后进入容器(一个pod中可以有多个容器)。
4、containerPort
containerPort是pod内部容器的端口,targetPort映射到containerPort。