일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 리트코드
- 와썹맨
- 프로그래머스
- leetcode
- mysql #numa #swap #memory
- Envoy
- No Rules Rules
- 독후감
- 규칙없음
- 나는 아마존에서 미래를 다녔다
- 아마조니언
- BFS
- 삼성인 아마조니언 되다
- Dynamic Programmin
- 김태강
- 리스트의 리스트
- minimum path sum
- LongestPalindromicSubstring
- 동적 프로그래밍
- 삼성역량테스트
- 파이썬
- technical debt
- 그거봤어?
- 기술적 채무
- 블린이
- 알고리즘
- list of list
- Python
- 트리
- Unique Paths
- Today
- Total
개발자가 되고 싶은 준개발자
[rke] rke up 실패 해결 방법 본문
현상
Ha deployment failed · Issue #21926 · rancher/rancher (github.com)
Ha deployment failed · Issue #21926 · rancher/rancher
use rke up --config rancher-cluster.yml etcd logs:2019-08-01 11:17:54.301389 I | embed: rejected connection from "192.168.3.2:60362" (error "tls: failed to verify client's certif...
github.com
RKE 설정을 완료하고 rke up 명령어를 날렸는데 명령어가 위의 github 이슈처럼 실패한다..
실패하는 이유는 대부분 rke up 설정을 여러번 날릴 때 이전 rke 설정이 남아있어서라고 한다. ('Re-using RKE provisioned K8S nodes is not as simple as just stopping all the containers')
그래서 이전 노드의 설정을 clean up 해야 한다.
해결 방법
먼저 'rke remove --config 컨피그파일명'을 한다. 그러면 rke 에서 설정(kube_config_rancher-ha-cluster.yml, rancher-ha-cluster.rkestate 파일과 노드들의 설정을 일부)을 지워 준다.
그 후에 아래 명령어로 타겟 서버에 가서 노드들을 clean up 한다.
(타겟노도의 docker ps를 죽이지 않으면 port가 사용중이라 rke up 중간에 막힌다... )
docker stop $(docker ps -aq)
docker system prune -f
docker volume rm $(docker volume ls -q)
docker image rm $(docker image ls -q)
rm -rf /etc/ceph \
/etc/cni \
/etc/kubernetes \
/opt/cni \
/opt/rke \
/run/secrets/kubernetes.io \
/run/calico \
/run/flannel \
/var/lib/calico \
/var/lib/etcd \
/var/lib/cni \
/var/lib/kubelet \
/var/lib/rancher/rke/log \
/var/log/containers \
/var/log/pods \
/var/run/calico
위에 명령어를 실행하면 /var/lilb/kubelet이 아직 사용중이라 삭제가 안된다...
rm: cannot remove `/var/lib/kubelet/pods/f3520b46-227a-4cc4-b995-1f3fbad30cd0/volumes/kubernetes.io~secret/coredns-token-v42mx': 장치나 자원이 동작 중 rm: cannot remove `/var/lib/kubelet/pods/3e98fc5b-3444-452e-9b71-d98338483235/volumes/kubernetes.io~secret/coredns-autoscaler-token-zlpbw': 장치나 자원이 동작 중 rm: cannot remove `/var/lib/kubelet/pods/d35258d9-c961-452e-b456-6b1b0a4e5e55/volumes/kubernetes.io~secret/canal-token-znccr': 장치나 자원이 동작 중 rm: cannot remove `/var/lib/kubelet/pods/b3e2fd5e-f24e-4a8f-b8e0-cd3534ff2d3b/volumes/kubernetes.io~secret/nginx-ingress-serviceaccount-token-lvdxk': 장치나 자원이 동작 중 rm: cannot remove `/var/lib/kubelet/pods/c0e57769-b09d-425d-a68a-c3920142a188/volumes/kubernetes.io~secret/calico-kube-controllers-token-tcfgt': 장치나 자원이 동작 중 |
그럴 때는 하나씩 unmount하면 된다...!
sudo umount /var/lib/kubelet/pods/f3520b46-227a-4cc4-b995-1f3fbad30cd0/volumes/kubernetes.io~secret/coredns-token-v42mx
아니면 아래 스크립트로 해보자.
for mount in $(mount | grep tmpfs | grep '/var/lib/kubelet' | awk '{ print $3 }') /var/lib/kubelet /var/lib/rancher; do sudo umount $mount; done
Rancher Node clean up 하는 방법(공식 문서)