반응형

목차

  1. kubeadm init 
  2. kubeadm token
  3. kubeadm join
  4. kubeadm list
  5. kubeadm reset

kubeadm init

kubeadm init 명령어는 Kubernetes 클러스터를 초기화하여 새로운 마스터 노드를 생성하는 명령어입니다. 이 명령어는 Kubernetes 클러스터를 처음 만들 때 실행하며, 필요한 구성 요소를 설치하고 초기화 파일을 생성합니다.

  1. 기본 구조
    kubeadm init [옵션]

    예시: kubeadm init --pod-network-cidr=10.244.0.0/16
    10.244.0.0/16 CIDR 범위의 Pod 네트워크를 생성하면서 Kubernetes 클러스터를 초기화합니다.

  2. 옵션
    • --config: 초기화에 사용할 구성 파일을 지정합니다.

      예시: kubeadm init --config=my-config.yaml
       (my-config.yaml 파일에 지정된 구성 파일을 사용하여 Kubernetes 클러스터를 초기화합니다.)

    • --token: 클러스터에 대한 액세스를 허용하는 토큰을 생성합니다.

      예시: kubeadm init --token abcdef.1234567890abcdef 
      (액세스를 허용하는 토큰이 abcdef.1234567890abcdef인 Kubernetes 클러스터를 초기화합니다.)

    • --pod-network-cidr: 클러스터에 대한 Pod 네트워크 CIDR 범위를 지정합니다.

      예시: kubeadm init --pod-network-cidr=10.244.0.0/16 
      (10.244.0.0/16 CIDR 범위의 Pod 네트워크를 생성하면서 Kubernetes 클러스터를 초기화합니다.)

    • --apiserver-cert-extra-sans: 마스터 노드 인증서에 추가할 DNS 이름을 지정합니다.

      예시: kubeadm init --apiserver-cert-extra-sans=www.example.com 
      (마스터 노드 인증서에 www.example.com DNS 이름을 추가하면서 Kubernetes 클러스터를 초기화합니다.)

    • --skip-phases: 특정 초기화 단계를 건너뜁니다.

      예시: kubeadm init --skip-phases=addon/kube-proxy
      (kube-proxy 애드온 초기화를 건너뜁니다.)

kubeadm token

kubeadm token 명령어는 Kubernetes 클러스터에서 토큰을 생성하고 관리하는 명령어입니다. 토큰은 클러스터에 대한 액세스를 제어하고, 클러스터 노드 간의 인증을 관리하는 데 사용됩니다.

  1. 기본 구조

    1. 토큰 생성
      kubeadm token create

      kubeadm token create 명령어를 사용하여 새로운 토큰을 생성합니다. 이 명령어는 kubeadm join 명령어를 사용하여 워커 노드를 클러스터에 추가할 때 사용됩니다.

    2. 토큰 조회
      kubeadm token list

      kubeadm token list 명령어를 사용하여 현재 사용 가능한 토큰 목록을 조회합니다.

    3. 토큰 삭제
      kubeadm token delete [토큰]

      kubeadm token delete 명령어를 사용하여 특정 토큰을 삭제합니다.

  2. 옵션
    • create: 새로운 토큰을 생성합니다.

      예시: kubeadm token create --ttl 24h --print-join-command
       (24시간 동안 유효한 토큰을 생성하고, kubeadm join 명령어를 출력합니다.)

    • delete: 토큰을 삭제합니다.

      예시: kubeadm token delete abcdef.1234567890abcdef 
      (abcdef.1234567890abcdef 토큰을 삭제합니다.)

    • list: 사용 가능한 토큰 목록을 조회합니다.

      예시: kubeadm token list
      (사용 가능한 토큰 목록을 조회합니다.)

kubeadm join

