![[K8S] Windows에 kubectl을 설치해 Control Plane에 접속하지 않고 클러스터 작업](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIkEhB%2FbtsGeQcy0nh%2F1qXXRoe3zDGs5hLAEBU4O1%2Fimg.png)
* 굳이 Windows에 kubectl을 설치하는 이유
- kubectl을 통해 Control Plane에서 클러스터 구성한 Node들을 관리하게 된다.
- 이때, 이 Control Plane에 직접 접속해 kubectl을 설치하고 작업하는 것보다 클라이언트(나의 경우에는 윈도우)에 설치하고 Control Plane을 통해 Node들을 관리하는 것이 바람직하다! (Bastion Host와 목적은 얼핏 비슷해 보이지만, 좀 다르다)
- Contorl Plane에 직접 접속하지 않고 외부 클라이언트 원격지에서 kubectl 명령줄 작업만 하는 것이다.
* kubectl이란?
- Kubernetes 클러스터를 관리하기 위한 명령줄 도구(Command Line Tool)
- kubectl을 사용하면 클러스터에 있는 리소스를 관리하고, 애플리케이션을 배포하며, 클러스터의 상태를 확인할 수 있음
- 이를 control plane에 직접 ssh 원격 접속해서 할 수 있지만, 보안 상 클라이언트(윈도우)에서 kubectl 명령줄 인터페이스(CLI)만 설치
이제 윈도우에 kubectl을 다운 받아 내가 구성한 클러스터를 관리할 것이다.
Windows에 kubectl 설치 후 원격지에서 Control Plane의 역할로 작업하기
1. kubectl 다운받기
https://dl.k8s.io/release/v1.25.0/bin/windows/amd64/kubectl.exe
링크를 클릭하면 바로 kubectl.exe 파일이 다운받아진다.
2. 파일 이동하기
기본 다운로드 폴더에 다운 받아진다. 이를 C드라이브의 Windows\System32 폴더로 이동시킨다.
move c:\users\[계정명]\Donwloads\kubectl.exe c:\Windows\System32\
3. 디렉터리 생성
VMware로 구성했을 때 Control Plane에서도 .kube 디렉터리가 생성되어 kubectl 작업을 했었다. 이와 동일한 역할을 하는 폴더를 직접 생성해야 한다.
mkdir C:\Users\[계정명]\.kube
4. 구성파일 복사하기
실제로 구성했던 리눅스의 Control Plane에서 config 파일을 윈도우로 가져와야 한다.
scp 명령을 이용해 Control Plane에 원격접속해 파일을 이동시킨다.
[리눅스 control plane]
~/.kube/config
[윈도우 클라이언트 PowerShell]
scp root@[마스터서버 ip]:/root/.kube/config C:\Users\[계정명]\.kube
5. 파일 확인하기
작업 후에는 항상 확인해줘야 한다. (이건 내 바람직한(?) 버릇)
파일탐색기에서도 동일하게 확인할 수 있다.
6. kubectl 작업 해보기
Control Plane의 구성파일인 config 파일을 그대로 가져왔기 때문에 동일한 작업이 가능하다.
kubectl get nodes
이때, 주의할 점은 Control Plane의 config 파일을 scp로 가져와야 하기 때문에 Control Plane에 원격접속이 가능해야 한다는 것이다. 나는 VMware를 통한 실습환경이라 VMnet8을 통해 통신이 가능하다.
scp말고 다른 안전한 방법으로 config 파일을 가져온다면 그 또한 가능할 것 같다.
'DevOps > Kubernetes' 카테고리의 다른 글
[K8S] 쿠버네티스 클러스터 구성 (3) | 2024.03.26 |
---|---|
[K8S] 쿠버네티스 설치(3)_kubelet, kubeadm, kubectl 설치 (0) | 2024.03.26 |
[K8S] 쿠버네티스 설치(2)_도커 설치 (0) | 2024.03.26 |
[K8S] 쿠버네티스 설치(1)_VMware 노드 구성 (0) | 2024.03.25 |
개인 공부 목적으로 사용하는 블로그입니다 :)
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!