当前位置: 首页 > news >正文

可以下载的网站模板文登南海建设局网站

可以下载的网站模板,文登南海建设局网站,灵宝网站制作工作室,用cms建设网站课程宅门文章目录 一、概述二、适用场景三、基本操作1、官网的DaemonSet资源清单2、字段解释3、编写DaemonSet资源清单4、基于yaml创建DaemonSet5、注意点5.1、必须字段5.2、DaemonSet 对象的名称5.3、.spec.selector 与 .spec.template.metadata.labels之间的关系 6、查看DaemonSet6.1… 文章目录 一、概述二、适用场景三、基本操作1、官网的DaemonSet资源清单2、字段解释3、编写DaemonSet资源清单4、基于yaml创建DaemonSet5、注意点5.1、必须字段5.2、DaemonSet 对象的名称5.3、.spec.selector 与 .spec.template.metadata.labels之间的关系 6、查看DaemonSet6.1、查看DaemonSet列表6.2、查看 DaemonSet 控制器所创建的 Pod 副本信息 7、滚动更新7.1、查看DaemonSet详情7.2、更新nginx镜像版本7.3、查看滚动更新状态7.4、查看DS滚动更新过程7.5、查看DS滚动更新版本 8、版本回退8.1、回滚8.2、查看版本回退情况 9、删除DaemonSet9.1、直接删除DS9.2、基于创建的资源清单删除DS 四、DaemonSet调度1、调度方式2、指定nodeName节点运行2.1、原理机制2.2、示例2.2.1、创建一个DaemonSet资源清单指定nodeName2.2.2、应用 DaemonSet2.2.3、查看 DaemonSet Pod 的状态 3、通过标签运行 (nodeSelector)3.1、原理机制3.2、示例3.2.1、给 k8s-node1 添加标签3.2.2、创建DaemonSet 资源清单使用nodeSelector3.2.3、应用 DaemonSet3.2.4、查看 DaemonSet Pod 的状态3.2.5、删除k8s-node1上的标签 4、通过亲和力调度 (node Affinity 和 node Anti-affinity)4.1、Node Affinity (节点亲和性)4.1.1、原理4.1.2、给node-k8s2添加标签4.1.3、创建 DaemonSet 资源清单使用 nodeAffinity4.1.4、应用DaemonSet4.1.5、查看 DaemonSet Pod 的状态 4.2、Node Anti-affinity (节点反亲和性)4.2.1、原理4.2.2、给node-k8s2添加标签4.2.3、创建 DaemonSet 资源清单使用 node Anti-affinity4.2.4、应用DaemonSet4.2.5、查看 DaemonSet Pod 的状态 5、污点与容忍度Tolerations 和 Taints5.1、原理5.2、示例5.2.1、给 k8s-node1 添加 taint5.2.2、创建 DaemonSet 资源清单5.2.3、应用Daemonset5.2.4、 查看 DaemonSet Pod 的状态 五、如何与 DaemonSet 中的 Pod 进行通信1、 推送Push1.1、实现1.2、示例 2、 NodeIP 和已知端口2.1、实现2.2、示例 3、DNS3.1、实现3.2、示例 4、Service4.1、实现4.2、示例 一、概述 DaemonSet 确保全部或者某些节点上运行一个 Pod 的副本。 当有节点加入集群时 也会为他们新增一个 Pod 。 当有节点从集群移除时这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 DaemonSet 的主要作用是在 Kubernetes 集群里运行一个 Daemon Pod。 DaemonSet 只管理 Pod 对象然后通过 nodeAffinity 和 Toleration 这两个调度器参数的功能保证了每个节点上有且只有一个 Pod 二、适用场景 DaemonSet适用于每个node节点均需要部署一个守护进程的场景 日志采集agent如fluentd或logstash监控采集agent如Prometheus Node Exporter,Sysdig Agent,Ganglia gmond分布式集群组件如Ceph MONCeph OSDglusterdHadoop Yarn NodeManager等k8s必要运行组件如网络flannelweavecalicokube-proxy等 三、基本操作 1、官网的DaemonSet资源清单 apiVersion: apps/v1 kind: DaemonSet metadata:name: fluentd-elasticsearchnamespace: kube-systemlabels:k8s-app: fluentd-logging spec:selector:matchLabels:name: fluentd-elasticsearchtemplate:metadata:labels:name: fluentd-elasticsearchspec:tolerations:# 这些容忍度设置是为了让该守护进程集在控制平面节点上运行# 如果你不希望自己的控制平面节点运行 Pod可以删除它们- key: node-role.kubernetes.io/control-planeoperator: Existseffect: NoSchedule- key: node-role.kubernetes.io/masteroperator: Existseffect: NoSchedulecontainers:- name: fluentd-elasticsearchimage: quay.io/fluentd_elasticsearch/fluentd:v2.5.2resources:limits:memory: 200Mirequests:cpu: 100mmemory: 200MivolumeMounts:- name: varlogmountPath: /var/log# 可能需要设置较高的优先级类以确保 DaemonSet Pod 可以抢占正在运行的 Pod# priorityClassName: importantterminationGracePeriodSeconds: 30volumes:- name: varloghostPath:path: /var/log2、字段解释 apiVersion: apps/v1 #指定YAML文件的API版本这里是apps/v1 kind: DaemonSet #定义资源类型这里是DaemonSet metadata: #包含DaemonSet的元数据name: fluentd-elasticsearch #此DaemonSet的名称namespace: kube-system #定义DaemonSet所属的命名空间labels: #定义标签k8s-app: fluentd-logging #此标签表示该DaemonSet与日志处理有关 spec: #DaemonSet的规约包含了DaemonSet的规格和行为的详细配置selector: #定义了DaemonSet所管理的Pods的标签选择器即哪些Pods应该被这个DaemonSet管理。这里matchLabels必须与template.metadata.labels相匹配。matchLabels:name: fluentd-elasticsearchtemplate: #Pod的模板用于创建和管理DaemonSet下的Podsmetadata: #Pod的元数据这里包含了与spec.selector.matchLabels相匹配的标签。labels:name: fluentd-elasticsearchspec: #Pod的规约tolerations: #定义了Pod可以容忍的节点污点允许Pod在带有特定污点的节点上运行。这里配置了两个容忍度分别针对控制平面节点和标记为master的节点确保日志采集容器可以在这些特殊节点上运行。# 这些容忍度设置是为了让该守护进程集在控制平面节点上运行# 如果你不希望自己的控制平面节点运行 Pod可以删除它们- key: node-role.kubernetes.io/control-plane #污点的键,通常表示控制平面节点的标签。operator: Exists #Exists表示只要节点上有与key匹配的污点无论其值是什么都将被视为匹配effect: NoSchedule #NoSchedule表示如果节点上存在与key匹配的污点则默认情况下不允许Pod被调度到该节点。但是由于这个Pod声明了对该污点的容忍度所以Pod可以被调度到带有node-role.kubernetes.io/control-plane污点的节点上。- key: node-role.kubernetes.io/master #指向标记为master的节点的污点键。operator: Exists #只要节点上有与key匹配的污点无论其值是什么都将被视为匹配。effect: NoSchedule #表明默认情况下没有相应容忍度的Pod将不能被调度到带有node-role.kubernetes.io/master污点的节点上。但是由于这个Pod声明了对该污点的容忍度所以Pod可以被调度到带有node-role.kubernetes.io/master污点的节点上。containers: #Pod的容器配置- name: fluentd-elasticsearch #容器的名称image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2 #指定容器的镜像来源resources: #定义了容器的资源限制和请求limits: #容器的最大资源限制memory: 200Mirequests: #容器启动时请求的最小资源量cpu: 100mmemory: 200MivolumeMounts: #容器如何挂载卷- name: varlog #指定了要挂载的卷的名称mountPath: /var/log #定义了容器内部挂载卷的路径# 可能需要设置较高的优先级类以确保 DaemonSet Pod 可以抢占正在运行的 Pod# priorityClassName: importantterminationGracePeriodSeconds: 30 #定义了当Pod被删除时Kubernetes等待的秒数以允许容器优雅地关闭。volumes: #定义Pod可以使用的卷- name: varlog #定义了一个卷的名称hostPath: #指定了这个卷的主机路径path: /var/log3、编写DaemonSet资源清单 daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata:name: simple-daemonsetnamespace: default spec:selector:matchLabels:app: simple-daemonset-apptemplate:metadata:labels:app: simple-daemonset-appspec:containers:- name: nginx-containerimage: nginx:latestports:- containerPort: 804、基于yaml创建DaemonSet kubectl apply -f daemonset.yaml 5、注意点 5.1、必须字段 DaemonSet需要apiVersion、kind 、metadata 和spec字段 以下是DaemonSetYAML定义中最基本的必需字段 apiVersion: apps/v1 kind: DaemonSet metadata:name: daemonset-namenamespace: namespace spec:selector:matchLabels:label-key: label-valuetemplate:metadata:labels:label-key: label-valuespec:containers:- name: container-nameimage: image-nameapiVersion指定YAML文件使用的Kubernetes API版本。对于DaemonSet通常使用apps/v1。 kind指定资源类型这里应为DaemonSet。 metadata nameDaemonSet的名称必须是唯一的。namespaceDaemonSet所在的命名空间默认为default但强烈建议明确指定。 specDaemonSet的规格定义了它的行为和管理的Pod的模板。 selector选择器用于标识DaemonSet管理的Pods。 matchLabels一个键值对的映射用于匹配DaemonSet管理的Pods的标签。这是必须的用于确保DaemonSet管理的Pods与之关联。 templatePod的模板定义了DaemonSet创建的Pods的结构。 metadataPod的元数据其中必须包含与spec.selector.matchLabels相匹配的labels字段。specPod的规格定义了容器、卷、网络设置等。 containers一个或多个容器的列表每个容器都需要定义name和image。 5.2、DaemonSet 对象的名称 DaemonSet 对象的名称必须是一个合法的 DNS 子域名。 不能超过 253 个字符只能包含小写字母、数字以及 ‘-’ 和 ‘.’必须以字母数字开头必须以字母数字结尾 5.3、.spec.selector 与 .spec.template.metadata.labels之间的关系 .spec.selector 必须与 .spec.template.metadata.labels 匹配。这意味着 matchLabels 中定义的每个键值对都必须存在于 .spec.template.metadata.labels 中以确保DaemonSet能够正确地选择它所创建的Pods。如果 .spec.selector 中的标签是 .spec.template.metadata.labels 的子集则这种匹配是有效的。但如果 .spec.template.metadata.labels 中缺少 .spec.selector 中的任何一个标签或者标签值不同那么配置将被视为无效Kubernetes API将拒绝这个配置。 6、查看DaemonSet 6.1、查看DaemonSet列表 kubectl get ds -n default -o wideNAMEDaemonSet的名称。在这个例子中DaemonSet的名称是simple-daemonset。 DESIRED这是DaemonSet期望在集群中运行的Pod数量。对于DaemonSet而言这通常是集群中节点的数量因为DaemonSet的目标是在每个节点上运行至少一个Pod的实例。在这个例子中DESIRED的值是2是因为集群有两个节点。 CURRENT这是DaemonSet当前管理的Pod数量。理想情况下CURRENT的值应该等于DESIRED的值这意味着DaemonSet已经达到了其目标状态。在这个例子中CURRENT的值也是2与DESIRED相匹配。 READY这是DaemonSet管理的Pod中处于就绪状态的数量。就绪状态Ready意味着Pod中的所有容器都已经启动并且健康检查如果有的话已通过。在这个例子中READY的值是2表明Pod已经准备好并正在运行。 UP-TO-DATE这是当前正在运行的Pod中与DaemonSet最新模板匹配的数量。当DaemonSet更新其Pod模板时这个数字可以帮助你跟踪更新进度。在这个例子中UP-TO-DATE的值是2意味着所有运行的Pod都使用了最新的模板。 AVAILABLE这是DaemonSet管理的Pod中可以服务流量的数量。这个数字通常与READY相同除非某些Pod由于某种原因被标记为不可用。在这个例子中AVAILABLE的值是2与READY一致。 NODE SELECTOR这是DaemonSet使用的节点选择器它定义了哪些节点可以运行DaemonSet的Pod。表示DaemonSet没有使用节点选择器它的Pod可以在任何节点上运行。如果NODE SELECTOR包含特定的键值对那么DaemonSet的Pod将仅在具有相应标签的节点上运行。 AGE这是DaemonSet的创建时间以持续时间的形式给出。在这个例子中DaemonSet的AGE是65s意味着它在65秒前创建。 6.2、查看 DaemonSet 控制器所创建的 Pod 副本信息 kubectl get pods -n default -o wide7、滚动更新 7.1、查看DaemonSet详情 kubectl get ds -n defaultkubectl get daemonset simple-daemonset -n default -o json | jq .spec.updateStrategy可以看到DaemonSet支持RollingUpdate滚动更新策略 RollingUpdate这是默认的更新策略。使用 RollingUpdate 更新策略时在更新 DaemonSet 模板后 老的 DaemonSet Pod 将被终止并且将以受控方式自动创建新的 DaemonSet Pod。 更新期间最多只能有 DaemonSet 的一个 Pod 运行于每个节点上。maxSurge定义了在更新过程中可以超出desiredNumberScheduled期望的Pod数量的额外Pod数量。在这个例子中maxSurge设置为0意味着在更新过程中不会创建超过当前期望数量的额外Pod。换句话说DaemonSet在终止一个旧的Pod之前不会创建一个新的Pod。maxUnavailable定义了在更新过程中可以有多少Pod不可用。maxUnavailable设置为1意味着在更新过程中可以有最多1个Pod不可用。这通常发生在旧的Pod被终止而新的Pod尚未完全启动并变得可用时。type 为 RollingUpdate 是要启用 DaemonSet 的滚动更新功能必须设置的 7.2、更新nginx镜像版本 kubectl set image daemonsets simple-daemonset nginx-containernginx:1.14.0 -n default7.3、查看滚动更新状态 kubectl rollout status ds simple-daemonset -n default7.4、查看DS滚动更新过程 kubectl describe ds simple-daemonset -n default7.5、查看DS滚动更新版本 kubectl rollout history ds simple-daemonset -n defaultREVERSION1就是初始版本 8、版本回退 8.1、回滚 kubectl rollout undo daemonset -n default simple-daemonset --to-revision18.2、查看版本回退情况 kubectl describe ds simple-daemonset -n default9、删除DaemonSet 9.1、直接删除DS kubectl delete ds simple-daemonset -n default9.2、基于创建的资源清单删除DS kubectl delete -f daemonset.yaml四、DaemonSet调度 1、调度方式 DaemonSet通过kubernetes默认的调度器scheduler会在所有的node节点上运行一个Pod副本可以通过如下三种方式将Pod运行在部分节点上 指定 nodeName 节点运行通过标签运行 nodeSelector通过亲和力调度 node Affinity 和 node Anti-affinity污点与容忍度Tolerations 和 TaintsPriority 和 Preemption (优先级和抢占) 2、指定nodeName节点运行 这种方式通常不用于 DaemonSet因为 DaemonSet 的目标是在尽可能多的节点上运行 Pod 副本。但是可以通过 .spec.nodeName 来指定特定节点运行 Pod。 2.1、原理机制 当为 Pod 指定了具体的 nodeName 后Kubernetes 调度器将跳过调度过程直接将 Pod 分配给指定的节点。这种方式通常用于测试目的或者在特殊场景下使用例如当您需要确保某个 Pod 在特定节点上运行时。 2.2、示例 2.2.1、创建一个DaemonSet资源清单指定nodeName cat EOF daemonset-nodename.yaml apiVersion: apps/v1 kind: DaemonSet metadata:name: daemonset-nodename spec:selector:matchLabels:way: nodenametemplate:metadata:labels:way: nodenamespec:nodeName: k8s-node1 # 指定 nodeNamecontainers:- name: daemon-nodename-containerimage: nginx:latest EOF2.2.2、应用 DaemonSet kubectl apply -f daemonset-nodename.yaml2.2.3、查看 DaemonSet Pod 的状态 kubectl get pods -l waynodename -o wide3、通过标签运行 (nodeSelector) nodeSelector 是一种简单的方式用于指定 Pod 应该运行在具有特定标签的节点上。当在 Pod 模板中定义了 nodeSelectorKubernetes 调度器会将 Pod 分配到具有相应标签的节点上。 3.1、原理机制 需要在节点上设置特定的标签。在 DaemonSet 的 Pod 模板中定义 nodeSelector指定节点标签。Kubernetes 调度器会根据 nodeSelector 将 Pod 分配到符合条件的节点上。 3.2、示例 3.2.1、给 k8s-node1 添加标签 kubectl label nodes k8s-node1 roleworker3.2.2、创建DaemonSet 资源清单使用nodeSelector cat EOF daemonset-nodeselector.yaml apiVersion: apps/v1 kind: DaemonSet metadata:name: daemonset-nodeselector spec:selector:matchLabels:way: nodeSelectortemplate:metadata:labels:way: nodeSelectorspec:nodeSelector: # 使用 nodeSelectorrole: workercontainers:- name: daemonset-nodeselector-containerimage: nginx:latest EOF3.2.3、应用 DaemonSet kubectl apply -f daemonset-nodeselector.yaml3.2.4、查看 DaemonSet Pod 的状态 kubectl get pods -l waynodeSelector -o wide3.2.5、删除k8s-node1上的标签 测试完及时删除标签 kubectl label nodes k8s-node1 role-4、通过亲和力调度 (node Affinity 和 node Anti-affinity) 4.1、Node Affinity (节点亲和性) 4.1.1、原理 Node Affinity 是一种调度策略允许定义的 Pod 必须或应该调度到哪些节点上。这种策略分为两类requiredDuringSchedulingIgnoredDuringExecution 和 preferredDuringSchedulingIgnoredDuringExecution。requiredDuringSchedulingIgnoredDuringExecution 表示必须满足的硬性要求。preferredDuringSchedulingIgnoredDuringExecution 表示可选的偏好。 4.1.2、给node-k8s2添加标签 按照节点亲和性原理pod最终会被调度到k8s-node2这个节点上 kubectl label nodes k8s-node2 roleworker4.1.3、创建 DaemonSet 资源清单使用 nodeAffinity cat EOF daemonset-affinity.yaml apiVersion: apps/v1 kind: DaemonSet metadata:name: daemonset-affinity spec:selector:matchLabels:way: nodeAffinitytemplate:metadata:labels:way: nodeAffinityspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: roleoperator: Invalues:- workercontainers:- name: daemon-affinity-containerimage: nginx:latest EOF4.1.4、应用DaemonSet kubectl apply -f daemonset-affinity.yaml4.1.5、查看 DaemonSet Pod 的状态 kubectl get pods -l waynodeAffinity -o wide4.2、Node Anti-affinity (节点反亲和性) 4.2.1、原理 Node Anti-affinity 是一种调度策略允许您定义 Pod 不应该调度到哪些节点上。这种策略也是分为两类requiredDuringSchedulingIgnoredDuringExecution 和 preferredDuringSchedulingIgnoredDuringExecution。requiredDuringSchedulingIgnoredDuringExecution 表示必须满足的硬性要求。preferredDuringSchedulingIgnoredDuringExecution 表示可选的偏好。 4.2.2、给node-k8s2添加标签 按照节点反亲和性原理节点不会被调度到k8s-node2上 kubectl label node k8s-node2 ROLEworker24.2.3、创建 DaemonSet 资源清单使用 node Anti-affinity cat EOF daemonset-Anti-affinity.yaml apiVersion: apps/v1 kind: DaemonSet metadata:name: daemonset-anti-affinity spec:selector:matchLabels:way: Anti-affinitytemplate:metadata:labels:way: Anti-affinityspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: ROLEoperator: DoesNotExist- key: ROLEoperator: NotInvalues:- worker2containers:- name: daemonset-anti-affinity-containerimage: nginx:latest EOF4.2.4、应用DaemonSet kubectl apply -f daemonset-Anti-affinity.yaml4.2.5、查看 DaemonSet Pod 的状态 kubectl get pods -l wayAnti-affinity -o wide5、污点与容忍度Tolerations 和 Taints Taints污点 是节点上的标记用于排斥 Pod。Tolerations容忍度 则是 Pod 上的配置用于容忍节点上的 taints。 5.1、原理 节点可以设置 taints 来排斥 Pod。Pod 可以设置 tolerations 来容忍这些 taints。Kubernetes 调度器会根据 tolerations 和 taints 的匹配情况来决定 Pod 是否可以被调度到节点上。 5.2、示例 5.2.1、给 k8s-node1 添加 taint k8s-node1: 有污点 example.com/taint-keytaint-value:NoSchedulek8s-node2: 没有污点 kubectl taint nodes k8s-node1 example.com/taint-keytaint-value:NoExecute5.2.2、创建 DaemonSet 资源清单 省略了 tolerations 部分。这意味着 DaemonSet 的 Pod 不会容忍任何污点因此它将不会被调度到带有 example.com/taint-keytaint-value:NoExecute 污点的节点上。 cat EOF daemonset-no-tolerations.yaml apiVersion: apps/v1 kind: DaemonSet metadata:name: daemonset-no-tolerations spec:selector:matchLabels:way: no-tolerationstemplate:metadata:labels:way: no-tolerationsspec:containers:- name: daemonset-no-tolerations-containerimage: nginx:latest EOF5.2.3、应用Daemonset kubectl apply -f daemonset-no-tolerations.yaml5.2.4、 查看 DaemonSet Pod 的状态 kubectl get pods -l wayno-tolerations -o wide五、如何与 DaemonSet 中的 Pod 进行通信 1、 推送Push 推送模式是指 DaemonSet 中的 Pod 主动将数据发送到其他服务或系统中如统计数据库或其他后端服务。这种模式不需要外部客户端主动连接到 DaemonSet 中的 Pod。 1.1、实现 配置 DaemonSet: 需要在 DaemonSet 中的 Pod 规格中配置相应的逻辑使其能够主动发送数据。通常这涉及到使用像 HTTP 请求、消息队列或其他通信协议来发送数据。 1.2、示例 日志聚合: 可以使用像 Fluentd 或 Logstash 这样的工具配置它们将日志数据推送到像 Elasticsearch 或 Splunk 这样的后端。在 daemonset-tolerations.yaml 文件中您需要配置容器以发送日志数据 apiVersion: apps/v1 kind: DaemonSet metadata:name: daemonset-tolerations spec:selector:matchLabels:way: tolerationstemplate:metadata:labels:way: tolerationsspec:containers:- name: daemonset-tolerations-containerimage: nginx:latestcommand: [sh, -c, while true; do echo Log message; sleep 10; done | fluentd -t -l /dev/stdin]volumeMounts:- mountPath: /var/log/nginxname: log-volumevolumes:- name: log-volumehostPath:path: /var/log/nginx这里我们假设 Fluentd 服务已经配置好并且 Pod 将日志数据推送给 Fluentd。 2、 NodeIP 和已知端口 NodeIP 和已知端口是指 DaemonSet 中的 Pod 使用 hostPort这意味着它们监听在节点的主机端口上。外部客户端可以通过节点的 IP 地址和预先定义的端口来连接到这些 Pod。 2.1、实现 配置 DaemonSet: 在 DaemonSet 中的 Pod 规格中暴露 hostPort。客户端可以通过查询节点列表或通过其他方式获得节点 IP 地址并使用预先定义的端口进行连接。 2.2、示例 监控系统: 假设有一个监控系统需要从每个节点收集指标。可以配置 DaemonSet 中的每个 Pod 监听在节点的一个特定端口上比如 9100。在 daemonset-tolerations.yaml 文件中配置容器以暴露端口 apiVersion: apps/v1 kind: DaemonSet metadata:name: daemonset-tolerations spec:selector:matchLabels:way: tolerationstemplate:metadata:labels:way: tolerationsspec:containers:- name: daemonset-tolerations-containerimage: nginx:latestports:- containerPort: 80hostPort: 9100获取节点ip kubectl get nodes -o jsonpath{range .items[*]}{.status.addresses[?(.typeExternalIP)].address}{\n}{end}3、DNS DNS 模式是指创建一个无头服务Headless Service它使用与 DaemonSet 中的 Pod 相同的选择器。无头服务会创建一个 DNS 记录该记录解析为 DaemonSet 中所有 Pod 的 IP 地址。 3.1、实现 创建无头服务: 创建一个无头服务其选择器与 DaemonSet 的选择器相同。无头服务将自动创建一个 DNS 记录该记录指向所有匹配的 Pod 的 IP 地址。客户端可以通过查询 DNS 记录来获取所有 Pod 的 IP 地址列表并进行通信。 3.2、示例 创建一个无头服务 my-daemonset-service其选择器与 DaemonSet 相同。 apiVersion: v1 kind: Service metadata:name: my-daemonset-service spec:clusterIP: Noneselector:way: tolerationsports:- name: httpport: 80targetPort: 80客户端查询 DNS: 客户端可以通过查询 DNS 记录 my-daemonset-service.default.svc.cluster.local 来获取所有 Pod 的 IP 地址。可以通过 nslookup 或 dig 命令来查询 DNS 记录 nslookup my-daemonset-service.default.svc.cluster.local4、Service Service 模式是指创建一个服务其选择器与 DaemonSet 中的 Pod 相同。客户端可以通过服务名称来访问 DaemonSet 中的任意 Pod。 4.1、实现 创建服务: 创建一个服务其选择器与 DaemonSet 的选择器相同。服务将自动创建一个 DNS 记录该记录解析为当前活动的 Pod 的 IP 地址。客户端可以通过服务名称来访问 Pod。 4.2、示例 创建一个服务 my-daemonset-service其选择器与 DaemonSet 相同。 apiVersion: v1 kind: Service metadata:name: my-daemonset-service spec:selector:way: tolerationsports:- name: httpport: 80targetPort: 80客户端访问服务: 客户端可以通过服务名称 my-daemonset-service.default.svc.cluster.local 来访问 DaemonSet 中的任意 Pod。由于服务是负载均衡的客户端可能会随机连接到不同的 Pod。
http://www.yingshimen.cn/news/70594/

