东莞做外贸网站公司,wordpress如何设置会员中心,网络运营策划,东原ARC网站建设公司本节开始学习 Service。 我们不应该期望 Kubernetes Pod 是健壮的#xff0c;而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉。Deployment 等 controller 会通过动态创建和销毁 Pod 来保证应用整体的健壮性。换句话说#xff0c;Pod 是脆弱的#xff0c;但应用是… 本节开始学习 Service。 我们不应该期望 Kubernetes Pod 是健壮的而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉。Deployment 等 controller 会通过动态创建和销毁 Pod 来保证应用整体的健壮性。换句话说Pod 是脆弱的但应用是健壮的。 每个 Pod 都有自己的 IP 地址。当 controller 用新 Pod 替代发生故障的 Pod 时新 Pod 会分配到新的 IP 地址。这样就产生了一个问题 如果一组 Pod 对外提供服务比如 HTTP它们的 IP 很有可能发生变化那么客户端如何找到并访问这个服务呢 Kubernetes 给出的解决方案是 Service。 创建 Service Kubernetes Service 从逻辑上代表了一组 Pod具体是哪些 Pod 则是由 label 来挑选。Service 有自己 IP而且这个 IP 是不变的。客户端只需要访问 Service 的 IPKubernetes 则负责建立和维护 Service 与 Pod 的映射关系。无论后端 Pod 如何变化对客户端不会有任何影响因为 Service 没有变。 来看个例子创建下面的这个 Deployment 我们启动了三个 Pod运行 httpd 镜像label 是 run: httpdService 将会用这个 label 来挑选 Pod。 Pod 分配了各自的 IP这些 IP 只能被 Kubernetes Cluster 中的容器和节点访问。 接下来创建 Service其配置文件如下 ① v1 是 Service 的 apiVersion。 ② 指明当前资源的类型为 Service。 ③ Service 的名字为 httpd-svc。 ④ selector 指明挑选那些 label 为 run: httpd 的 Pod 作为 Service 的后端。 ⑤ 将 Service 的 8080 端口映射到 Pod 的 80 端口使用 TCP 协议。 执行 kubectl apply 创建 Service httpd-svc。 httpd-svc 分配到一个 CLUSTER-IP 10.99.229.179。可以通过该 IP 访问后端的 httpd Pod。 根据前面的端口映射这里要使用 8080 端口。另外除了我们创建的 httpd-svc还有一个 Service kubernetesCluster 内部通过这个 Service 访问 kubernetes API Server。 通过 kubectl describe 可以查看 httpd-svc 与 Pod 的对应关系。 Endpoints 罗列了三个 Pod 的 IP 和端口。我们知道 Pod 的 IP 是在容器中配置的那么 Service 的 Cluster IP 又是配置在哪里的呢CLUSTER-IP 又是如何映射到 Pod IP 的呢 答案是 iptables我们下节讨论。 书籍 1.《每天5分钟玩转Docker容器技术》https://item.jd.com/16936307278.html 2.《每天5分钟玩转OpenStack》https://item.jd.com/12086376.html