본문 바로가기
Kubernetes

Kubernetes Bastion 초기 구성하면 유용한 셋팅

by study4me 2025. 11. 30.
반응형

kubectl 초기 설정 꿀팁

각 사용자 home directory에 다음 내용을 추가하여 사용하면 유용하다.

1. bash-completion 설치

bash-completion을 설치하면 /usr/share/bash-completion/bash_completion를 생성한다.
패키지 매니저에 따라 ~/.bashrc 파일에서 bash_completion 파일을 수동으로 소싱해야 할 수도 있다.

###############################################################################
# 설치
###############################################################################
dnf install -y bash-completion

# ssh 터미널 재접속

# 소싱 설정 확인
type _init_completion

# 작동 안되면 .bashrc에  다음 내용 추가
echo "source /usr/share/bash-completion/bash_completion" >> ~/.bashrc

# ssh 터미널 재접속

# 소싱 설정 확인
type _init_completion


###############################################################################
# kubectl 자동 완성 활성화
###############################################################################
# 적용 방법은 2가지가 존재한다. User에 적용 또는 시스템에 적용.

# User에 적용 시
echo 'source <(kubectl completion bash)' >> ~/.bashrc

# 시스템에 적용 시
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
sudo chmod a+r /etc/bash_completion.d/kubectl

1.1 번외

# 궁금해서 찾아봄
kubectl completion bash
==> Bash용 kubectl을 완성하는 스크립트 반환
==> 해당 스크립트를 소싱하면 kubectl 자동 완성을 사용할 수 있다.

2. kubectl Alias 설정

# Alias 설정
echo 'alias k=kubectl' >>~/.bashrc
# Alias(k)에 대해 kubectl 자동 완성 기능이 적용되도록 설정
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
# ssh 터미널 재접속

3. kubectx / kubens

kubectx: kubectl에서 Context 전환 도구
kubens: kubectl에서 Namespace 전환 도구

git clone https://github.com/ahmetb/kubectx
# 클론 받은 코드 중 상위에 존재하는 kubectx, kubens 파일을 /usr/local/bin 하위에 옮기면 끝인것 같음

# 근데 공식 문서에서는 아래와 같이 가이드하고 있긴함
# 위에 방식 해보고 안되면 아래와 같이하면될듯
sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens

4. kube-ps1

git clone https://github.com/jonmosco/kube-ps1.git
# kube-ps1.sh 파일을 /usr/local/bin 하위로 이동

echo 'source /usr/local/bin/kube-ps1.sh' >>~/.bashrc
echo "PS1='[\u@\h \W $(kube_ps1)]\$ '" >>~/.bashrc

# ssh 터미널 재접속

 

5. 플젝에서 사용했던 bashrc 추가 내용

내가 설정한 건 아니지만 플젝에서는 이렇게 쓰고 있었음.

# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
    PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH

alias k='kubectl'

# User specific aliases and functions
source /usr/local/bin/kube-ps1/kube-ps1.sh
PS1='[\u@\h \W $(kube_ps1)]\$ '

export PATH="/usr/local/bin:$PATH"

 

출처

[bash-completion]

[kubectx / kubens]

[kube-ps1]

https://github.com/jonmosco/kube-ps1

반응형