
쿠버네티스 플러그인 관리자 - Krew
Krew는 쿠버네티스 플러그인 패키지 관리자입니다.
macOS의 brew, Ubuntu의 apt 와 비슷한 역할을 수행한다고 보면 됩니다.
Krew 를 통해 현재 217개이상의 플러그인을 설치할 수 있으며, 사용법도 매우 단순하다.
krew 의 주요기능은 다음과 같다.
- 플러그인 검색
- 플러그인 설치
- 플러그인 업데이트
Installing
# macOS & Linux # git 이 설치되어 있어야합니다. # () 부분도 포함하여 붙여 넣습니다. ( set -x; cd "$(mktemp -d)" && OS="$(uname | tr '[:upper:]' '[:lower:]')" && ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" && KREW="krew-${OS}_${ARCH}" && curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" && tar zxvf "${KREW}.tar.gz" && ./"${KREW}" install krew )
# Krew 실행파일 위치를 PATH에 등록 export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
# Shell을 재시작 source ~/.zshhrc # bash 을 사용하는 경우, bashrc를 입력
# 정상적으로 설치되었는지 확인 & krew 업데이트 kubectl krew update
Krew 삭제
# Krew 삭제 rm -rf -- ~/.krew
Krew 사용법
Krew는 일반적인 패키지 관리자가 수행하는 역할을 대부분 수행할 수 있습니다.
1. 플러그인 리스트 업데이트
kubectl krew update
2. Krew 에서 사용가능한 플러그인 검색
$ kubectl krew search NAME DESCRIPTION INSTALLED access-matrix Show an RBAC access matrix for server resources no accurate Manage Accurate, a multi-tenancy controller no advise-policy Suggests PodSecurityPolicies and OPA Policies f... no advise-psp Suggests PodSecurityPolicies for cluster. no ~ ~ ~
3. 플러그인 설치
# kubectl krew install <plugin-name> $ kubectl krew install konfig # ----- ➜ ~ kubectl krew install konfig Updated the local copy of plugin index. Installing plugin: konfig Installed plugin: konfig \ | Use this plugin: | kubectl konfig | Documentation: | https://github.com/corneliusweig/konfig /
4. 플러그인 사용
# kubectl krew <plugin-name> # 정상적으로 설치 되었는지 확인 $ kubectl konfig # ------------------------------------- ➜ ~ kubectl konfig kubectl konfig helps to merge, split or import kubeconfig files USAGE: kubectl konfig merge [--preserve-structure,-p] <CONFIG>.. Merge multiple kubeconfigs into one. -p prevents flattening which will make the result less portable. kubectl konfig import [--preserve-structure,-p] [--save,-s] [--stdin,-i] <CONFIG>.. Import the given configs into your current kubeconfig (respects KUBECONFIG env var). -s writes the result to your ~/.kube/config -i import kubeconfig string from stdin kubectl konfig split <CONTEXT>.. [--kubeconfig,-k <CONFIG>] kubectl konfig export <CONTEXT>.. [--kubeconfig,-k <CONFIG>] Export/split off a minimal kubeconfig with the given contexts -k may be repeated or contain a comma-delimited list of input configs. When omitted, export from the default kubeconfig. EXAMPLES: Merge new-cfg with your current kubeconfig $ kubectl konfig import new-cfg and save the result to ~/.kube/config $ kubectl konfig import --save new-cfg CAVEAT: due to how shells work, the following will lose your current ~/.kube/config WRONG $ kubectl konfig import new-cfg > ~/.kube/config Export ctx1 and ctx2 into combined.yaml $ kubectl konfig export -k ~/.kube/config -k k3s.yaml ctx1 ctx2 > combined.yaml Merge two configs $ kubectl konfig merge ~/.kube/config k3s.yaml > merged-and-flattened or $ kubectl konfig merge -p ~/.kube/config k3s.yaml > merged-not-flattened
# kubeconfig 추출하기 (export) # kubectl konfig export {context-name} > {파일명} kubectl konfig export kind-kind > kind.config
5. 플러그인 삭제
kubectl krew uninstall konfig
More Plugin
Krew 를 이용하여 설치 할 수 있는 플러그인은 여기서 확인할 수 있습니다.
'Kubernetes' 카테고리의 다른 글
containerd 에 Private Registry Credential 설정 (aka config.toml) (0) | 2024.07.01 |
---|---|
Nginx Ingress Rewirte & AWS Load Balancer Controller (0) | 2023.09.12 |
vCluster (Multi-Tenancy in Kubernetes) (0) | 2023.07.10 |
[kubectl] kubectx + kubens 설정 및 자동 완성 (0) | 2023.07.09 |
nginx ingress controller tcp 설정 (0) | 2022.12.26 |