网站建设哪里好翰诺科技,龙岩网站建设方案书,做招标代理应关注的网站,网页设计与制作建立站点实验报告在 Kubernetes 中#xff0c;Endpoint 是一种 API 对象#xff0c;它用于表示集群内某个 Service 的具体网络地址。换句话说#xff0c;它连接到一组由 Service 选择的 Pod#xff0c;从而使它们能够提供服务。每个 Endpoint 对象都与相应的 Service 对象具有相同的名称Endpoint 是一种 API 对象它用于表示集群内某个 Service 的具体网络地址。换句话说它连接到一组由 Service 选择的 Pod从而使它们能够提供服务。每个 Endpoint 对象都与相应的 Service 对象具有相同的名称并属于相同的命名空间。
每个 Endpoint 对象都会包含一组 Pod 的 IP 地址和端口作为 Service 的后端。当 Service 被定义时Kubernetes 控制器会监视匹配 Service 选择器的 Pod并自动更新 Endpoint 对象。这样当新的 Pod 被创建或现有的 Pod 被删除时Endpoint 对象将会自动得到更新。
Endpoint 对象的定义形态如下
kind: Endpoints
apiVersion: v1
metadata:name: my-service
subsets:- addresses:- ip: 192.0.2.42ports:- port: 9376其中metadata.name 是 Endpoint 的名称subsets.addresses.ip 是后端 Pod 的 IP 地址subsets.ports.port 是要暴露的端口。
然而请注意除非有特别的需求否则通常不需要手动创建或管理 Endpoints 对象。当你使用 Service 来选择 Pod 时Endpoints 对象会自动被创建和管理。也就是说只要 Service 选择器能够匹配到 PodKubernetes 就会自动将匹配的 Pod 的 IP 地址和端口添加到 Endpoints 对象中。
总的来说Endpoint 是 Kubernetes Service 的一个重要组成部分负责维护一组提供服务的 Pod 的 IP 地址和端口信息使得 Service 能够通过网络将请求路由到正确的 Pod。
例如
apiVersion: v1
kind: Service
metadata:name: nginx-svclabels:app: nginx-po
spec:ports:- port: 80targetPort: 80name: webselector: # 匹配哪些pod会被该service代理app: nginx-po #所有匹配到这些标签的pod都可以通过该service进行访问type: NodePort---apiVersion: apps/v1
kind: StatefulSet
metadata:name: web
spec:serviceName: nginxreplicas: 2selector:matchLabels:app: nginx-potemplate:metadata:labels:app: nginx-pospec:containers:- name: nginximage: nginx:1.7.9ports:- containerPort: 80name: webupdateStrategy:rollingUpdate:partition: 0type: RollingUpdate这个yaml会创建一个 service nginx-svc它所对应的selector选择器是nginx-po也就是说所有label为 nginx-po 的pod的端口就会被自动加入到endpoint中。 从下图可以看到所有label为nginx-po的pod的ip都被加入到和service同名的endpoint中。
将一个新创建的pod加入到已有的endpoint中去 需要将新创建的pod的labels设置成已有svc一样port端口也要和已有endpoint一样 注意如果只设置了相同的label而没有设置port这种情况下endpoint是识别不到的。 一个已有的svc关联的endpoint newpod.yal
apiVersion: v1
kind: Pod
metadata:labels:app: gatename: toolbox-0namespace: default
spec:containers:- image: toolbox:v1.0.0imagePullPolicy: IfNotPresentname: toolboxports:- containerPort: 10000name: test_portprotocol: TCP创建pod之后可以看到endpoints新增了一个ip:port信息。