Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
devops:kubernetes [2021/03/22 13:03] – [Обновление сертификатов] admin | devops:kubernetes [2021/08/18 14:23] – [Скрипт] admin | ||
---|---|---|---|
Line 309: | Line 309: | ||
В список: | В список: | ||
kubectl -n elasticsearch patch sts es-data --type=json -p=' | kubectl -n elasticsearch patch sts es-data --type=json -p=' | ||
+ | Добавляем порт для контейнера в **Deployment**: | ||
+ | kubectl patch deployment mcs-api --type=json -p=' | ||
===== Патчинг нескольких значений за раз ===== | ===== Патчинг нескольких значений за раз ===== | ||
Line 350: | Line 352: | ||
set -e | set -e | ||
- | KUB_CONTEXT=' | + | KUB_CONTEXT=' |
- | KUB_USERNAME=' | + | KUB_USERNAME=' |
- | KUB_USERGROUP=' | + | KUB_USERGROUP=' |
#cluster or ns (namespace) | #cluster or ns (namespace) | ||
# | # | ||
AUTH_SCOPE=' | AUTH_SCOPE=' | ||
# If AUTH_SCOPE = ns then we need namespace name | # If AUTH_SCOPE = ns then we need namespace name | ||
- | KUB_NAMESPACE=' | + | KUB_NAMESPACE=' |
- | KUB_ROLE_NAME='app-dev-full' | + | KUB_ROLE_NAME=" |
# Comma separated quoted - '" | # Comma separated quoted - '" | ||
KUB_ROLE_APIGROUPS='" | KUB_ROLE_APIGROUPS='" | ||
KUB_ROLE_RESOURCES='" | KUB_ROLE_RESOURCES='" | ||
- | KUB_ROLE_VERBS='" | + | KUB_ROLE_VERBS='" |
echo " | echo " | ||
Line 447: | Line 449: | ||
name: ${KUB_USERGROUP} | name: ${KUB_USERGROUP} | ||
apiGroup: rbac.authorization.k8s.io | apiGroup: rbac.authorization.k8s.io | ||
- | roleRef: | + | roleRef: |
- | kind: ClusterRole | + | kind: ClusterRole |
name: ${KUB_ROLE_NAME} | name: ${KUB_ROLE_NAME} | ||
- | | + | |
EOF | EOF | ||
fi | fi | ||
Line 477: | Line 479: | ||
name: ${KUB_USERGROUP} | name: ${KUB_USERGROUP} | ||
apiGroup: rbac.authorization.k8s.io | apiGroup: rbac.authorization.k8s.io | ||
- | roleRef: | + | roleRef: |
- | kind: Role | + | kind: Role |
name: ${KUB_ROLE_NAME} | name: ${KUB_ROLE_NAME} | ||
- | | + | |
EOF | EOF | ||
fi | fi | ||
Line 508: | Line 510: | ||
current-context: | current-context: | ||
EOF | EOF | ||
+ | |||
+ | kubectl delete certificatesigningrequests ${KUB_USERNAME}_csr | ||
</ | </ | ||
===== Создание закрытого ключа пользователя и запроса сертификата ===== | ===== Создание закрытого ключа пользователя и запроса сертификата ===== | ||
Line 875: | Line 879: | ||
https:// | https:// | ||
- | ====== | + | ====== |
- | Мониторинг веб-приложения - graphana \\ | + | Если так случайно вышло, что вы удалили **PersistentVolume**, |
+ | На помощь приходит специальная утилитка: | ||
+ | git clone https:// | ||
+ | cd k8s-reset-terminating-pv | ||
+ | go build -o resetpv | ||
+ | Собранный бинарник: | ||
+ | Заходим на мастер-ноду, | ||
+ | ssh user@master-node | ||
+ | sudo -H tar -cvzf ~/ | ||
+ | sudo docker | ||
+ | exit | ||
+ | В выводе среди всего прочего | ||
+ | < | ||
+ | --cert-file=/ | ||
+ | --key-file=/ | ||
+ | --trusted-ca-file=/ | ||
+ | В вашей инсталляции имена, | ||
+ | И забираем с мастер-ноды кластера архив с сертификатами, | ||
+ | scp user@master-node:/ | ||
+ | tar -xvf ./ | ||
+ | mv ./ | ||
+ | И дальше применяем утилиту: | ||
+ | ./resetpv --etcd-ca ./ca.crt --etcd-cert ./ | ||
+ | Если вдруг так вышло, что вы удалили все PV в кластере (как я - хотел удалить **pvc** в неймспейсе но просто опечатался и вместо **pvc** ввел **pv**): | ||
+ | kubectl delete -n namespace pv --all | ||
+ | то чтобы отменить удаление всех PV делаем так: | ||
+ | PVs=`kubectl get pv | grep Terminating | awk ' | ||
+ | for pv in $PVs; do ./resetpv --etcd-ca ./ca.crt --etcd-cert ./ | ||