【发布时间】:2020-04-07 13:56:17
【问题描述】:
我有一个简单的 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 映射到的主机名。
提前致谢!
【问题讨论】:
标签: docker kubernetes kubernetes-pod