ali*_*dii 5 kubernetes kubernetes-statefulset
我想知道是否有任何方法可以为 StatefulSet 中的 Pod 设置 DNS,以便我可以直接调用它们。
我已经阅读了 Kubernetes 文档,但没有看到任何有用的内容。
如果使用带有headless服务的statefulset,则可以直接命中 POD
因此,如果您有三个副本运行 web-0、web-1、web-2,则可以使用curl
web-0.<service-name>.<namespace-name>.svc.cluster.local
Run Code Online (Sandbox Code Playgroud)
POD 名称
<pod-name>.<service-name>.<namespace-name>.svc.cluster.local
Run Code Online (Sandbox Code Playgroud)
但重要的是你的服务应该是无头的
例子
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx
serviceName: "nginx"
replicas: 3
minReadySeconds: 10
template:
metadata:
labels:
app: nginx
spec:
terminationGracePeriodSeconds: 10
containers:
- name: nginx
image: registry.k8s.io/nginx
ports:
- containerPort: 80
name: web
Run Code Online (Sandbox Code Playgroud)
官方文档参考:https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |