Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
devops:kubernetes [2021/03/22 13:03] – [Обновление сертификатов] admindevops:kubernetes [2021/08/02 13:24] – [Добавление объекта] admin
Line 309: Line 309:
 В список: В список:
   kubectl -n elasticsearch patch sts es-data --type=json -p='[{"op": "add", "path": "/spec/template/spec/tolerations", "value":[{"effect":"NoSchedule","key":"node.kubernetes.io/rrr","operator":"Exists"}]}]'   kubectl -n elasticsearch patch sts es-data --type=json -p='[{"op": "add", "path": "/spec/template/spec/tolerations", "value":[{"effect":"NoSchedule","key":"node.kubernetes.io/rrr","operator":"Exists"}]}]'
 +Добавляем порт для контейнера в **Deployment**:
 +  kubectl patch deployment mcs-api --type=json -p='[{"op": "add", "path": "/spec/template/spec/containers/0/ports", "value":[{"containerPort": 5000}]}]'
  
 ===== Патчинг нескольких значений за раз ===== ===== Патчинг нескольких значений за раз =====
Line 875: Line 877:
 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: 2023/11/30 08:03
  • by admin