Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
devops:kubernetes [2021/03/22 13:03]
admin [Обновление сертификатов]
devops:kubernetes [2021/04/21 12:50] (current)
admin [Отмена удаления PersistentVolume]
Line 875: Line 875:
 https://www.digitalocean.com/community/tutorials/how-to-create-a-kubernetes-cluster-using-kubeadm-on-ubuntu-18-04 https://www.digitalocean.com/community/tutorials/how-to-create-a-kubernetes-cluster-using-kubeadm-on-ubuntu-18-04
  
-====== DevOps ====== +====== Отмена удаления PersistentVolume ====== 
-Мониторинг веб-приложения - graphana \\+Если так случайно вышло, что вы удалили **PersistentVolume**, то не отчаивайтесь! Он будет находитьтся в состоянии **Terminating** до тех пор, пока существуют **pod**, куда он смонтирован и **PersistentVolumeClaim**, которая породила этот PV и удаление можно отменить. \\ 
 +На помощь приходит специальная утилитка: https://github.com/jianz/k8s-reset-terminating-pv 
 +  git clone https://github.com/jianz/k8s-reset-terminating-pv.git 
 +  cd k8s-reset-terminating-pv 
 +  go build -o resetpv 
 +Собранный бинарник: {{ :devops:resetpv.tar.gz |}} \\ 
 +Заходим на мастер-ноду, архивируем сертификаты и смотрим какой сертификат за что отвечает: 
 +  ssh user@master-node 
 +  sudo -H tar -cvzf ~/etcd-pki.tar.gz /etc/kubernetes/pki/etcd 
 +  sudo docker  ps --no-trunc | grep etcd 
 +  exit 
 +В выводе среди всего прочего будет такое: 
 +<code>--advertise-client-urls=https://10.77.68.1:2379 
 +--cert-file=/etc/kubernetes/pki/etcd/server.crt 
 +--key-file=/etc/kubernetes/pki/etcd/server.key 
 +--trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt</code> 
 +В вашей инсталляции имена, пути и порты могут быть иными. \\ 
 +И забираем с мастер-ноды кластера архив с сертификатами, которые необходимы для подключения к **etcd** кластера: 
 +  scp user@master-node:/home/user/etcd-pki.tar.gz ./ 
 +  tar -xvf ./etcd-pki.tar.gя 
 +  mv ./etc/kubernetes/pki/etcd/* ./ 
 +И дальше применяем утилиту: 
 +  ./resetpv --etcd-ca ./ca.crt --etcd-cert ./server.crt --etcd-key ./server.key --etcd-host 10.77.68.1 --etcd-port 2379 pv-name 
 +Если вдруг так вышло, что вы удалили все PV в кластере (как я - хотел удалить **pvc** в неймспейсе но просто опечатался и вместо **pvc** ввел **pv**): 
 +  kubectl delete -n namespace pv --all 
 +то чтобы отменить удаление всех PV делаем так: 
 +  PVs=`kubectl get pv | grep Terminating | awk '{print $1}' | grep -v NAME` 
 +  for pv in $PVs; do ./resetpv --etcd-ca ./ca.crt --etcd-cert ./server.crt --etcd-key ./server.key --etcd-host 10.77.68.1 --etcd-port 2379 $pv; done
  
  • devops/kubernetes.txt
  • Last modified: 2021/04/21 12:50
  • by admin