Привязать стручки kubernetes к именам хостов - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть простое развертывание 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"]

Это приводит к созданию модулей, которые выглядят следующим образом:

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

По умолчанию имена хостов соответствуют каждому из них. имена стручков.

>> 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

Ожидалось бы также, что, когда модуль отключается и заменяется, новый модуль связывается с имя хоста, которому был сопоставлен старый.

Заранее спасибо!

1 Ответ

1 голос
/ 07 апреля 2020

Используйте StatefulSet вместо развертывания

...