[英]Bind kubernetes pods to hostnames
我有一个简单的 k8s 部署。
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-deployment
labels:
app: test
spec:
replicas: 3
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
containers:
- name: test-container
image: centos:7
command: ["/bin/sh"]
args: ["-c", "tail -f /dev/null"]
这些导致创建如下所示的 pod:
NAME READY STATUS RESTARTS AGE
test-deployment-59bb6b8b4d-pnfg8 1/1 Running 0 11m
test-deployment-59bb6b8b4d-s7w8x 1/1 Running 0 11m
test-deployment-59bb6b8b4d-wvw7n 1/1 Running 0 11m
默认情况下,与这些中的每一个对应的主机名与 pod 名称匹配。
>> kubectl exec test-deployment-59bb6b8b4d-pnfg8 -c test-container env | grep HOSTNAME
HOSTNAME=test-deployment-59bb6b8b4d-pnfg8
>> kubectl exec test-deployment-59bb6b8b4d-s7w8x -c test-container env | grep HOSTNAME
HOSTNAME=test-deployment-59bb6b8b4d-s7w8x
>> kubectl exec test-deployment-59bb6b8b4d-wvw7n -c test-container env | grep HOSTNAME
HOSTNAME=test-deployment-59bb6b8b4d-wvw7n
这是我的问题。 有没有办法,我可以预先配置主机名,使它们看起来像这样?
>> kubectl exec test-deployment-59bb6b8b4d-pnfg8 -c test-container env | grep HOSTNAME
HOSTNAME=test-deployment-pod1
>> kubectl exec test-deployment-59bb6b8b4d-s7w8x -c test-container env | grep HOSTNAME
HOSTNAME=test-deployment-pod2
>> kubectl exec test-deployment-59bb6b8b4d-wvw7n -c test-container env | grep HOSTNAME
HOSTNAME=test-deployment-pod3
还期望当一个 pod 死掉并被替换时,新的 pod 会绑定回旧的 pod 映射到的主机名。
提前致谢!
使用StatefulSet而不是 Deployment
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.