이 섹션의 다중 페이지 출력 화면임. 여기를 클릭하여 프린트.
포함된 도구들
- 1: fish auto-completion
- 2: kubectl 설치 검증하기
- 3: kubectl-convert 개요
- 4: macOS에서 bash 자동 완성 사용하기
- 5: PowerShell 자동 완성
- 6: zsh 자동 완성
- 7: 다음 단계는 무엇인가?
- 8: 리눅스에서 bash 자동 완성 사용하기
1 - fish auto-completion
Fish용 kubectl 자동 완성 스크립트는 kubectl completion fish
명령으로 생성할 수 있다. 셸에서 자동 완성 스크립트를 소싱하면 kubectl 자동 완성 기능이 활성화된다.
모든 셸 세션에서 사용하려면, ~/.config/fish/config.fish
파일에 다음을 추가한다.
kubectl completion fish | source
셸을 다시 로드하면, kubectl 자동 완성 기능이 작동할 것이다.
2 - kubectl 설치 검증하기
kubectl이 쿠버네티스 클러스터를 찾아 접근하려면,
kube-up.sh를
사용하여 클러스터를 생성하거나 Minikube 클러스터를 성공적으로 배포할 때 자동으로 생성되는
kubeconfig 파일이
필요하다.
기본적으로, kubectl 구성은 ~/.kube/config
에 있다.
클러스터 상태를 가져와서 kubectl이 올바르게 구성되어 있는지 확인한다.
kubectl cluster-info
URL 응답이 표시되면, kubectl이 클러스터에 접근하도록 올바르게 구성된 것이다.
다음과 비슷한 메시지가 표시되면, kubectl이 올바르게 구성되지 않았거나 쿠버네티스 클러스터에 연결할 수 없다.
The connection to the server <server-name:port> was refused - did you specify the right host or port?
예를 들어, 랩톱에서 로컬로 쿠버네티스 클러스터를 실행하려면, Minikube와 같은 도구를 먼저 설치한 다음 위에서 언급한 명령을 다시 실행해야 한다.
kubectl cluster-info
가 URL 응답을 반환하지만 클러스터에 접근할 수 없는 경우, 올바르게 구성되었는지 확인하려면 다음을 사용한다.
kubectl cluster-info dump
3 - kubectl-convert 개요
이것은 쿠버네티스 커맨드 라인 도구인 kubectl
의 플러그인으로서, 특정 버전의 쿠버네티스 API로 작성된 매니페스트를 다른 버전으로
변환할 수 있도록 한다. 이것은 매니페스트를 최신 쿠버네티스 릴리스의 사용 중단되지 않은 API로 마이그레이션하는 데 특히 유용하다.
더 많은 정보는 다음의 사용 중단되지 않은 API로 마이그레이션을 참고한다.
4 - macOS에서 bash 자동 완성 사용하기
소개
Bash의 kubectl 자동 완성 스크립트는 kubectl completion bash
로 생성할 수 있다. 이 스크립트를 셸에 소싱하면 kubectl 자동 완성이 가능하다.
그러나 kubectl 자동 완성 스크립트는 미리 bash-completion을 설치해야 동작한다.
경고:
bash-completion에는 v1과 v2 두 가지 버전이 있다. v1은 Bash 3.2(macOS의 기본 설치 버전) 버전용이고, v2는 Bash 4.1 이상 버전용이다. kubectl 자동 완성 스크립트는 bash-completion v1과 Bash 3.2 버전에서는 작동하지 않는다. bash-completion v2 와 Bash 4.1 이상 버전 이 필요하다. 따라서, macOS에서 kubectl 자동 완성 기능을 올바르게 사용하려면, Bash 4.1 이상을 설치하고 사용해야 한다(지침). 다음의 내용에서는 Bash 4.1 이상(즉, 모든 Bash 버전 4.1 이상)을 사용한다고 가정한다.Bash 업그레이드
여기의 지침에서는 Bash 4.1 이상을 사용한다고 가정한다. 다음을 실행하여 Bash 버전을 확인할 수 있다.
echo $BASH_VERSION
너무 오래된 버전인 경우, Homebrew를 사용하여 설치/업그레이드할 수 있다.
brew install bash
셸을 다시 로드하고 원하는 버전을 사용 중인지 확인한다.
echo $BASH_VERSION $SHELL
Homebrew는 보통 /usr/local/bin/bash
에 설치한다.
bash-completion 설치
참고:
언급한 바와 같이, 이 지침에서는 Bash 4.1 이상을 사용한다고 가정한다. 이는 bash-completion v2를 설치한다는 것을 의미한다(Bash 3.2 및 bash-completion v1의 경우, kubectl 자동 완성이 작동하지 않음).bash-completion v2가 이미 설치되어 있는지 type_init_completion
으로 확인할 수 있다. 그렇지 않은 경우, Homebrew로 설치할 수 있다.
brew install bash-completion@2
이 명령의 출력에 명시된 바와 같이, ~/.bash_profile
파일에 다음을 추가한다.
export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
셸을 다시 로드하고 bash-completion v2가 올바르게 설치되었는지 type _init_completion
으로 확인한다.
kubectl 자동 완성 활성화
이제 kubectl 자동 완성 스크립트가 모든 셸 세션에서 제공되도록 해야 한다. 이를 수행하는 방법에는 여러 가지가 있다.
-
자동 완성 스크립트를
~/.bash_profile
파일에서 소싱한다.echo 'source <(kubectl completion bash)' >>~/.bash_profile
-
자동 완성 스크립트를
/usr/local/etc/bash_completion.d
디렉터리에 추가한다.kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
-
kubectl에 대한 앨리어스가 있는 경우, 해당 앨리어스로 작업하기 위해 셸 자동 완성을 확장할 수 있다.
echo 'alias k=kubectl' >>~/.bash_profile echo 'complete -o default -F __start_kubectl k' >>~/.bash_profile
-
Homebrew로 kubectl을 설치한 경우(여기의 설명을 참고), kubectl 자동 완성 스크립트가 이미
/usr/local/etc/bash_completion.d/kubectl
에 있을 것이다. 이 경우, 아무 것도 할 필요가 없다.참고:
bash-completion v2의 Homebrew 설치는BASH_COMPLETION_COMPAT_DIR
디렉터리의 모든 파일을 소싱하므로, 후자의 두 가지 방법이 적용된다.
어떤 경우든, 셸을 다시 로드하면, kubectl 자동 완성 기능이 작동할 것이다.
5 - PowerShell 자동 완성
PowerShell용 kubectl 자동 완성 스크립트는 kubectl completion powershell
명령으로 생성할 수 있다.
모든 셸 세션에서 사용하려면, $PROFILE
파일에 다음을 추가한다.
kubectl completion powershell | Out-String | Invoke-Expression
이 명령은 PowerShell을 실행할 때마다 자동 완성 스크립트를 재생성한다. 아니면, 생성된 스크립트를 $PROFILE
파일에 직접 추가할 수도 있다.
생성된 스크립트를 $PROFILE
파일에 직접 추가하려면, PowerShell 프롬프트에서 다음 명령줄을 실행한다.
kubectl completion powershell >> $PROFILE
셸을 다시 불러오면, kubectl 자동 완성이 동작할 것이다.
6 - zsh 자동 완성
Zsh용 kubectl 자동 완성 스크립트는 kubectl completion zsh
명령으로 생성할 수 있다. 셸에서 자동 완성 스크립트를 소싱하면 kubectl 자동 완성 기능이 활성화된다.
모든 셸 세션에서 사용하려면, ~/.zshrc
파일에 다음을 추가한다.
source <(kubectl completion zsh)
kubectl에 대한 앨리어스가 있는 경우, kubectl 자동완성이 자동으로 동작할 것이다.
셸을 다시 로드하면, kubectl 자동 완성 기능이 작동할 것이다.
2: command not found: compdef
와 같은 오류가 발생하면, ~/.zshrc
파일의 시작 부분에 다음을 추가한다.
autoload -Uz compinit
compinit
7 - 다음 단계는 무엇인가?
- Minikube 설치
- 클러스터 생성에 대한 자세한 내용은 시작하기를 참고한다.
- 애플리케이션을 시작하고 노출하는 방법에 대해 배운다.
- 직접 생성하지 않은 클러스터에 접근해야 하는 경우, 클러스터 접근 공유 문서를 참고한다.
- kubectl 레퍼런스 문서 읽기
8 - 리눅스에서 bash 자동 완성 사용하기
소개
Bash의 kubectl 자동 완성 스크립트는 kubectl completion bash
명령으로 생성할 수 있다. 셸에서 자동 완성 스크립트를 소싱(sourcing)하면 kubectl 자동 완성 기능이 활성화된다.
그러나, 자동 완성 스크립트는 bash-completion에 의존하고 있으며, 이 소프트웨어를 먼저 설치해야 한다(type _init_completion
을 실행하여 bash-completion이 이미 설치되어 있는지 확인할 수 있음).
bash-completion 설치
bash-completion은 많은 패키지 관리자에 의해 제공된다(여기 참고). apt-get install bash-completion
또는 yum install bash-completion
등으로 설치할 수 있다.
위의 명령은 bash-completion의 기본 스크립트인 /usr/share/bash-completion/bash_completion
을 생성한다. 패키지 관리자에 따라, ~/.bashrc
파일에서 이 파일을 수동으로 소스(source)해야 한다.
확인하려면, 셸을 다시 로드하고 type _init_completion
을 실행한다. 명령이 성공하면, 이미 설정된 상태이고, 그렇지 않으면 ~/.bashrc
파일에 다음을 추가한다.
source /usr/share/bash-completion/bash_completion
셸을 다시 로드하고 type _init_completion
을 입력하여 bash-completion이 올바르게 설치되었는지 확인한다.
kubectl 자동 완성 활성화
Bash
이제 kubectl 자동 완성 스크립트가 모든 셸 세션에서 제공되도록 해야 한다. 이를 수행할 수 있는 두 가지 방법이 있다.
echo 'source <(kubectl completion bash)' >>~/.bashrc
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
kubectl에 대한 앨리어스(alias)가 있는 경우, 해당 앨리어스로 작업하도록 셸 자동 완성을 확장할 수 있다.
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
참고:
bash-completion은/etc/bash_completion.d
에 있는 모든 자동 완성 스크립트를 소싱한다.두 방법 모두 동일하다. 셸을 다시 로드하면, kubectl 자동 완성 기능이 작동할 것이다.
셸의 현재 세션에서 bash 자동 완성을 활성화하려면 exec bash
를 실행한다.
exec bash