k8s 网络-同一个pod中容器通信
k8s 要解决:
- 容器与容器之间的通信
- Pod 之间通信
- Service到Pod之间通信
容器与容器之间的通信
在一个pod中创建多个container
[root@k8s-master pod]# cat multi_pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: multi-pod
labels:
app: multi-pod
spec:
containers:
- name: nginx
image: nginx:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
hostPort: 80
- name: redis
image: redis:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 6379
hostPort: 6379
创建后:
[root@k8s-node1 ~]# docker ps|grep multi
7cb321a927ca 7614ae9453d1 "docker-entrypoint.s…" k8s_redis_multi-pod_default_cc4adb3b-7103-4ac6-981f-94d6b2ea9b20_0
4e568d0580d6 f6987c8d6ed5 "/docker-entrypoint.…" k8s_nginx_multi-pod_default_cc4adb3b-7103-4ac6-981f-94d6b2ea9b20_0
940398a790b5 k8s.gcr.io/pause:3.5 "/pause" k8s_POD_multi-pod_default_cc4adb3b-7103-4ac6-981f-94d6b2ea9b20_0
可以发现,k8s不仅创建了两个容器,而且创建了一个 pause 的网络容器,用来接管 同一个 pod 下的网络,将 redis,nginx 网络加入 pause 网络, 实现同一个pod下多个容器之间的通信访问
结论
同一pod下的容器通信都是互通的