목차
- kubeadm init
- kubeadm token
- kubeadm join
- kubeadm list
- kubeadm reset
kubeadm init
kubeadm init 명령어는 Kubernetes 클러스터를 초기화하여 새로운 마스터 노드를 생성하는 명령어입니다. 이 명령어는 Kubernetes 클러스터를 처음 만들 때 실행하며, 필요한 구성 요소를 설치하고 초기화 파일을 생성합니다.
- 기본 구조
kubeadm init [옵션]
예시: kubeadm init --pod-network-cidr=10.244.0.0/16
10.244.0.0/16 CIDR 범위의 Pod 네트워크를 생성하면서 Kubernetes 클러스터를 초기화합니다. - 옵션
- --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 애드온 초기화를 건너뜁니다.)
- --config: 초기화에 사용할 구성 파일을 지정합니다.
kubeadm token
kubeadm token 명령어는 Kubernetes 클러스터에서 토큰을 생성하고 관리하는 명령어입니다. 토큰은 클러스터에 대한 액세스를 제어하고, 클러스터 노드 간의 인증을 관리하는 데 사용됩니다.
- 기본 구조
- 토큰 생성
kubeadm token create
kubeadm token create 명령어를 사용하여 새로운 토큰을 생성합니다. 이 명령어는 kubeadm join 명령어를 사용하여 워커 노드를 클러스터에 추가할 때 사용됩니다. - 토큰 조회
kubeadm token list
kubeadm token list 명령어를 사용하여 현재 사용 가능한 토큰 목록을 조회합니다. - 토큰 삭제
kubeadm token delete [토큰]
kubeadm token delete 명령어를 사용하여 특정 토큰을 삭제합니다.
- 토큰 생성
- 옵션
- create: 새로운 토큰을 생성합니다.
예시: kubeadm token create --ttl 24h --print-join-command
(24시간 동안 유효한 토큰을 생성하고, kubeadm join 명령어를 출력합니다.) - delete: 토큰을 삭제합니다.
예시: kubeadm token delete abcdef.1234567890abcdef
(abcdef.1234567890abcdef 토큰을 삭제합니다.) - list: 사용 가능한 토큰 목록을 조회합니다.
예시: kubeadm token list
(사용 가능한 토큰 목록을 조회합니다.)
- create: 새로운 토큰을 생성합니다.
kubeadm join
kubeadm join 명령어는 Kubernetes 클러스터에 새로운 워커 노드를 추가하는 명령어입니다. 이 명령어를 사용하여 워커 노드를 클러스터에 추가하려면, kubeadm init 명령어로 생성한 마스터 노드에서 생성된 토큰과 디스커버리 토큰 CA 인증서 해시를 사용하여 인증해야 합니다.
- 기본 구조
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인 워커 노드를 추가할 수 있습니다. - 옵션
- --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
(사전 검사를 건너뛰고 워커 노드를 추가합니다.)
- --token: 클러스터에 대한 액세스를 허용하는 토큰을 지정합니다.
kubeadm list
kubeadm list 명령어는 Kubernetes 클러스터의 상태를 확인하는 명령어입니다. 이 명령어를 사용하여, 현재 클러스터의 노드, 구성 요소 및 버전을 확인할 수 있습니다.
- 기본 구조
kubeadm list [component]
component는 확인하려는 구성 요소를 지정합니다. 지정하지 않으면, 모든 구성 요소를 확인합니다. 구성 요소는 다음과 같습니다.
- kube-apiserver
- kube-controller-manager
- kube-scheduler
- etcd
- kube-proxy
- kubelet
예: sudo kubeadm list kubelet 명령어를 실행하여 현재 클러스터의 모든 kubelet 구성 요소를 확인할 수 있습니다.
- 다음은 kubeadm list 명령어에서 자주 사용되는 옵션들입니다.
- --kubeconfig: kubeconfig 파일을 지정합니다.
예시: sudo kubeadm list --kubeconfig=/path/to/kubeconfig - --output: 출력 형식을 지정합니다.
예시: sudo kubeadm list --output=json
(JSON 형식으로 출력합니다.)
- --kubeconfig: kubeconfig 파일을 지정합니다.
kubeadm list --help 명령어를 통해 자세한 정보를 확인할 수 있습니다.kubeadm reset 명령어는 Kubernetes 클러스터에서 kubeadm init 명령어로 생성한 초기화 구성을 삭제하여 클러스터를 초기 상태로 되돌리는 명령어입니다. 이 명령어를 사용하면 클러스터의 모든 구성 요소와 설정이 삭제됩니다.
kubeadm reset
kubeadm reset 명령어는 Kubernetes 클러스터에서 현재 노드를 초기화하는 명령어입니다. 이 명령어를 사용하여, 노드에서 Kubernetes 클러스터를 제거하고, 모든 설정 파일과 데이터를 삭제할 수 있습니다.
- 기본적인 사용 방법은 다음과 같습니다.
kubeadm reset
이 명령어를 실행하면, 다음과 같은 작업이 수행됩니다.
- 모든 Kubernetes 구성 요소와 컨테이너를 제거합니다.
- 모든 네트워크 설정을 제거합니다.
- 모든 Kubernetes 설정 파일을 삭제합니다.
- 모든 데이터를 삭제합니다.
- 옵션들에 대해 알아보겠습니다.
- --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
(초기화 작업을 수행하지 않고, 초기화 작업을 출력합니다.)
- --cri-socket: CRI 소켓 경로를 지정합니다. 이 옵션을 사용하여 kubelet이나 kubeadm에 등록된 CRI 구현체의 소켓을 사용합니다.
드디어 쿠버네티스 명령어 시리즈가 마무리되었습니다. kubectl과 kubeadm은 둘 다 쿠버네티스에서 많이 사용된다고 합니다. 바로 이전에 설명했듯이 꼭 다 암기해야 하는 것은 아니고, 이런게 있구나 생각하시고 나중에 이런게 필요하다 할 때 찾아보시면 될 것 같습니다.
혹시나 이외에 더 알고 싶은 명령어나 옵션이 있다면 댓글 남겨주시면 조사해보도록 하겠습니다. 감사합니다.
'Container > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스에서 레이블(Label)이란? (0) | 2023.04.05 |
---|---|
[Kubernetes] kubectl로 yaml 파일 생성하기 (+ yaml 파일 구성) (0) | 2023.04.04 |
[Kubernetes] Kubernetes 명령어 모음 [6] 접속, 보안 (0) | 2023.04.02 |
[Kubernetes] Kubectl 명령어 모음 [5] 배포 (0) | 2023.04.02 |
[Kubernetes] Kubectl 명령어 모음 [4] 확인 Part.2 (0) | 2023.04.02 |