쿠버네티스 우분투에 설치
- 다음 내용을 kube_install.sh 파일에 작성하고 chmod로 권한을 주고 실행
- 쿠버네티스 설치 사이트에서 스크립트를 가져옴
- https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
Installing kubeadm
This page shows how to install the kubeadm toolbox. For information on how to create a cluster with kubeadm once you have performed this installation process, see the Using kubeadm to Create a Cluster page. Before you begin A compatible Linux host. The Kub
kubernetes.io
kubernetes를 관리하는 명령어
- kubeadm: 클러스터를 부트스트랩 하는 명령
- kubelet: 클러스터의 모든 시스템에서 실행되는 구성 요소로, 창 및 컨테이너 시작과 같은 작업을 수행
- kubectl: 커맨드 라인 util은 당신의 클러스터와 대화
Master 노드 초기화 (마스터 노드에서만 할 것!)
- Master 노드를 초기화를 가장 먼저 수행 (사용할 파드 네트워크 대역을 설정)
- sudo kubeadm init
- 스왑 에러 발생 시 스왑 기능 제거
- sudo swapoff -a // 현재 커널에서 스왑 기능 끄기
- sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab // 리붓 후에도 스왑 기능 유지
- Kubernetes에서 스왑을 비활성화하는 이유
- Kubernetes 1.8 이후, 노드에서 스왑을 비활성화해야 함(또는 --fail-swap-on을 false로 설정)
- kubernetes의 아이디어는 인스턴스를 최대한 100%에 가깝게 성능을 발휘하는 것
- 모든 배포는 CPU/메모리 제한을 고정하는 것이 필요
- 따라서 스케줄러가 파드를 머신에 보내면 스왑을 사용하지 않는 것이 필요
- 스왑 발생시 속도가 느려지는 이슈 발생
- 성능을 위한 것
클러스터를 사용 초기 세팅(마스터 노드에서만 할 것!)
다음을 일반 사용자 계정으로 실행 (콘솔에 출력된 메시지를 복붙) : kubectl 명령어 사용 가능
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Pod Network 추가
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
이것을 잘해야 노드 추가 명령어가 잘 실행됩니다!
워커 노드 추가 (워커 노드에서만 할 것!)
- 앞서 설치한 대로 쿠버네티스 설치
- init 명령어 전까지만 수행(init 명령어 실행하지 마세요)
- 이후 각 노드에서 관리자 권한으로 워커 노드를 참가 시킴 (콘솔에 출력된 메시지를 복붙)
sudo kubeadm join 10.0.2.15:6443 --token xwvbff.5xc67j8qc6ohl2it \
--discovery-token-ca-cert-hash sha256:e19e9263aeb2340a602c2057966b71551e01a5e287d3f23b05073c7b248932e1
연결된 노드들의 상태 확인
kubectl get nodes
- STATUS 값이 NotReady 상태인 경우, Pod Network가 아직 deploy 되기 전일 수 있음
- 장시간 기다려도 변경되지 않으면 앞에서 설정한 “Pod Network 추가” 과정이 잘못됐을 수 있음
클러스터 구성도

실습하기
1. VMware workstation 다운로드
https://www.vmware.com/kr/products/workstation-pro/workstation-pro-evaluation.html
2. 고정 IP 변경(netplan)
2-1. sudo vim /etc/netplan/00-installer-config.yaml로 파일 열기
2-2. 설정 변경

2-3 addresses 는 할당된 VMware의 IP주소의 뒷자리 변경
window의 cmd 창을 열어 ipconfig 검색 후 할당된 VM 주소의 address로 적용

gateway 같은 경우 VMworkstation 접속 후, Edit -> VirtualNetworkEditor 접속 후,

Nat settings -> gatewayIp 확인 후 적용

2-4 sudo netplan apply로 적용
2-5 shutdown -h now , ssh 접속
ID : user01
PW : test1234
로 접속
3. docker 설치
sudo -i #root 접근
apt update & apt install docker.io -y #도커 설치
4. Kubeadm 설치하기
4-1. 구글에 kubenetes install 검색 후 해당 페이지 접속
https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
kubeadm 설치하기
이 페이지에서는 kubeadm 툴박스 설치 방법을 보여준다. 이 설치 프로세스를 수행한 후 kubeadm으로 클러스터를 만드는 방법에 대한 자세한 내용은 kubeadm을 사용하여 클러스터 생성하기 페이지를 참
kubernetes.io
4-2. 런타임 설치의 명령어 shell에 작성
데비안 기반 베포판의 순서대로 복사 하여 저장

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
4-3 shell 작성 후 실행(문제 발생시 curl 문제가 큼으로, apt install curl 명령어 실행)
vim kube_install.sh
#붙혀넣기
bash kube_install.sh #작성한 셸 실행
5. swap 을 비활성화

5-1. 구글에 ubuntu swap disable 검색
https://askubuntu.com/questions/214805/how-do-i-disable-swap
How do I disable swap?
I have some sensitive data in RAM that I prefer not to be on disk. How do I disable swap? I have more than enough RAM. If RAM consumption gets too high I have no problems with processes being term...
askubuntu.com
5-2 명령어 실행
sudo swapoff -a #일시적인 swap 기능 정지, reboot시 swap이 다시 동작
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab #reboot시에도 swap 동작 X
6. kubenetes 1.2 이상 버전부터 쿠버네티스에서 사용하는 컨테이너의 그룹명과 도커의 그룹명이 일치하지 않아 발생하는 문제 해결
6-1. 구글에 docker cgroup name change 검색
https://stackoverflow.com/questions/43794169/docker-change-cgroup-driver-to-systemd
docker change cgroup driver to systemd
I want Docker to start with systemd cgroup driver. For some reason it is using only cgroupfs on my CentOS 7 server. Here is startup config file. # systemctl cat docker # /usr/lib/systemd/system/doc...
stackoverflow.com
6-2. 명령어 실행
docker info | grep -i group #cgroupfs 로 설정이 되어 있고, 이걸 systemd로 변경하여 쿠버네티스와 맞춰야한다.
vim /etc/docker/daemon.json
######## 붙여넣기######
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
########################
service docker restart #도커 재실행
docker info | grep -i group #systemd로 변경된 것을 확인하면 된다.'데브옵스(DevOps)를 위한 쿠버네티스 마스터 > 쿠버네티스 들어가기' 카테고리의 다른 글
| 클러스터 구성 및 쿠버네티스 테스트 (0) | 2022.06.06 |
|---|---|
| master 노드와 work 노드 생성 (0) | 2022.06.06 |
| 구글 클라우드 플랫폼에서 쿠버네티스 시작하기 (0) | 2022.06.03 |
| 쿠버네티스 아키텍처 (0) | 2022.06.02 |
| 쿠버네티스 소개 (0) | 2022.06.02 |