kubeadm join 명령어는 Kubernetes 클러스터에 새로운 워커 노드를 추가하는 명령어입니다. 이 명령어를 사용하여 워커 노드를 클러스터에 추가하려면, kubeadm init 명령어로 생성한 마스터 노드에서 생성된 토큰과 디스커버리 토큰 CA 인증서 해시를 사용하여 인증해야 합니다.

  1. 기본 구조
    kubeadm join [마스터 노드 IP]:[포트] --token [토큰] --discovery-token-ca-cert-hash [디스커버리 토큰 CA 인증서 해시]

    예시: kubeadm join 192.168.0.1:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

    마스터 노드 IP가 192.168.0.1이고, 토큰이 abcdef.1234567890abcdef이며, 디스커버리 토큰 CA 인증서 해시가 sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef인 워커 노드를 추가할 수 있습니다.

  2. 옵션
    • --token: 클러스터에 대한 액세스를 허용하는 토큰을 지정합니다.

      예시: kubeadm join 192.168.0.1:6443 --token abcdef.1234567890abcdef
       (액세스를 허용하는 토큰이 abcdef.1234567890abcdef인 워커 노드를 추가합니다.)

    • --discovery-token-ca-cert-hash: 디스커버리 토큰 CA 인증서 해시를 지정합니다.

      예시: kubeadm join 192.168.0.1:6443 --discovery-token-ca-certhash\ sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
      (디스커버리 토큰 CA 인증서 해시가 sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef인 워커 노드를 추가합니다.)

      * \ 는 아랫줄까지 한줄로 쓰겠다는 의미입니다.

    • --control-plane: 마스터 노드에서 실행되는 Kubernetes 컨트롤 플레인 구성 요소를 설치합니다.

      예시: `kubeadm join 192.168.0.1:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890

    • --certificate-key: 마스터 노드에서 생성된 인증서 키를 지정합니다.

      예시: kubeadm join 192.168.0.1:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef --certificate-key abcdef1234567890
       (인증서 키가 abcdef1234567890인 워커 노드를 추가합니다.)

    • --cri-socket: 사용할 CRI 소켓 경로를 지정합니다.

      예시: kubeadm join 192.168.0.1:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef --cri-socket /var/run/dockershim.sock 
      (Docker CRI를 사용하고, /var/run/dockershim.sock CRI 소켓을 사용하는 워커 노드를 추가합니다.)

    • --discovery-file: 디스커버리 토큰 파일의 경로를 지정합니다.

      예시: kubeadm join 192.168.0.1:6443 --discovery-file=/etc/kubernetes/discovery-token-ca-cert-hash.txt
      (/etc/kubernetes/discovery-token-ca-cert-hash.txt 파일에서 디스커버리 토큰 CA 인증서 해시를 읽어들여 워커 노드를 추가합니다.)

    • --skip-preflight-checks: 사전 검사를 건너뜁니다.

      예시: kubeadm join 192.168.0.1:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef --skip-preflight-checks
      (사전 검사를 건너뛰고 워커 노드를 추가합니다.)

kubeadm list

kubeadm list 명령어는 Kubernetes 클러스터의 상태를 확인하는 명령어입니다. 이 명령어를 사용하여, 현재 클러스터의 노드, 구성 요소 및 버전을 확인할 수 있습니다.

  1. 기본 구조
    kubeadm list [component]

    component는 확인하려는 구성 요소를 지정합니다. 지정하지 않으면, 모든 구성 요소를 확인합니다. 구성 요소는 다음과 같습니다.

    1. kube-apiserver
    2. kube-controller-manager
    3. kube-scheduler
    4. etcd
    5. kube-proxy
    6. kubelet

      예: sudo kubeadm list kubelet 명령어를 실행하여 현재 클러스터의 모든 kubelet 구성 요소를 확인할 수 있습니다.
  2. 다음은 kubeadm list 명령어에서 자주 사용되는 옵션들입니다.
    • --kubeconfig: kubeconfig 파일을 지정합니다.

      예시: sudo kubeadm list --kubeconfig=/path/to/kubeconfig

    • --output: 출력 형식을 지정합니다.

      예시: sudo kubeadm list --output=json
       (JSON 형식으로 출력합니다.)

kubeadm list --help 명령어를 통해 자세한 정보를 확인할 수 있습니다.kubeadm reset 명령어는 Kubernetes 클러스터에서 kubeadm init 명령어로 생성한 초기화 구성을 삭제하여 클러스터를 초기 상태로 되돌리는 명령어입니다. 이 명령어를 사용하면 클러스터의 모든 구성 요소와 설정이 삭제됩니다.


kubeadm reset

kubeadm reset 명령어는 Kubernetes 클러스터에서 현재 노드를 초기화하는 명령어입니다. 이 명령어를 사용하여, 노드에서 Kubernetes 클러스터를 제거하고, 모든 설정 파일과 데이터를 삭제할 수 있습니다.

  1. 기본적인 사용 방법은 다음과 같습니다.
    kubeadm reset

    이 명령어를 실행하면, 다음과 같은 작업이 수행됩니다.
    1. 모든 Kubernetes 구성 요소와 컨테이너를 제거합니다.
    2. 모든 네트워크 설정을 제거합니다.
    3. 모든 Kubernetes 설정 파일을 삭제합니다.
    4. 모든 데이터를 삭제합니다.
  2. 옵션들에 대해 알아보겠습니다.
    • --cri-socket: CRI 소켓 경로를 지정합니다. 이 옵션을 사용하여 kubelet이나 kubeadm에 등록된 CRI 구현체의 소켓을 사용합니다.

      예시: sudo kubeadm reset --cri-socket=/var/run/dockershim.sock 
      (dockershim을 사용하여 초기화합니다.)

    • --force: 초기화 작업을 강제로 수행합니다.

      예시: sudo kubeadm reset --force
       (강제 초기화를 수행합니다.)

    • --skip-phases: 특정 초기화 단계를 건너뜁니다.

      예시: sudo kubeadm reset --skip-phases=all 
      (모든 초기화 단계를 건너뜁니다.)

      --dry-run: 실제로 초기화 작업을 수행하지 않고, 초기화 작업을 출력합니다.

      예시: sudo kubeadm reset --dry-run 
      (초기화 작업을 수행하지 않고, 초기화 작업을 출력합니다.)

드디어 쿠버네티스 명령어 시리즈가 마무리되었습니다. kubectl과 kubeadm은 둘 다 쿠버네티스에서 많이 사용된다고 합니다. 바로 이전에 설명했듯이 꼭 다 암기해야 하는 것은 아니고, 이런게 있구나 생각하시고 나중에 이런게 필요하다 할 때 찾아보시면 될 것 같습니다. 

 

혹시나 이외에 더 알고 싶은 명령어나 옵션이 있다면 댓글 남겨주시면 조사해보도록 하겠습니다. 감사합니다.                                                                                                           

반응형