gpt4 book ai didi

kubernetes - 为什么 k8s wordpress 和 mysql 示例对 wordpress-mysql 使用 headless 服务?

转载 作者:行者123 更新时间:2023-12-02 11:36:13 27 4
gpt4 key购买 nike

该示例在此处描述 - https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/
wordpress-mysql 的 Service 对象是:

apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
clusterIP: None
headless 服务记录在此处 - https://kubernetes.io/docs/concepts/services-networking/service/#headless-services服务定义定义了选择器,所以我想 the following passage适用:

For headless Services that define selectors, the endpoints controllercreates Endpoints records in the API, and modifies the DNSconfiguration to return records (addresses) that point directly to thePods backing the Service


我在 Azure 中的 3 节点托管 k8s 集群上遵循了示例:
C:\work\k8s\mysql-wp-demo> kubectl.exe get ep
NAME ENDPOINTS AGE
kubernetes 52.186.94.71:443 47h
wordpress 10.244.0.10:80 5h33m
wordpress-mysql 10.244.3.28:3306 5h33m
C:\work\k8s\mysql-wp-demo> kubectl.exe get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
wordpress-584f8d8666-rlbf5 1/1 Running 0 5h33m 10.244.0.10 aks-nodepool1-30294001-vmss000001 <none> <none>
wordpress-mysql-55c74969cd-4l8d4 1/1 Running 0 5h33m 10.244.3.28 aks-nodepool1-30294001-vmss000003 <none> <none>
C:\work\k8s\mysql-wp-demo>
据我了解,从端点的角度来看没有区别。
有人可以向我解释 - 一般 headless 服务的意义是什么,特别是在这个例子中?

最佳答案

常规服务有一个虚拟 Service IP在每个节点上作为 iptables 或 ipvs 规则存在。然后,与此服务 IP 的新连接通过 DNAT 路由到其中一个 Pod 端点,以支持跨多个 Pod 的负载平衡形式。
headless service (这不是 ExternalName )将创建 DNS A具有匹配标签或名称的任何端点的记录。连接将直接转到单个 pod/端点,而无需遍历服务规则。
类型为 ExternalName 的服务只是一个 DNS CNAME记录在 kubernetes DNS 中。这些根据定义是 headless 的,因为它们是集群外部 IP 的名称。
链接的 myql 部署/服务示例正在引入 StatefulSet。这个 Deployment 基本上是一个单一的 pod statefulset。当您移动到具有多个 pod 的 StatefulSet 时,您通常希望使用特定名称来寻址 StatefulSet 的各个成员(请参阅 mdaniel 的评论)。
设置clusterIP: None的另一个原因是减轻 iptables 处理的负载,随着服务数量(即 iptables 规则)的增加而减慢。不需要多个 Pod 的应用程序不需要 Service IP。设置集群以使用 IPVS 在一定程度上缓解了速度缓慢的问题。
service flow

关于kubernetes - 为什么 k8s wordpress 和 mysql 示例对 wordpress-mysql 使用 headless 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63930051/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com