728x90
반응형
kind(Kubernetes IN Docker)
도커 컨테이너 이미지를 이용해 노드를 생성하고 쿠버네티스 클러스터를 구성해 주는 도구
윈도우 버전 확인
시작 메뉴에서 winver 명령을 입력해 윈도우의 버전을 확인합니다. OS 빌드가 18362 이하인 경우 OS 업그레이드를 먼저 실행합니다.
WSL 설치
Windows 10 버전 2004 이상(빌드 19041 이상) 또는 Windows 11인 경우 자동 설치 방법으로, 그 이하인 경우 수동 설치 방법으로 WSL을 설치합니다.
자동 설치 방법 : https://learn.microsoft.com/ko-kr/windows/wsl/install
수동 설치 방법 : https://learn.microsoft.com/ko-kr/windows/wsl/install-manual
우분투 설치
Microsoft Store(https://aka.ms/wslstore)에 접속해 우분투를 설치합니다.
사용자 이름과 패스워드 설정
우분투 실행 후 사용자 이름과 패스워드를 설정합니다.
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: ubuntu ⇐ 사용자 이름과 패스워드를 설정
New password: ubuntu
Retype new password: ubuntu
passwd: password updated successfully
Installation successful!
이제 Linux용 Windows 하위 시스템을 Microsoft Store에서 사용할 수 있습니다.
'wsl.exe --update'를 실행하거나 https://aka.ms/wslstorepage를 방문하여 업그레이드할 수 있습니다.
Microsoft Store의 WSL을 설치하면 최신 WSL 업데이트가 더 빠르게 제공됩니다.
자세한 내용은 https://aka.ms/wslstoreinfo를 방문하세요.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This message is shown once a day. To disable it please create the
/home/ubuntu/.hushlogin file.
ubuntu@DESKTOP-F4BC13L:~$
컴퓨터 이름을 k8s로 변경
root@DESKTOP-F4BC13L:~# vi /etc/hosts
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false
127.0.0.1 localhost
### 추가 --------------------------------------------
127.0.0.1 k8s.localdomain k8s
### 추가 --------------------------------------------
127.0.1.1 DESKTOP-F4BC13L.localdomain DESKTOP-F4BC13L
192.168.0.2 host.docker.internal
192.168.0.2 gateway.docker.internal
127.0.0.1 kubernetes.docker.internal
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
root@DESKTOP-F4BC13L:~# hostname k8s
root@DESKTOP-F4BC13L:~# exit
ubuntu@k8s:~$ exit
우분투 재시작 후 우분투 패키지 업데이트
시작 메뉴에서 우분트를 시작
ubuntu@k8s:~$ sudo su -
[sudo] password for ubuntu: ubuntu
root@k8s:~# apt-get update && apt-get upgrade
root@k8s:~# exit
logout
ubuntu@k8s:~$ exit
도커 데스크탑 실행 및 WSL 통합
우분투 재시작 후 도커 설치 확인
ubuntu@k8s:~$ sudo su
root@k8s:/home/ubuntu# docker version
Client: Docker Engine - Community
Cloud integration: v1.0.31
Version: 20.10.23
API version: 1.41
Go version: go1.18.10
Git commit: 7155243
Built: Thu Jan 19 17:34:13 2023
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Desktop
Engine:
Version: 20.10.23
API version: 1.41 (minimum version 1.12)
Go version: go1.18.10
Git commit: 6051f14
Built: Thu Jan 19 17:32:04 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.18
GitCommit: 2456e983eb9e37e47538f59ea18f2043c9a73640
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
root@k8s:/home/ubuntu# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
kind를 이용한 쿠버네티스 설치
kind를 다운로드하고 실행 권한을 부여합니다.
root@k8s:/home/ubuntu# curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/v0.10.0/kind-linux-amd64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 7277k 100 7277k 0 0 6010k 0 0:00:01 0:00:01 --:--:-- 43.5M
root@k8s:/home/ubuntu# chmod +x ./kind
root@k8s:/home/ubuntu# mv ./kind /usr/local/bin/
쿠버네티스 클러스터를 생성합니다.
root@k8s:/home/ubuntu# kind create cluster --name kubernetes
Creating cluster "kubernetes" ...
✓ Ensuring node image (kindest/node:v1.20.2) 🖼
✓ Preparing nodes 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
Set kubectl context to "kind-kubernetes"
You can now use your cluster with:
kubectl cluster-info --context kind-kubernetes
Not sure what to do next? 😅 Check out https://kind.sigs.k8s.io/docs/user/quick-start/
쿠버네티스 구성 정보를 확인합니다. 별다른 설정을 사용하지 않았기 때문에 노드가 하나만 생성된 것을 확인할 수 있습니다.
### 클러스터 정보 확인
root@k8s:/home/ubuntu# kubectl cluster-info
Kubernetes control plane is running at https://127.0.0.1:37679
KubeDNS is running at https://127.0.0.1:37679/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
### 클러스터 상세 정보 확인
root@k8s:/home/ubuntu# kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://127.0.0.1:37679
name: kind-kubernetes
contexts:
- context:
cluster: kind-kubernetes
user: kind-kubernetes
name: kind-kubernetes
current-context: kind-kubernetes
kind: Config
preferences: {}
users:
- name: kind-kubernetes
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
### 노드 확인
root@k8s:/home/ubuntu# kubectl get node
NAME STATUS ROLES AGE VERSION
kubernetes-control-plane Ready control-plane,master 54m v1.20.2
클러스터를 삭제합니다.
root@k8s:/home/ubuntu# kind delete cluster --name kubernetes
Deleting cluster "kubernetes" ...
한 개의 마스터 노드와 두 개의 워커 노드로 구성된 클러스터를 생성합니다.
### 설정 파일 생성
root@k8s:/home/ubuntu# vi kind-3nodes.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
### 설정 파일을 이용한 클러스터 생성
root@k8s:/home/ubuntu# kind create cluster --name kubernetes --config ./kind-3nodes.yaml
Creating cluster "kubernetes" ...
✓ Ensuring node image (kindest/node:v1.20.2) 🖼
✓ Preparing nodes 📦 📦 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
✓ Joining worker nodes 🚜
Set kubectl context to "kind-kubernetes"
You can now use your cluster with:
kubectl cluster-info --context kind-kubernetes
Thanks for using kind! 😊
### 노드 정보 조회
root@k8s:/home/ubuntu# kubectl get nodes
NAME STATUS ROLES AGE VERSION
kubernetes-control-plane Ready control-plane,master 94s v1.20.2
kubernetes-worker Ready <none> 58s v1.20.2
kubernetes-worker2 Ready <none> 70s v1.20.2
### 도커 컨테이너 조회
root@k8s:/home/ubuntu# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e568fe5a8cc kindest/node:v1.20.2 "/usr/local/bin/entr…" 2 minutes ago Up 2 minutes kubernetes-worker2
ca91cc70484b kindest/node:v1.20.2 "/usr/local/bin/entr…" 2 minutes ago Up 2 minutes 127.0.0.1:44461->6443/tcp kubernetes-control-plane
6fd71e10323b kindest/node:v1.20.2 "/usr/local/bin/entr…" 2 minutes ago Up 2 minutes kubernetes-worker
kubectl 명령으로 클러스터를 조작할 수 있습니다.
728x90
반응형
'컨테이너 > 쿠버네티스' 카테고리의 다른 글
레플리카셋의 동작 원리 (0) | 2022.01.28 |
---|---|
사이드카 패턴 예 (0) | 2022.01.28 |
Kubespray를 활용한 멀티 노드 쿠버네티스 클러스터 구성 (0) | 2022.01.27 |
04 레플리카셋(Replica Set) (0) | 2020.09.21 |
o3 포드(pod) (0) | 2020.09.18 |
댓글