안녕하세요 Y입니다.
테스트를 위해 제 로컬 vmware에 Kubernetes 환경을 구성했습니다.
구성은 Master node 1대와 Worker node 3대로 총 4대의 vmware 가상 머신을 이용해서 만들어봤습니다.
0. 사전 정보
가상화: vmware workstation 10
OS: CentOS Linux release 7.8.2003 (Core)
Hostname & IP:
kubemaster: 192.168.139.80
kubenode1: 192.168.139.81
kubenode2: 192.168.139.82
kubenode3: 192.168.139.83
1. 사전 세팅 (Master-Node 4대 모두 진행)
1) Master-Node 간 UUID 중복 확인 (UUID가 같으면 안 됨)
cat /sys/class/dmi/id/product_uuid
2) swap off
swapoff -a
3) vi /etc/fstab
swap 부분 주석 처리#
4) selinux disabled 처리
sestatus
vi /etc/selinux/config
disabled 설정
5) k8s network bride 설정
vi /etc/sysctl.d/k8s.conf (create)
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
6) host 등록
vi /etc/hosts
192.168.139.80 kubemaster
192.168.139.81 kubenode1
192.168.139.82 kubenode2
192.168.139.83 kubenode3
7) 필수 패키지 설치
yum install yum-utils device-mapper-persistent-data lvm2
8) Docker 설치
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce
systemctl enable docker
9) Kubernetes 설치
vi /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
yum install kubelet kubeadm kubectl --disableexclude=kubernetes
10) kubelet 자동 시작 등록 및 서버 재부팅
systemctl enable --now kubelet
reboot
2. Master 구성 진행
1) 초기화
kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.139.80
2) 토큰 확인
kubeadm join 192.168.139.80:6443 --token 47u4kw.7jwz77lk3gvqqj8j \
--discovery-token-ca-cert-hash sha256:cf0773ab4da065712f17207a64430cf4809e538f73c15965addec74117fb6465
kubectl token list
kubectl token craate
3) 환경 변수 세팅
export KUBECONFIG=/etc/kubernetes/admin.conf
or
. bash_profile에 등록
4) Network Add on 설치 (flannel)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
5) Master Node 확인
kubectl get pod -n kube-system
결과
coredns-74ff55c5b-8jnng 1/1 Running 0 4h40m
coredns-74ff55c5b-smds4 1/1 Running 0 4h40m
etcd-kubemaster 1/1 Running 0 4h40m
kube-apiserver-kubemaster 1/1 Running 0 4h40m
kube-controller-manager-kubemaster 1/1 Running 0 4h40m
kube-flannel-ds-cwqvz 1/1 Running 0 2m3s
kube-proxy-mxp2l 1/1 Running 0 4h40m
kube-scheduler-kubemaster 1/1 Running 0 4h40m
3. Worker 진행
1) Cluster Join
kubeadm join 192.168.139.80:6443 --token 47u4kw.7jwz77lk3gvqqj8j \
--discovery-token-ca-cert-hash sha256:cf0773ab4da065712f17207a64430cf4809e538f73c15965addec74117fb6465
3) Master에서 Cluster Join 확인
kubectl get node
결과
kubemaster Ready control-plane,master 4h58m v1.20.4
kubenode1 Ready <none> 14m v1.20.4
kubenode2 Ready <none> 14m v1.20.4
kubenode3 Ready <none> 14m v1.20.4
다음에는 Kube 환경을 이용하여 애플리케이션을 배포하고 사용해보는 포스팅으로 찾아뵙겠습니다.
감사합니다. :)
'DEVOPS' 카테고리의 다른 글
[Terraform] 테라폼 레이아웃 나누는 전략 4가지 (0) | 2022.04.30 |
---|