일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IT
- kube-ai
- macos 터널링
- 티스토리챌린지
- GPU
- 캠핑
- k8sgpt
- kubernetes
- 쿠버네티스기초
- AI
- 쿠버네티스
- 피카푸클램핑도봉산
- KVM
- 입문용칼
- karpor
- POD
- 글램핑
- 파드
- 도봉산글램핑
- virt-manager
- mac터널링
- 오블완
- kub-ai
- kubernetes-ai
- 쿠버네티스보안
- k8s
- 입문나이프
- 피카푸캠핑도봉산
- api-key
- 피카푸글램핑
- Today
- Total
마구잡
Kubernetes 다중 클러스터 context 추가 및 에러 발생 시나리오 본문
Kubernetes 다중 클러스터
쿠버네티스를 관리하기 위한 가장 기본적인 툴로는 kubectl이 존재한다.
주 클러스터 1번에서 2번 클러스터를 관리하기 위한 context 추가 및 발생 가능한 에러에 대해 다뤄본다.
( 공식 사이트에서 발췌한 내용을 기반으로 작성하였으나, 명확하지 않은 부분은 경험을 토대로 작성하였습니다.
이는 정확한 정보가 아닐 수 있음을 알려드립니다. )
공식 사이트
( 광고 클릭은 큰 힘이 됩니다! )
다중 클러스터 접근 구성
이 페이지에서는 구성 파일을 사용하여 다수의 클러스터에 접근할 수 있도록 설정하는 방식을 보여준다. 클러스터, 사용자, 컨텍스트가 하나 이상의 구성 파일에 정의된 다음 kubectl config use-conte
kubernetes.io
context 추가
주 클러스터 ~/.kube 경로에 2번 클러스터의 context를 추가한다.
config 파일 명은 크게 제약이 없으나 통일성을 위해 config2로 지정한다.
-rw-rw-r-- 1 admin admin 11212 10월 22 13:31 config
-rw-rw-r-- 1 admin admin 5674 10월 22 13:28 config2
필수적으로 처음부터 새로운 파일을 만들어야 하는것은 아니다.
또한, kubectl config set-* 명령어로 수동 생성이 가능하지만 상당히 귀찮기 때문에 파일 추가를 추천한다.
export를 통해 새로운 config 파일 적용(수출) 시키기
export KUBECONFIG=~/.kube/config:~/.kube/config2
추가된 config 확인
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
kubernetes-admin-2@kubernetes-2 kubernetes-2 kubernetes-admin-2
* kubernetes-admin@kubernetes kubernetes kubernetes-admin
추가된 config 하나의 파일로 merge 적용
kubectl config view --merge --flatten > ~/.kube/merged-config
• --merge: 여러 설정 파일을 병합하여 하나의 출력으로 만든다.
• --flatten: 설정 파일 내에 참조된 사용자, 클러스터, 컨텍스트 정보를 병합된 파일에 직접 포함한다.
기존 config backup
mv ~/.kube/config ~/.kube/config.back
mv ~/.kube/merged-config ~/.kube/config
export 재적용
export KUBECONFIG=~/.kube/config
kubectl config view 확인
kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.168.60.180:6443
name: kubernetes
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.168.60.177:6443
name: kubernetes-2
contexts:
- context:
cluster: kubernetes-2
user: kubernetes-admin-2
name: kubernetes-admin-2@kubernetes-2
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: DATA+OMITTED
client-key-data: DATA+OMITTED
- name: kubernetes-admin-2
user:
client-certificate-data: DATA+OMITTED
client-key-data: DATA+OMITTED
에러 발생 시나리오
1. 통신불가
주 클러스터 1번에서 2번 클러스터의 6443 포트, 혹은 그에 맞는 API 포트로 통신이 불가능한 경우 응답을 받아 올 수 없어 응답이 없다 타임아웃이 난다.
Unable to connect to the server: dial tcp 192.168.60.177:6443: i/o timeout
방화벽이나 통신 상황을 확인하자
2. 중복 아이디 클러스터
쿠버네티스 context를 추가할땐 당연하게 클러스터 네임을 구분해야하며, 또한 클러스터 네임뿐만 아니라 유저 및 context명 또한 구분해야한다. 당연한 말처럼 들리겠지만 사실 생각보다 테스트 베드 구축에는 클러스터명, 유저, context명을 기본으로 계속 사용하는 경우가 대부분이다. 그럼 어떻게 위 요소들을 수정하는지 대부분 모르고 넘어간다는 소리다. 그 후 막상 context를 추가하면 아래와 같은 상황이 발생한다.
error: error loading config file "/home/admin/.kube/config": error converting
... 중략
무슨 생전 처음보는 에러를 뱉는다 혹은 Bad TLS 뱉던가 한다.
수정 방법
별거 없다 그냥 복사한 config의 모든 구간에 구분자를 입력하면된다.
변경 전
apiVersion: v1
clusters:
- cluster:
certificate-authority-data:
server: https://192.168.60.177:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
변경 후
apiVersion: v1
clusters:
- cluster:
certificate-authority-data:
server: https://192.168.60.177:6443
name: kubernetes-2
contexts:
- context:
cluster: kubernetes-2
user: kubernetes-admin-2
name: kubernetes-admin-2@kubernetes-2
current-context: kubernetes-admin-2@kubernetes-2
kind: Config
preferences: {}
users:
- name: kubernetes-admin-2
user:
잘못된 정보나, 문의등은 댓글로 메일과 함께 적어주시면 감사하겠습니다.
'Kubernetes > 작은팁-짧은글' 카테고리의 다른 글
Open-WebUi Ollama API Key 발급방법 (0) | 2025.03.13 |
---|---|
Podman permission denied 문제 (0) | 2025.03.04 |
Kubernetes POD 통신 테스트 ( ping 명령어 없을시 ) (3) | 2024.11.07 |
Kubernetes Ephemeral Storage (1) | 2024.11.04 |
쿠버네티스 클러스터 플러그인 사용하기 (1) | 2024.10.29 |