반응형

목차

  1. kubectl port-forward
  2. kubectl auth reconcile
  3. kubectl attach
  4. kubectl certificate
  5. kubectl proxy

kubectl port-forward

kubectl port-forward 명령어는 로컬 시스템과 Kubernetes 클러스터 내부의 서비스 또는 파드를 연결하는 명령어입니다. 이 명령어를 사용하면, 로컬 시스템에서 Kubernetes 클러스터 내부의 서비스나 파드에 접근할 수 있습니다.

  1. 기본 구조
    kubectl port-forward [리소스 이름] [로컬 포트]:[원격 포트]

    예시: kubectl port-forward my-pod 8080:80
    my-pod 이름의 파드 내부의 80번 포트를 로컬 시스템의 8080번 포트와 연결할 수 있습니다.

  2. 옵션
    • --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번 포트와 연결합니다.)

kubectl auth reconcile

kubectl auth reconcile 명령어는 Kubernetes 클러스터의 사용자 인증 정보를 재조정하는 명령어입니다. 이 명령어를 사용하면, 사용자 인증 정보를 갱신하여 권한 부여를 업데이트할 수 있습니다.

  1. 기본 구조
    kubectl auth reconcile -f [파일 경로]

    예시: kubectl auth reconcile -f ./rbac.yaml
    현재 클러스터에 적용된 ./rbac.yaml 파일의 권한 부여를 재조정할 수 있습니다.

  2. 옵션
    • -f, --filename: 대상 파일을 지정합니다.

      예시: kubectl auth reconcile -f ./rbac.yaml 
      (./rbac.yaml 파일의 권한 부여를 재조정합니다.)

    • --dry-run: 실제 작업을 수행하지 않고 결과만 확인합니다.

      예시: kubectl auth reconcile -f ./rbac.yaml --dry-run 
      (실제 작업을 수행하지 않고 ./rbac.yaml 파일의 재조정 결과만 확인합니다.)

kubectl attach

kubectl attach 명령어는 실행 중인 파드에 연결하여 해당 파드의 터미널 세션에 접속하는 명령어입니다. 이 명령어를 사용하면, 파드의 로그를 보거나 디버깅을 위한 목적으로 파드 내부로 들어갈 수 있습니다.

  1. 기본 구조
    kubectl attach [파드 이름] -c [컨테이너 이름]

    예시: kubectl attach my-pod -c my-container
    my-pod 파드의 my-container 컨테이너 내부의 터미널 세션에 접속할 수 있습니다.

  2. 옵션
    • -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 컨테이너 내부의 터미널 세션에 접속하면서 터미널 입력/출력을 가능하게 합니다.)

kubectl certificate

kubectl certificate 명령어는 Kubernetes 클러스터 내에서 인증서와 관련된 작업을 수행하는 명령어입니다. 이 명령어를 사용하면, 인증서를 생성하거나 관리할 수 있습니다.

현재 Kubernetes v1.21에서는 kubectl certificate 명령어가 deprecated 되었으며, 대신 kubectl create certificate 명령어를 사용할 것을 권장합니다.

  1. 기본 구조
    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 인증서를 생성할 수 있습니다.

  2. 옵션
    • --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 인증서를 생성합니다.)

kubectl proxy

kubectl proxy 명령어는 Kubernetes API 서버를 로컬에서 실행하여, API 서버와 통신할 수 있는 프록시를 제공하는 명령어입니다. 이 명령어를 사용하면, 로컬에서 실행 중인 클라이언트에서 API 서버에 직접 접속하지 않고도 API 서버와 통신할 수 있습니다.

  1. 기본 구조
    kubectl proxy
    http://localhost:8001/ URL을 통해 API 서버와 통신할 수 있습니다.

  2. 옵션
    1. --port: 프록시 서버가 사용할 포트 번호를 지정합니다.

      예시: kubectl proxy --port=8080
       (프록시 서버를 8080 포트에서 실행합니다.)

    2. --address: 프록시 서버가 사용할 IP 주소를 지정합니다.

      예시: kubectl proxy --address=0.0.0.0
       (프록시 서버를 모든 IP 주소에서 실행합니다.)

드디어 kubectl은 마무리가 되었습니다. 생각보다 종류가 많기도 하고, 옵션도 다양해서 어제부터 정리했는데 이제야 끝이 보이네요. 하지만 이 모든 명령어를 암기할 필요는 없습니다. 자주 사용하는 명령어는 자연스래 익숙해질 것이고, 그게 아니라면 찾아보면 되니까요. 쿠버네티스 시험에서도 쿠버네티스 홈페이지에서 명령어를 검색해 볼 수 있다고 하니 말 다했죠.

반응형