.kubeconfig가 뭐고, 없으면 무슨 일이 일어날까?

2024. 1. 17. 17:37·클라우드/쿠버네티스

결론

 ✅ .kubeconfig파일이 없으면 k8s API에 접근이 안됨

 ✅ .kubeconfig파일이 없어도 클러스터 join 가능 


활용

❍ 워커 노드에서도 kubectl 명령어를 사용하고 싶다

   → 마스터 노드의 config 파일 복사해 붙여넣기

 

❍ 외부 사용자가 kubectl 명령어를 사용하고 싶다 / k8s API에 접근하고 싶다

   - (go) client-go 참고


개요 

프로젝트를 위해 여느 때와 같이 쿠버네티스 클러스터를 생성했다.

 

kubeconfig 파일이 

마스터 노드의 경우에는 클러스터 생성 시 자동으로 생성되고,

워커 노드의 경우에는 그렇지 않았던 것이 생각이 났다.

 

그래서 kubeconfig파일이 뭐고, 없으면 큰일이 나는지가 궁금해 알아보기 시작했다.


본문

kubeconfig 파일?

- 쿠버네티스 클러스터와 연결(통신)하기 위한 인증 정보가 담겨 있는 파일

- 하나 이상의 클러스터 정보 명시 가능

 

구성요소

1) clusters

접속할 서버 정보 (host, ip, port)

clusters 필드

2) contexts

user-cluster 정보를 합쳐, 어떤 user가 어떤 cluster에 접근할 지를 명시

(그림의 경우, kubernetes-admin이라는 user를 kubernetes라는 cluster을 연결)

contexts 필드

 

3) users

- 접속할 유저의 계정 정보

    (인증을 위한 인증서(client-certificate-data), 키(client-key-data))

- 실제 키값은 /etc/kubernetes/pki의 apiserver.crt에 존재 

users 필드

 

 

인증서와 관련된 더 많은 정보는 https://velog.io/@borab/kubernetes-PKI-인증서 이 블로그 참고 


kubeconfig 파일 위치

1. $HOME/.kube/config
2. 사용자 직접 지정

 

기본 위치는 $HOME/.kube/config 이다. (클러스터 구축 시 생성)

 

 


kubeconfig 관련 명령어

참고: kubectx 명령어 툴을 이용하기도 한다고 한다

참고: 기본적으로 만들어지는 kubeconfig파일을 수정 저장하고, context를 전환할 수 있다.

 

현재 설정된 kubeconfig 파일 확인

$ kubectl config view

kubectl config view 결과

 

 

 context 리스트 확인

$ kubectl config get-contexts

 

kubectl config get-contexts 결과

 

 

context 변경 (명령어 이후부터 example 계정의 cluster-2 클러스터로 접근)

$ kubectl config use-context example@cluster-2

 

 


kubeconfig가 없으면 일어나는 일

정상적으로 pod 생성 가능하며, 

마스터 노드에서 kubectl get nodes 시 config파일이 없는 노드도 running으로 잘 조회된다.

 

kubeconfig파일이 없다고 해서 쿠버네티스 리소스(pod, ...)를 생성 불가한 게 아니라,

그저 외부 사용자가 클러스터에 접속이 안되는 것이다 ! 

'클라우드 > 쿠버네티스' 카테고리의 다른 글

[쿠버네티스] 쿠버네티스 3: 쿠버네티스 pod 명령어 모음  (0) 2024.11.27
[쿠버네티스] 쿠버네티스 2: 쿠버네티스 주요 오브젝트, pod  (0) 2024.11.26
[쿠버네티스] 쿠버네티스 1: 쿠버네티스의 컨셉  (2) 2024.11.25
[쿠버네티스] 쿠버네티스 0: 쿠버네티스가 뭐고 왜 쓰나요?  (1) 2024.11.24
'클라우드/쿠버네티스' 카테고리의 다른 글
  • [쿠버네티스] 쿠버네티스 3: 쿠버네티스 pod 명령어 모음
  • [쿠버네티스] 쿠버네티스 2: 쿠버네티스 주요 오브젝트, pod
  • [쿠버네티스] 쿠버네티스 1: 쿠버네티스의 컨셉
  • [쿠버네티스] 쿠버네티스 0: 쿠버네티스가 뭐고 왜 쓰나요?
KyuminKim
KyuminKim
컴퓨터공학과 학생의 이모저모 개발 일지 📝
  • KyuminKim
    이모저모
    KyuminKim
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • 프로젝트 (2)
        • first-blog (2)
      • 클라우드 (22)
        • 도커 (14)
        • 쿠버네티스 (5)
        • AWS (2)
      • 알고리즘 (5)
        • 코드트리 (0)
        • 프로그래머스 (5)
      • 백엔드 (8)
      • 프론트엔드 (2)
      • 보안 (3)
        • 드림핵 (2)
      • python (3)
      • 네트워크 (1)
      • 기타 (6)
        • 2025 프로펙트 부트캠프(1차) | 클라우드 엔.. (0)
        • OSSCA | 2024 오픈소스 컨트리뷰션 아카데.. (0)
        • WIK (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    도커파일
    탈퇴구현
    apiserver-runtime
    코딩트리조별과제
    진단평가
    MySQL
    코드트리
    코딩테스트
    자료구조
    인코딩
    urf8
    주간레포트
    오블완
    DB
    recover_your_data
    2024 당근 테크 밋업
    파이썬
    amazonlinux
    cannot send an empty message
    알고리즘
    EC2
    character_set_server
    고랭
    코드트리조별과제
    DP
    티스토리챌린지
    쿠버네티스
    docker
    characterencoding
    도커
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
KyuminKim
.kubeconfig가 뭐고, 없으면 무슨 일이 일어날까?
상단으로

티스토리툴바