반응형
들어가는 말
Kubernetes 명령 도구인 'kubectl'을 사용하다보면, 수많은 타이핑 때문에 손가락이 아프고, 전체 명령어를 다 외울 수 없어서 명령을 입력하다가 주저하는 경우가 있다.
이럴 때, kubectl bash auto-completion 기능을 활용하면 명령어 입력하는 것이 한결 쉬워진다.
kubectl의 auto-completion 기능에 대해서 설명한 Web docs는 많은데, 대부분 Ubuntu, CentOS 환경에서 사용하는 것을 가정하고 설명하다보니, Mac에서 Web docs의 설명과 같이 따라해보면 안 된다.
Bash 버전부터 업그레이드
2021년 현재 macOS에 기본 설치된 Bash는 v3.2이다. 이 Bash를 v4.1+으로 Upgrade해야 한다.
주의: Bash v3.2로는 kubectl auto-completion을 사용할 수 없다
MacOS에서 Bash를 upgrade하는 절차는 아래 Web docs에 잘 설명되어 있으므로, 이 순서를 따른다.
Upgrading Bash on macOS
위 Web docs를 명령만 요약해보면 이렇다.
##
## brew 명령으로 bash를 설치한다.
##
$ brew install bash
...
...
$ which -a bash
/usr/local/bin/bash
/bin/bash
$ /usr/local/bin/bash --version
GNU bash, version 5.1.8(1)-release (x86_64-apple-darwin20.3.0)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
##
## /etc/shells에 '/usr/local/bin/bash'를 추가한다.
##
$ sudo vim /etc/shells
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/bash ## 이 라인을 추가한다.
##
## Set default shell
##
$ chsh -s /usr/local/bin/bash
## TODO: 위 chsh 명령을 수행한 후에
## 반드시 기존 iTerm2 터미널을 종료하고, 새로운 iTerm2 터미널을 열어야
## 새로운 버전의 bash 명령을 사용할 수 있다.
$ echo $BASH_VERSION
5.1.8(1)-release
Bash auto-completion
MacOS에 설치된 Bash가 v4.1+ 인 것을 확인했다면, 아래 Web docs를 따라서 설정해주면 모든 것이 끝!
bash auto-completion on macOS
위 Web Site의 Docs를 읽으면서, 아래 내가 작성한 문서를 비교하면서 작업해야 한다.
위 Web Docs만 따라하면 bash 패키지 설치 디렉토리가 설치 대상 장비마다 달라서, 잘못된 설정을 하게 된다.
##
## 아래 문서를 따라서 설정할 때, 주의할 점이 있다.
## https://kubernetes.io/docs/tasks/tools/included/optional-kubectl-configs-bash-mac/
## 위 문서의 설명을 따라하다보면, bash-completion@2를 설치하고 나서,
## .bash_profile에 바로 bash_completion.sh 정보를 작성하라고 되어 있는데
## 이때, Web Docs에 있는 것을 Copy & Paste하면 안 된다.
## 왜냐고?
## bash-completion@2가 minor 버전이 릴리즈될 때마다 설치 디렉토리가
## - /usr/local/etc/... 인 경우가 있고,
## - /opt/homebrew/... 인 경우가 있기 때문에
## Web Docs만 따라하면 제대로 설정할 수 없다.
## 따라서 아래 설치 명령의 제일 밑에 출력되는 내용을 copy해서 .bash_profile에 붙여 넣어야 한다.
## 즉, 결론적으로
## Kubernetes의 Web Docs는 전체 절차만 이해하는 수준으로 읽고,
## 아래 명령의 출력 결과에 나오는 안내 글을 읽고 따라서 설정 작업을 해야 잘 동작한다.
##
$ brew install bash-completion@2
... 중간 생략 ...
## 주의: 바로 이 안내 글을 꼭 주의깊게 읽고, .bash_profile 설정 작업을 해야 한다.
Add the following line to your ~/.bash_profile:
[[ -r "/opt/homebrew/etc/profile.d/bash_completion.sh" ]] && . "/opt/homebrew/etc/profile.d/bash_completion.sh"
==> Summary
🍺 /opt/homebrew/Cellar/bash-completion@2/2.11: 753 files, 1MB
$
블로그 작성자: sejong.jeonjo@gmail.com
'kubernetes' 카테고리의 다른 글
MetalLB 설치 (2023년 2월 14일에 설치) (1) | 2021.07.08 |
---|---|
Kubernetes Container에 대한 TCPDUMP 방법 (0) | 2021.07.08 |
Istio를 설치하는 다양한 방법 (0) | 2021.07.04 |
OCP의 SecurityContextConstraints(SCC) 설정 (0) | 2021.07.01 |
Kubernetes Admission Controller 개념 및 WebHook 예제 코드 (0) | 2021.06.29 |