1.1 containerPort、port、nodePort、targetPort的区别与联系 containerPort:Container容器暴露的端口。containerPort是在pod控制器中定义的、pod中的容器需要暴露的端口。 port:service暴露在集群中的端口,仅限集群内部访问。port是暴露在cluster (集群网络)上的端口,提供了集群内部客户端访问service的入口,即clusterIP:port。
2.nodeport,是将外部请求到k8s集群内部访问的node节点端口,外部请求通过nodeIP:nodePort到服务器,系统通过nodePort->service端口的映射,将请求转发到对应service 3.targetPort,是pod端口,流量经过service后,通过kube-proxy转发到service后端的随机一pod上,最后进入容器。 4.containerPort,pod内容器的端口,流量最后进入容器...
除了一个容器的Pod,我们还可以创建包含多个容器的Pod。 下面是一个示例Pod的YAML文件,其中包含两个容器: ```yaml apiVersion: v1 kind: Pod metadata: name: my-pod labels: app: my-app spec: containers: - name: nginx-container image: nginx:latest ports: - containerPort: 80 - name: mysql-contai...
--ipc=container:fake_k8s_pod_pause \ --pid=container:fake_k8s_pod_pause ghost 到这里,我就纯手工模拟出了一个符合 K8S Pod 模型的 “Pod” ,只是它并不由 K8S 进行管理。 这个“Pod” 由一个 fake_k8s_pod_pause 容器(负责提供可稳定共享的命名空间)和两个共享 fake_k8s_pod_pause 容器命名空间的...
| 1 | 创建一个Pod | | 2 | 在Pod的容器中定义ContainerPort | | 3 | 部署Pod到集群中 | | 4 | 检查Pod是否正常运行 | 接下来,让我们逐步解释每一步需要做什么,并提供相应的代码示例: ### 步骤一:创建一个Pod 首先,我们需要创建一个Pod的YAML配置文件,如下所示: ...
targetPort是pod上的端口,从port/nodePort上来的数据,经过kube-proxy流入到后端pod的targetPort上,最后进入容器。 与制作容器时暴露的端口一致(使用DockerFile中的EXPOSE),例如官方的nginx(参考DockerFile)暴露80端口。 我们这里设置为web服务端口8080。 4 containerPort ...
Pod中首先会创建一个基础容器(Infra container),然后以join network namespace的方式,将其它容器都与基础容器的网络关联起来,这样就实现了pod内容器间共享网络资源的功能。所以基础容器永远都是Pod 里面第一个被创建的容器,等待其他容器的加入。Pod的生命周期只跟基础容器一致。基础容器是一个非常小的镜像,叫做http:/...
targetPort是pod上的端口,从port/nodePort上来的数据,经过kube-proxy流入到后端pod的targetPort上,最后进入容器。 与制作容器时暴露的端口(containerPort)一致(使用DockerFile中的EXPOSE),例如官方的nginx(参考DockerFile)暴露80端口。 对应的service.yaml如下: ...
attach Attach 到一个运行中的 container exec 在一个 container 中执行一个命令 port-forward Forward one or more local ports to a pod proxy 运行一个 proxy 到 Kubernetes API server cp 复制 files 和 directories 到 containers 和从容器中复制 files 和 directories. ...
containerPort 是在 pod 控制器中定义的、pod 中的容器需要暴露的端口,通常暴露的端口就是你程序启动时的端口。 6 小结 总的来说,port 和 nodePort 都是 service 的端口,前者暴露给 k8s 集群内部服务访问,后者暴露给 k8s 集群外部流量访问。从上两个端口过来的数据都需要经过反向代理 kube-proxy ,流入后端 pod...