Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
kubeconfig 파일들을 사용하여 클러스터, 사용자, 네임스페이스 및 인증 메커니즘에 대한 정보를 관리하자.
kubectl
커맨드라인 툴은 kubeconfig 파일을 사용하여
클러스터의 선택과
클러스터의 API 서버와의 통신에 필요한 정보를 찾는다.
참고: 클러스터에 대한 접근을 구성하는 데 사용되는 파일을 kubeconfig 파일 이라 한다. 이는 구성 파일을 참조하는 일반적인 방법을 의미한다.kubeconfig
라는 이름의 파일이 있다는 의미는 아니다.
기본적으로 kubectl
은 $HOME/.kube
디렉터리에서 config
라는 이름의 파일을 찾는다.
KUBECONFIG
환경 변수를 설정하거나
--kubeconfig
플래그를 지정해서
다른 kubeconfig 파일을 사용할 수 있다.
kubeconfig 파일을 생성하고 지정하는 단계별 지시사항은 다중 클러스터로 접근 구성하기를 참조한다.
여러 클러스터가 있고, 사용자와 구성 요소가 다양한 방식으로 인증한다고 가정하자. 예를 들면 다음과 같다.
kubeconfig 파일을 사용하면 클러스터와 사용자와 네임스페이스를 구성할 수 있다. 또한 컨텍스트를 정의하여 빠르고 쉽게 클러스터와 네임스페이스 간에 전환할 수 있다.
kubeconfig에서 컨텍스트 요소는 편리한 이름으로 접속 매개 변수를 묶는데 사용한다.
각 컨텍스트는 클러스터, 네임스페이스와 사용자라는 세 가지 매개 변수를 가진다.
기본적으로 kubectl
커맨드라인 툴은 현재 컨텍스트 의 매개 변수를
사용하여 클러스터와 통신한다.
현재 컨택스트를 선택하려면 다음을 실행한다.
kubectl config use-context
KUBECONFIG
환경 변수는 kubeconfig 파일 목록을 보유한다.
Linux 및 Mac의 경우 이는 콜론(:)으로 구분된 목록이다.
Windows는 세미콜론(;)으로 구분한다. KUBECONFIG
환경 변수가 필수는 아니다.
KUBECONFIG
환경 변수가 없으면,
kubectl
은 기본 kubeconfig 파일인 $HOME/.kube/config
를 사용한다.
KUBECONFIG
환경 변수가 존재하면, kubectl
은
KUBECONFIG
환경 변수에 나열된 파일을 병합한 결과 형태의
효과적 구성을 이용한다.
구성을 보려면, 다음 커맨드를 입력한다.
kubectl config view
앞서 설명한 것처럼, 이 출력 내용은 단일 kubeconfig 파일이나 여러 kubeconfig 파일을 병합한 결과 일 수 있다.
다음은 kubeconfig 파일을 병합할 때에 kubectl
에서 사용하는 규칙이다.
--kubeconfig
플래그를 설정했으면, 지정한 파일만 사용한다. 병합하지 않는다.
이 플래그는 오직 한 개 인스턴스만 허용한다.
그렇지 않고, KUBECONFIG
환경 변수를 설정하였다면
병합해야 하는 파일의 목록으로 사용한다.
KUBECONFIG
환경 변수의 나열된 파일은
다음 규칙에 따라 병합한다.
현재 컨텍스트
를 설정할 첫 번째 파일의 컨택스트를 유지한다.
예: 두 파일이 red-user
를 지정했다면, 첫 번째 파일의 red-user
값만을 사용한다.
두 번째 파일의 red-user
하위에 충돌하지 않는 항목이 있어도 버린다.KUBECONFIG
환경 변수 설정의 예로,
KUBECONFIG 환경 변수 설정를 참조한다.
그렇지 않다면, 병합하지 않고 기본 kubecofig 파일인 $HOME/.kube/config
를 사용한다.
이 체인에서 첫 번째를 기반으로 사용할 컨텍스트를 결정한다.
--context
를 사용한다.current-context
를 사용한다.이 시점에서는 빈 컨텍스트도 허용한다.
클러스터와 사용자를 결정한다. 이 시점에서는 컨텍스트가 있을 수도 있고 없을 수도 있다. 사용자에 대해 한 번, 클러스터에 대해 한 번 총 두 번에 걸친 이 체인에서 첫 번째 것을 기반으로 클러스터와 사용자를 결정한다.
--user
또는 --cluster
를 사용한다.이 시점에서는 사용자와 클러스터는 비워둘 수 있다.
사용할 실제 클러스터 정보를 결정한다. 이 시점에서 클러스터 정보가 있을 수 있고 없을 수도 있다. 이 체인을 기반으로 클러스터 정보를 구축한다. 첫 번째 것을 사용한다.
--server
, --certificate-authority
, --insecure-skip-tls-verify
를 사용한다.사용할 실제 사용자 정보를 결정한다. 사용자 당 하나의 인증 기법만 허용하는 것을 제외하고는 클러스터 정보와 동일한 규칙을 사용하여 사용자 정보를 작성한다.
--client-certificate
, --client-key
, --username
, --password
, --token
을 사용한다.user
필드를 사용한다.여전히 누락된 정보는 기본 값을 사용하고 인증 정보를 묻는 메시지가 표시될 수 있다.
kubeconfig 파일에서 파일과 경로 참조는 kubeconfig 파일의 위치와 관련 있다.
커맨드라인 상에 파일 참조는 현재 디렉터리를 기준으로 한다.
$HOME/.kube/config
에서 상대 경로는 상대적으로, 절대 경로는
절대적으로 저장한다.