우분투에 쿠버네티스 설치

1단계: 도커 설치
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

2단계: containerd에 CRI가 비활성화되어 있지 않은지 확인

파일/etc/containerd/config.toml을 편집하고 disabled_plugins 설정이 비어 있는지 확인합니다.
nano /etc/containerd/config.toml

그런 다음 containerd 서비스를 다시 시작합니다.
service containerd restart

3단계: 쿠버네티스 설치

Ubuntu 저장소에서 apt-transport-httpshttp 작업을 가능하게 하는 https 패키지를 설치하여 시작합니다. 또한 다음 단계에 필요하므로 curl를 설치합니다. 다음 명령을 실행합니다.
sudo apt install apt-transport-https curl

그런 다음 다음 명령을 실행하여 Kubernetes 서명 키를 두 노드에 추가합니다.
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" >> ~/kubernetes.list
sudo mv ~/kubernetes.list /etc/apt/sources.list.d
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

그런 다음 노드를 업데이트합니다.
sudo apt update

업데이트가 완료되면 Kubernetes를 설치합니다. 여기에는 Kubernetes를 구성하는 다양한 도구(kubeadm, kubelet, kubectl, kubernetes-cni) 설치가 포함됩니다.
sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni

4단계: 스왑 메모리 비활성화

Kubernetes는 스왑 메모리를 사용하는 시스템에서 작동하지 않습니다. 따라서 마스터 노드와 모든 작업자 노드에서 비활성화해야 합니다. 다음 명령을 실행하여 스왑 메모리를 비활성화합니다.
sudo swapoff -a

5단계: 고유한 호스트 이름 설정

쉽게 식별할 수 있도록 노드에 고유한 호스트 이름이 있어야 합니다. 노드가 많은 클러스터를 배포하는 경우 node-1, node-2 등과 같은 작업자 노드의 이름을 식별하도록 설정할 수 있습니다. 앞에서 언급했듯이 노드 이름을 kubernetes-master 및 kubernetes로 지정했습니다. -노동자. 서버를 만들 때 설정했습니다. 그러나 명령줄에서 아직 수행하지 않은 경우 조정하거나 설정할 수 있습니다. 마스터 노드에서 호스트 이름을 조정하려면 다음 명령을 실행합니다.
sudo hostnamectl set-hostname kubernetes-master

6단계: Docker Cgroup 드라이버 변경

마스터 노드와 작업자 노드 모두에서 다음 명령을 사용하여 cgroupdriver를 업데이트합니다.
sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{ "exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts":
{ "max-size": "100m" },
"storage-driver": "overlay2"
}
EOF

그런 다음 다음 명령어를 실행하여 시스템 부팅 시 Docker를 다시 시작하고 사용 설정합니다.
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker

7단계: Kubernetes 마스터 노드 초기화

Kubernetes 클러스터 배포의 첫 번째 단계는 마스터 노드를 시작하는 것입니다. 마스터 노드의 터미널에서 다음 명령어를 실행하여 kubernetes-master를 초기화합니다.
kubeadm init --pod-network-cidr=10.244.0.0/16 --control-plane-endpoint <EXTERNAL-IP>

출력에서 Kubernetes는 클러스터 사용을 시작하기 전에 마스터 노드에서 일반 사용자로 실행해야 하는 몇 가지 추가 명령도 표시합니다. 다음 명령을 실행해 보겠습니다.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

이제 마스터 노드를 초기화했습니다. 그러나 작업자 노드에 가입하기 전에 마스터 노드에 포드 네트워크도 설정해야 합니다.

8단계: 포드 네트워크 배포

포드 네트워크는 서버 간의 통신을 용이하게 하며 Kubernetes 클러스터의 적절한 기능에 필요합니다. 공식 문서에서 Kubernetes Cluster Networking에 대해 자세히 알아볼 수 있습니다. 이 튜토리얼에서는 Flannel 포드 네트워크를 사용할 것입니다. Flannel은 Kubernetes 요구 사항을 충족하는 간단한 오버레이 네트워크입니다.
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml

9단계: 작업자 노드를 Kubernetes 클러스터에 조인

먼저 별도의 터미널 세션에서 작업자 노드에 로그인합니다. 7단계에서 마스터 노드를 초기화할 때 터미널에 표시된 kubeadm 조인 명령을 사용하고 거기에 표시된 명령을 실행하면 다음과 같이 표시됩니다.
kubeadm join XXXX:6443 --token XXX \
    --discovery-token-ca-cert-hash sha256:XXXX

조인 프로세스가 완료되면 마스터 노드 터미널을 전환하고 다음 명령을 실행하여 작업자 노드가 클러스터에 조인되었는지 확인합니다.
kubectl get nodes

https://blog.facha.dev/install-kubernetes-on-ubuntu/에서 원래

좋은 웹페이지 즐겨찾기