相关文章:

  • 栅格布局 网站设计网站开发2019
  • 上海免费做网站东营市建设招标信息网
  • 企业网站维护与销售蓝色网站特点
  • 网站托管好吗石家庄网站建设q.479185700棒
  • 手机免费网站空间湛江模板建站系统
  • 网站描述模板企业所得税税率5%
  • 权威网站建设公司鞋行业的网站建设
  • 新网站建设平台wordpress 上传fttp
  • 什么网站做谷歌联盟好保定建设公司网站
  • 网站建设公司重庆公司网站门户建设包括哪些
  • 如何为公司做网站wordpress php注释
  • 凡客网站建设企业邮箱是qq邮箱吗
  • 可以建网站的路由器wordpress 获取分类文章列表
  • wordpress 缓存文章列表seo评价网
  • 深情密码免费观看网站哈尔滨工程建设
  • 宿州网站建设公司哪家好企业微信app下载安装电脑版
  • 如何用c 做网站背景网站300兆是多少
  • 网站会员系统制作硬件开发平台是什么
  • 做网站的可行性分析宁波seo公司排名
  • 加强网站建设说明报告范文网站建设软硬件要求
  • 深圳企业推广网站做一个购物app要多少钱
  • 个人建设网站成本德兴市建设局网站
  • 物流网站建设方案总结安徽省建设工程信息网查询
  • 公司网站建设是什么意思网站做签到功能
  • 工信部门备案网站广州建设银行网站
  • 广州平面设计线下培训班自己的网站怎么做关键词优化
  • 天津做网站多少钱wordpress简化头部
  • 绍兴网站建设报价长沙网站设计公司排名
  • 四川华远建设工程有限公司网站电子网络工程建设范围
  • 永康市建设局网站商业网站如何备案