Как изменить имя хоста на одноузловом узле K8s

Среды:

ОС: Ubuntu 18.04.5 LTS
Kubernetes: v1.16.15
инструмент развертывания : kubeadm v1.16.15

Я инициализирую одноузловой K8s на своей рабочей станции со следующими конфигурациями:

---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.16.15
imageRepository: k8s.gcr.io
clusterName: kubernetes
controlPlaneEndpoint: HOSTNAME-01
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12
apiServer:
  certSANs:
    - HOSTNAME-01
  extraArgs:
    advertise-address: 0.0.0.0
    authorization-mode: Node,RBAC
  timeoutForControlPlane: 4m0s
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: InitConfiguration
nodeRegistration:
  name: HOSTNAME-01

Я хочу изменить имя хоста с HOSTNAME-01 на HOSTNAME-02 и примените настройку к моей рабочей станции и кластеру K8s.

Есть ли способ сделать это лучше, чем перезагружать кластер?

1
задан 2 June 2021 в 14:36
1 ответ

Добро пожаловать в сообщество!

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

Точно так же, если изменено имя хоста рабочего узла, требуется перезагрузка kubeadm. Об этом говорится в хорошем посте на StackOverflow или есть пример в видео, как использовать --hostname-override для рабочих узлов.

Потенциально этого можно добиться, остановив кластер и вручную отредактировав etcd, перегенерацией сертификатов и другими изменениями. Также нет руководства по этому вопросу и нет гарантии, что это сработает.

В качестве альтернативы существуют решения для резервного копирования/миграции, например, velero.io, которые можно использовать для миграции кластера

P.S. Я бы также предложил обновить версию кластера хотя бы до 1.19. Вот как это можно сделать.

0
ответ дан 28 July 2021 в 13:23

Теги

Похожие вопросы