繁体   English   中英

将 kubernetes pod 绑定到主机名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM