服务(Service)定义:当你在Kubernetes中创建一个服务(Service)资源时,Kubernetes API服务器会记录这个资源的元数据。
Endpoints:Kubernetes通过监控集群中的Pod自动创建与服务相对应的“endpoints”(端点)。Endpoints是指Service后面实际承担服务的Pod的IP和端口。
DNS:Kubernetes提供了一个内置的DNS系统,可以通过DNS来查询服务。每个服务会在DNS中有一个域名,格式为 service-name.namespace.svc.cluster.local,其中 service-name 是服务的名字,namespace 是服务所在的命名空间。
服务发现:当其他Pod需要访问这个服务时,它可以通过DNS查询这个服务的域名来获取后端Pod的IP地址和端口。
下面是一个简单的服务定义示例:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 9376