k8s中ingress,service,depoyment,pod如何关联
阅读原文时间:2023年07月09日阅读:2

k8s中pod通过label标签名称来识别关联,它们的label  name一定是一样的。ingress,service,depoyment通过selector 中app:name来关联

1、查询发布的deploymet控制器

[root@k8s-master1 ~]# kubectl get deployments.apps
NAME READY UP-TO-DATE AVAILABLE AGE
my-dep 1/1 1 1 3d7h

2、查询控制器my-dep的label标签名称

可以看到my-dep控制器的labels名称为my-dep,控制器中的pod对应的labels名称也是my-dep

3、查询发布的svc对应的label标签名称

可以看到my-dep这个service对应的labels名称也是my-dep

4、查询ingress对应的label标签名称

可以看到k8s-ingress这个ingress对应的label也是my-dep,有时候我们会误以为这个是service的名称,其实这个是service的label name

5. 在了解到他们是通过labe name来识别之后,我们就可以通过新增多个deploy来扩容我们的服务,deploy只需要保持label name一致即可

新增一个deploy,kubectl apply -f  nginx-deployment.yaml

[root@k8s-master1 ~]# cat nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-dep2
spec:
replicas: 1
selector:
matchLabels:
app: my-dep
template:
metadata:
labels:
app: my-dep
spec:
containers:
- name: nginx
image: centos-nginx:1.23.0
imagePullPolicy: Never
ports:
- containerPort: 80
restartPolicy: Always

查询depoy

查询pod

6、还是用之前发布的ingress来访问

可以看到两个my-dep和my-dep2都能访问到