목차
- kubectl port-forward
- kubectl auth reconcile
- kubectl attach
- kubectl certificate
- kubectl proxy
kubectl port-forward
kubectl port-forward 명령어는 로컬 시스템과 Kubernetes 클러스터 내부의 서비스 또는 파드를 연결하는 명령어입니다. 이 명령어를 사용하면, 로컬 시스템에서 Kubernetes 클러스터 내부의 서비스나 파드에 접근할 수 있습니다.
- 기본 구조
kubectl port-forward [리소스 이름] [로컬 포트]:[원격 포트]
예시: kubectl port-forward my-pod 8080:80
my-pod 이름의 파드 내부의 80번 포트를 로컬 시스템의 8080번 포트와 연결할 수 있습니다. - 옵션
- --namespace: 리소스가 포함된 네임스페이스를 지정합니다
.
예시: kubectl port-forward my-service --namespace my-namespace 8080:80
(my-namespace 네임스페이스에 속한 my-service 이름의 서비스 내부의 80번 포트를 로컬 시스템의 8080번 포트와 연결합니다.) - --address: 로컬 주소를 지정합니다.
예시: kubectl port-forward my-pod 127.0.0.1:8080:80
(my-pod 이름의 파드 내부의 80번 포트를 로컬 시스템의 127.0.0.1 주소의 8080번 포트와 연결합니다.)
- --namespace: 리소스가 포함된 네임스페이스를 지정합니다
kubectl auth reconcile
kubectl auth reconcile 명령어는 Kubernetes 클러스터의 사용자 인증 정보를 재조정하는 명령어입니다. 이 명령어를 사용하면, 사용자 인증 정보를 갱신하여 권한 부여를 업데이트할 수 있습니다.
- 기본 구조
kubectl auth reconcile -f [파일 경로]
예시: kubectl auth reconcile -f ./rbac.yaml
현재 클러스터에 적용된 ./rbac.yaml 파일의 권한 부여를 재조정할 수 있습니다. - 옵션
- -f, --filename: 대상 파일을 지정합니다.
예시: kubectl auth reconcile -f ./rbac.yaml
(./rbac.yaml 파일의 권한 부여를 재조정합니다.) - --dry-run: 실제 작업을 수행하지 않고 결과만 확인합니다.
예시: kubectl auth reconcile -f ./rbac.yaml --dry-run
(실제 작업을 수행하지 않고 ./rbac.yaml 파일의 재조정 결과만 확인합니다.)
- -f, --filename: 대상 파일을 지정합니다.
kubectl attach
kubectl attach 명령어는 실행 중인 파드에 연결하여 해당 파드의 터미널 세션에 접속하는 명령어입니다. 이 명령어를 사용하면, 파드의 로그를 보거나 디버깅을 위한 목적으로 파드 내부로 들어갈 수 있습니다.
- 기본 구조
kubectl attach [파드 이름] -c [컨테이너 이름]
예시: kubectl attach my-pod -c my-container
my-pod 파드의 my-container 컨테이너 내부의 터미널 세션에 접속할 수 있습니다. - 옵션
- -c, --container: 컨테이너 이름을 지정합니다.
예시: kubectl attach my-pod -c my-container
(my-pod 파드의 my-container 컨테이너 내부의 터미널 세션에 접속합니다.) - --stdin, --tty: 터미널 입력/출력을 가능하게 합니다.
예시: kubectl attach my-pod -c my-container --stdin --tty
(my-pod 파드의 my-container 컨테이너 내부의 터미널 세션에 접속하면서 터미널 입력/출력을 가능하게 합니다.)
- -c, --container: 컨테이너 이름을 지정합니다.
kubectl certificate
kubectl certificate 명령어는 Kubernetes 클러스터 내에서 인증서와 관련된 작업을 수행하는 명령어입니다. 이 명령어를 사용하면, 인증서를 생성하거나 관리할 수 있습니다.
현재 Kubernetes v1.21에서는 kubectl certificate 명령어가 deprecated 되었으며, 대신 kubectl create certificate 명령어를 사용할 것을 권장합니다.
- 기본 구조
kubectl create certificate [이름] --cert [인증서 파일 경로] --key [개인 키 파일 경로]
예시: kubectl create certificate my-cert --cert=./my-cert.crt --key=./my-cert.key
my-cert.crt 파일과 my-cert.key 파일을 사용하여 my-cert 인증서를 생성할 수 있습니다. - 옵션
- --cert: 인증서 파일 경로를 지정합니다.
예시: kubectl create certificate my-cert --cert=./my-cert.crt --key=./my-cert.key
(my-cert.crt 파일을 사용하여 인증서를 생성합니다.) - --key: 개인 키 파일 경로를 지정합니다.
예시: kubectl create certificate my-cert --cert=./my-cert.crt --key=./my-cert.key
(my-cert.key 파일을 사용하여 인증서를 생성합니다.) - --namespace: 네임스페이스를 지정합니다.
예시: kubectl create certificate my-cert --cert=./my-cert.crt --key=./my-cert.key --namespace=my-namespace
(my-namespace 네임스페이스에 my-cert 인증서를 생성합니다.)
- --cert: 인증서 파일 경로를 지정합니다.
kubectl proxy
kubectl proxy 명령어는 Kubernetes API 서버를 로컬에서 실행하여, API 서버와 통신할 수 있는 프록시를 제공하는 명령어입니다. 이 명령어를 사용하면, 로컬에서 실행 중인 클라이언트에서 API 서버에 직접 접속하지 않고도 API 서버와 통신할 수 있습니다.
- 기본 구조
kubectl proxy
http://localhost:8001/ URL을 통해 API 서버와 통신할 수 있습니다. - 옵션
- --port: 프록시 서버가 사용할 포트 번호를 지정합니다.
예시: kubectl proxy --port=8080
(프록시 서버를 8080 포트에서 실행합니다.) - --address: 프록시 서버가 사용할 IP 주소를 지정합니다.
예시: kubectl proxy --address=0.0.0.0
(프록시 서버를 모든 IP 주소에서 실행합니다.)
- --port: 프록시 서버가 사용할 포트 번호를 지정합니다.
드디어 kubectl은 마무리가 되었습니다. 생각보다 종류가 많기도 하고, 옵션도 다양해서 어제부터 정리했는데 이제야 끝이 보이네요. 하지만 이 모든 명령어를 암기할 필요는 없습니다. 자주 사용하는 명령어는 자연스래 익숙해질 것이고, 그게 아니라면 찾아보면 되니까요. 쿠버네티스 시험에서도 쿠버네티스 홈페이지에서 명령어를 검색해 볼 수 있다고 하니 말 다했죠.
'Container > Kubernetes' 카테고리의 다른 글
[Kubernetes] kubectl로 yaml 파일 생성하기 (+ yaml 파일 구성) (0) | 2023.04.04 |
---|---|
[Kubernetes] kubeadm 명령어 모음 (0) | 2023.04.02 |
[Kubernetes] Kubectl 명령어 모음 [5] 배포 (0) | 2023.04.02 |
[Kubernetes] Kubectl 명령어 모음 [4] 확인 Part.2 (0) | 2023.04.02 |
[Kubernetes] Kubectl 명령어 모음 [3] 확인 Part.1 (0) | 2023.04.02 |