yok edilen kubeadm ustasını geri yükle

Dec 30 2020

Kubeadm 1.20 kullanarak 1 ana 2 çalışanlı bir kubernetes kümesi oluşturdum ve etcd'yi yedekledim. Kümenin nasıl tekrar çalışır duruma getirileceğini test etmek için ana bilgisayarı bilerek yok ettim.

Kubernetes version: 1.20
Installation method: kubeadm
Host OS: windows 10 pro
Guest OS: ubuntu 18 on virtual box 6
CNI and version: weave-net
CRI and version: docker 19

Master'ı yok etmeden önce yarattığım sırrın etcd geri yüklemesinden sonra görülebilmesi konusunda kısmen başarılıyım, bu yüzden o kısım çalışıyor gibi görünüyor.

ANCAK, çekirdek bölmeleri, çekirdek bölmelerinin günlüklerine bağlı olarak api sunucusuna istekte bulunma yetkisine sahip değildir:

[INFO] plugin/ready: Still waiting on: "kubernetes"
E1229 21:42:25.892580       1 reflector.go:178] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:125: Failed to list *v1.Namespace: Unauthorized
E1229 21:42:29.680620       1 reflector.go:178] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:125: Failed to list *v1.Endpoints: Unauthorized
[INFO] plugin/ready: Still waiting on: "kubernetes"
E1229 21:42:39.492521       1 reflector.go:178] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:125: Failed to list *v1.Service: Unauthorized

Hizmet hesabı belirteçleriyle bir ilgisi olduğunu tahmin ediyorum, bu nedenle, etcd db değiştirilmesinden sonra bölmeleri api-sunucusunda kimlik doğrulaması için yetkilendirmek için bir adım eksik.

Neyi kaçırıyorum?

Yanıtlar

2 coderanger Dec 30 2020 at 13:38

Yalnızca Etcd'nin içeriğini yedeklediyseniz, kubeadm ServiceAccount JWT'lerini imzalamak için kullanılan yeni sertifikalar oluşturacaktır. Eski belirteçler artık doğrulanmayacak. Bu genellikle rutin bakım sırasında yapılmadığından, SA denetleyicisinin tokenları yeniden vermeyi bildiğini sanmıyorum. Tüm temel sırları silerseniz, yine de yeniden yayınlamalıdır.