Зачем создавать сертификаты вручную с помощью kubeadm?

Я пытаюсь следовать этому учебник.

  1. В чем будет преимущество самостоятельной генерации сертификатов, а не зависимости от kubeadm?
  2. если вы создаете сертификаты самостоятельно, происходит ли автоповорот после настройки кластера из kubeadm?

Спасибо!


person JuniorPenguin    schedule 30.10.2018    source источник


Ответы (2)


  1. Нет большого преимущества. kubeadm делает то же самое: генерирует самоподписанные сертификаты. Единственное небольшое преимущество заключается в том, что вы можете добавить некоторые пользовательские значения в CSR, например Город , Организация и т. Д.

  2. Не совсем.

    • There's a kubelet certificate rotation flag --rotate-certificates that needs to be enabled.
    • Также существует ротация сертификатов от мастеров, и kubeadm может помочь в этом с этими команды:

      mkdir /etc/kubernetes/pkibak
      mv /etc/kubernetes/pki/* /etc/kubernetes/pkibak
      rm /etc/kubernetes/pki/*
      kubeadm init phase certs all --apiserver-advertise-address=0.0.0.0 --apiserver-cert-extra-sans=x.x.x.x,x.x.x.x
      systemctl restart docker
      

Если вы хотите регенерировать admin.conf файл, вы также можете использовать kubeadm:

$ kubeadm init phase kubeconfig admin \
  --cert-dir /etc/kubernetes/pki \
  --kubeconfig-dir /tmp/.
person Rico    schedule 31.10.2018
comment
Спасибо за вашу помощь, Рико - всегда могу положиться на вас, сэр! Ваша вторая часть ответа - регенерация сертификатов для мастеров - kubeadm alpha .. --apiserver-cert-extra-sans = x.x.x.x Это добавило бы дополнительный действующий IP и / или доменное имя? - person JuniorPenguin; 31.10.2018
comment
Пожалуйста! вы можете добавить как IP-адрес, так и доменное имя. - person Rico; 31.10.2018
comment
Извините, еще один вопрос - если вы используете все сертификаты альфа-фазы kubeadm - он также заботится о сертификате kubelet? - person JuniorPenguin; 31.10.2018
comment
Не совсем. Взгляните на результат kubeadm alpha phase certs -h - person Rico; 31.10.2018
comment
Я использовал команду для генерации новых сертификатов, и она сработала, но теперь ни одна из команд kubectl не работает, потому что она говорит, что не доверяет новому сертификату - не знаю, какие дальнейшие изменения мне нужно внести. - person JuniorPenguin; 01.11.2018
comment
Хм, а новый /etc/kubernetes/admin.conf сгенерировал? если да, то вы можете скопировать его в ~/.kube/config. В противном случае вам придется снова заполнить свои client-certfificate-data и client-key-data в своем ~/.kube/config - person Rico; 01.11.2018
comment
Он не сгенерировал новый admin.conf - я безуспешно пытался найти, как заполнить данные сертификата клиента и данные ключа клиента. Я также попытался найти файлы pki в / etc / kubernetes, но ни у одного из них не было данных сертификата. Любые указания о том, как получить эту информацию? Спасибо! - person JuniorPenguin; 02.11.2018
comment
Добавил в ответ kubeadm alpha phase kubeconfig admin --cert-dir /etc/kubernetes/pki --kubeconfig-dir /tmp/. - person Rico; 02.11.2018
comment
Спасибо! Очень ценю информацию! - person JuniorPenguin; 02.11.2018

Я создаю все сертификаты самостоятельно, причина этого в

  1. Кластер kubernetes, который мы используем, может не обновляться каждый год, поэтому нам нужны сертификаты с более длительным сроком действия. Наши приложения не поддерживают случайный перезапуск докера, и мы не принимаем команду фазы kubeadm для регенерации сертификатов и перезапуска докера. Поэтому мы создали все сертификаты со сроком действия 5 лет и предоставили их в kubeadm, и он работает нормально. Теперь нам не нужно беспокоиться об истечении срока действия нашего сертификата каждый год.

  2. Ни один kubeadm не предоставляет возможность автоматической ротации сертификатов, это причина, по которой нам в первую очередь нужен более длительный срок действия сертификатов.

Надеюсь это поможет.

person Prafull Ladha    schedule 31.10.2018
comment
Не могли бы вы рассказать, как вы сгенерировали сертификаты? - person Sunil Gajula; 22.03.2019