Kubernetes -- endpoints资源类型
endpoints是一种kubernetes资源类型,它是namespace scoped,简写为ep:
kubectl api-resources|grep endpoints
endpointseptrueEndpoints
endpoints有两种使用方法:
- 随service被创建:
- 创建service对象的同时,kubernetes会创建同名的endpoints的对象;
- service的podSelector会将目标pod的endpoint信息(ip/port),添加到endpoints对象中;
- 【Kubernetes -- endpoints资源类型】独立创建endpoints:
- enpdoints作为一种资源类型,支持用户创建;
- 将外部服务的endpoint添加到endpoints对象,可以使用kubernetes service访问外部服务;
创建nginx deploy,含2个pod:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
name: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
imagePullPolicy: IfNotPresent
command:
- nginx
- -g
- "daemon off;
"
workingDir: /usr/share/nginx/html
ports:
- name: http
containerPort: 80
protocol: TCP
创建nginx service:
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
ports:
- port: 80
targetPort: 80
selector:
app: nginx
查看其service和endpoints资源:有一个同名的endpoints被创建出来
# kubectl get svc,endpoints
NAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGE
service/nginx-svcClusterIP10.233.26.3980/TCP3m2sNAMEENDPOINTSAGE
endpoints/nginx-svc10.233.96.113:80,10.233.97.95:803m2s
其endpoints的内容,实际是nginx pod的ip+port:
# kubectl get pod -owide
NAMEREADYSTATUSRESTARTSAGEIPNODENOMINATED NODEREADINESS GATES
nginx-6dcdfd5b8-8q7l51/1Running04m3s10.233.97.95master1
nginx-6dcdfd5b8-xsl961/1Running04m3s10.233.96.113master3
外部服务与endpoints 手动创建endpoints,添加外部服务的endpoint,可以将外部服务作为kubernetes的service使用。
etcd有3节点部署在外部,为其创建service: etcd-k8s,不指定podSelector:
apiVersion: v1
kind: Service
metadata:
name: etcd-k8s
namespace: kube-system
spec:
type: ClusterIP
ports:
- name: port
port: 2379
protocol: TCP
创建同名的endpoints资源: etcd-k8s,将etcd节点的ip+port填进去:
apiVersion: v1
kind: Endpoints
metadata:
name: etcd-k8s
namespace: kube-system
subsets:
- addresses:
- ip: 178.104.163.38
nodeName: etc-master1
- ip: 178.104.163.187
nodeName: etc-master2
- ip: 178.104.163.243
nodeName: etc-master3
ports:
- name: port
port: 2379
protocol: TCP
这样,通过serviceName.namespace:port就可以在kubernetes集群内访问外部的etcd服务:
etcd-k8s.kube-system:2379
推荐阅读
- federation--kubernetes集群联邦的实现
- 富裕的好处是对资源的优先占有
- 预见人力资源
- 教育论
- 提取ipa|提取ipa 包内资源
- 如何在Kubernetes|如何在Kubernetes 里添加自定义的 API 对象(一)
- 从华为胡玲事件看人力资源与职场
- OC代码规范
- 斗罗大陆1(第39集)百度云下载【1080熟肉共享】完整版资源
- 用|用 Satis 处理私有资源包(使用 satis 搭建 Composer 私有库)