下面是一个 k8s Service 绑定 Deployment 的 YAML 示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- name: http
port: 80
targetPort: 80
type: ClusterIP
这个示例定义了一个名为 nginx-deployment 的 Deployment,它会管理 3 个 Pod,并使用 Nginx 镜像提供 HTTP 服务。Deployment 中的 Pod 根据 app=nginx 标签选择器进行选择。
同时,示例中还定义了一个名为 nginx-service 的 Service,它被绑定到 nginx-deployment 管理的所有 Pod 上。Service 的 Cluster IP 为默认值,即由 Kubernetes 自动分配。该 Service 暴露了一个端口号为 80 的端口,并将请求转发到 Pod 内部的端口 80,从而实现对 Deployment 的访问。
可以通过运行 kubectl apply -f example.yaml 命令将上述 YAML 文件应用到 Kubernetes 集群中。