Linux에 kubectl 설치하기
Linux에 kubectl 설치하기
출처: 문서
본문
시작하기 전에
클러스터와 minor 버전 차이가 하나 이내인 kubectl 버전을 사용해야 해요. 예를 들어 v1.37 클라이언트는 v1.36, v1.37, v1.38 컨트롤 플레인과 통신할 수 있습니다. 최신 호환 버전의 kubectl을 사용하면 예상치 못한 문제를 피하는 데 도움이 됩니다.
Linux에 kubectl 설치
Linux에서 kubectl을 설치하는 다음 방법이 있어요:
curl로 Linux에 kubectl 바이너리 설치
-
최신 릴리스를 명령으로 다운로드한다:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"특정 버전을 다운로드하려면 명령의
$(curl -L -s https://dl.k8s.io/release/stable.txt)부분을 특정 버전으로 바꿔요.예를 들어 Linux x86-64에 v1.37을 다운로드하려면:
curl -LO https://dl.k8s.io/release/v1.37.0/bin/linux/amd64/kubectlLinux ARM64라면:
curl -LO https://dl.k8s.io/release/v1.37.0/bin/linux/arm64/kubectl -
바이너리를 검증한다 (선택 사항)
kubectl 체크섬 파일을 다운로드한다:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl.sha256"체크섬 파일에 대해 kubectl 바이너리를 검증한다:
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check유효하다면 출력은:
kubectl: OK검증이 실패하면
sha256는 0이 아닌 상태로 종료되고 다음과 비슷한 출력을 보여줘요:kubectl: FAILED sha256sum: WARNING: 1 computed checksum did NOT match같은 버전의 바이너리와 체크섬을 다운로드해야 해요.
-
kubectl을 설치한다
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl대상 시스템에 root 접근 권한이 없다면 여전히 kubectl을
~/.local/bin디렉토리에 설치할 수 있어요:chmod +x kubectl mkdir -p ~/.local/bin mv ./kubectl ~/.local/bin/kubectl # and then append (or prepend) ~/.local/bin to $PATH -
설치한 버전이 최신인지 테스트한다:
kubectl version --client또는 상세 보기를 위해:
kubectl version --client --output=yaml
네이티브 패키지 관리로 설치
-
apt패키지 인덱스를 업데이트하고 Kubernetesapt리포지토리를 사용하는 데 필요한 패키지를 설치한다:sudo apt-get update # apt-transport-https may be a dummy package; if so, you can skip that package sudo apt-get install -y apt-transport-https ca-certificates curl gnupg -
Kubernetes 패키지 리포지토리의 공개 서명 키를 다운로드한다. 모든 리포지토리에 같은 서명 키가 사용되므로 URL의 버전은 무시할 수 있다:
# If the folder `/etc/apt/keyrings` does not exist, it should be created before the curl command, read the note below. # sudo mkdir -p -m 755 /etc/apt/keyrings curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.37/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # allow unprivileged APT programs to read this keyring
Debian 12와 Ubuntu 22.04보다 오래된 릴리스에서는 /etc/apt/keyrings 폴더가 기본적으로 존재하지 않으며, curl 명령 전에 만들어야 해요.
-
적절한 Kubernetes
apt리포지토리를 추가한다. v1.37이 아닌 쿠버네티스 버전을 사용하려면 아래 명령의<version>을 원하는 minor 버전으로 바꿔요:# This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.37/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list # helps tools such as command-not-found to work correctly
kubectl을 다른 minor 릴리스로 업그레이드하려면 apt-get update와 apt-get upgrade를 실행하기 전에 /etc/apt/sources.list.d/kubernetes.list의 버전을 올려야 해요. 이 절차는 쿠버네티스 패키지 리포지토리 변경에 더 자세히 설명되어 있습니다.
-
apt패키지 인덱스를 업데이트하고 kubectl을 설치한다:sudo apt-get update sudo apt-get install -y kubectl -
Kubernetes
yum리포지토리를 추가한다. v1.37이 아닌 쿠버네티스 버전을 사용하려면 아래 명령의<version>을 원하는 minor 버전으로 바꿔요.# This overwrites any existing configuration in /etc/yum.repos.d/kubernetes.repo cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.37/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.37/rpm/repodata/repomd.xml.key EOF
kubectl을 다른 minor 릴리스로 업그레이드하려면 dnf update를 실행하기 전에 /etc/yum.repos.d/kubernetes.repo의 버전을 올려야 해요. 이 절차는 쿠버네티스 패키지 리포지토리 변경에 더 자세히 설명되어 있습니다.
-
dnf로 kubectl을 설치한다:sudo dnf install -y kubectl -
Kubernetes
zypper리포지토리를 추가한다. v1.37이 아닌 쿠버네티스 버전을 사용하려면 아래 명령의<version>을 원하는 minor 버전으로 바꿔요.# This overwrites any existing configuration in /etc/zypp/repos.d/kubernetes.repo cat <<EOF | sudo tee /etc/zypp/repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.37/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.37/rpm/repodata/repomd.xml.key EOF
kubectl을 다른 minor 릴리스로 업그레이드하려면 zypper update를 실행하기 전에 /etc/zypp/repos.d/kubernetes.repo의 버전을 올려야 해요. 이 절차는 쿠버네티스 패키지 리포지토리 변경에 더 자세히 설명되어 있습니다.
-
zypper를 업데이트하고 새 리포지토리 추가를 확인한다:sudo zypper update다음 메시지가 나타나면 't' 또는 'a'를 누른다:
New repository or package signing key received: Repository: Kubernetes Key Fingerprint: 1111 2222 3333 4444 5555 6666 7777 8888 9999 AAAA Key Name: isv:kubernetes OBS Project <isv:[email protected]> Key Algorithm: RSA 2048 Key Created: Thu 25 Aug 2022 01:21:11 PM -03 Key Expires: Sat 02 Nov 2024 01:21:11 PM -03 (expires in 85 days) Rpm Name: gpg-pubkey-9a296436-6307a177 Note: Signing data enables the recipient to verify that no modifications occurred after the data were signed. Accepting data with no, wrong or unknown signature can lead to a corrupted system and in extreme cases even to a system compromise. Note: A GPG pubkey is clearly identified by its fingerprint. Do not rely on the key's name. If you are not sure whether the presented key is authentic, ask the repository provider or check their web site. Many providers maintain a web page showing the fingerprints of the GPG keys they are using. Do you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r): a -
zypper로 kubectl을 설치한다:sudo zypper install -y kubectl
다른 패키지 관리로 설치
Ubuntu나 snap 패키지 관리자를 지원하는 다른 Linux 배포판을 사용한다면 kubectl을 snap 애플리케이션으로 사용할 수 있어요.
snap install kubectl --classic
kubectl version --client
Linux에서 Homebrew 패키지 관리자를 사용한다면 kubectl을 설치할 수 있어요.
brew install kubectl
kubectl version --client
kubectl 구성 확인
kubectl이 동작하는지 확인하는 방법은 kubectl 접근 구성을 참고하세요.
선택적인 kubectl 구성과 플러그인
셸 자동 완성 활성화
kubectl은 Bash, Zsh, Fish, PowerShell에 대한 자동 완성을 제공하며, 입력을 많이 줄여줘요.
아래는 Bash, Fish, Zsh에 대한 자동 완성을 설정하는 절차입니다.
kuberc 구성
자세한 내용은 kuberc를 참고하세요.
kubectl convert 플러그인 설치
-
최신 릴리스를 명령으로 다운로드한다:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert"curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl-convert" -
바이너리를 검증한다 (선택 사항)
kubectl-convert 체크섬 파일을 다운로드한다:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256"curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl-convert.sha256"체크섬 파일에 대해 kubectl-convert 바이너리를 검증한다:
echo "$(cat kubectl-convert.sha256) kubectl-convert" | sha256sum --check유효하다면 출력은:
kubectl-convert: OK검증이 실패하면
sha256는 0이 아닌 상태로 종료되고 다음과 비슷한 출력을 보여줘요:kubectl-convert: FAILED sha256sum: WARNING: 1 computed checksum did NOT match같은 버전의 바이너리와 체크섬을 다운로드해야 해요.
-
kubectl-convert를 설치한다
sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert -
플러그인이 성공적으로 설치되었는지 확인한다
kubectl convert --help오류가 보이지 않으면 플러그인이 성공적으로 설치된 것입니다.
-
플러그인 설치 후 설치 파일을 정리한다:
rm kubectl-convert kubectl-convert.sha256