-
클러스터 생성kubernetes 2023. 10. 25. 17:13
각 폴더 생성 후 붙여넣기 사용 이미지 : ubuntu20.04.7z /user01/test1234
master 192.168.2.10 [8.8.8.8/192.168.2.2]
work1 192.168.2.11
work2 192.168.2.12
apt update
apt net-tools
apt install -y curl
ssh 확인
win10에서 ssh 접속 확인 superputty
nano /etc/hosts
192.168.2.10 master
192.168.2.11 work1
192.168.2.12 work2https://www.puttygen.com/superputty#SuperPuTTY_download (설치 사이트)
master
work1
work2
winSCP 설치
각 서버 putty로 접속host를 이름으로 정해줘서 주소이름 으로 ping이 가능하다 kubeadm
https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
kubeadm 설치하기
이 페이지에서는 kubeadm 툴박스 설치 방법을 보여준다. 이 설치 프로세스를 수행한 후 kubeadm으로 클러스터를 만드는 방법에 대한 자세한 내용은 kubeadm으로 클러스터 생성하기 페이지를 참고한다.
kubernetes.io
모든 노드에서 실시
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
Swap을 비활성화하고, 시스템이 부팅될 때 Swap이 자동으로 사용되지 않도록 설정합니다. 이 작업은 주로 일시적으로 Swap을 사용하지 않아야 하는 상황에서 수행됩니다. Swap을 완전히 비활성화할 때는 주의해서 사용해야 합니다# Using Docker Repository
apt update
apt install -y ca-certificates curl gnupg lsb-release
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg (sudo apt update를 했는데 오류가 나와 재입력을 해줬다)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list# containerd 설치
sudo apt update
sudo apt install -y containerd.io
systemctl status containerdsudo sed -i 's/^disabled_plugins \=/\#disabled_plugins \=/g' /etc/containerd/config.toml
systemctl restart containerd
ls /var/run/containerd/containerd.socksudo mkdir /etc/apt/keyrings
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.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.listsudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl -> (만약 실패를 한다면 ubuntu 버전이 22.04 이전 환경일수있다 22.04 환경이라면
/etc/apt/keyrings 폴더 생성 후 update 부터 해보자)
kubuadm 버전 확인하기 => kubeadm versionkubernetes 1.22버전 부터 (필수 사항 아님)
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
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker모든 노드에 다음 명령으로 넷필터 브릿지 설정
sudo modprobe br_netfilter
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables( bridge/bridge-nf-call-iptables -> 파일이 없을수있다 아래의 명령을 입력하면 bridge가 생기고 초기화 명령어를 입력하면 된다
sudo modprobe br_netfilter
echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system마스터 노드 초기화 @@@
마스터 노드에서 init 작업을 시작한다. ---> kubeadm init
kubectl cluster-info -> 자신의 포드와 ip주소 확인 명령어
kubeadm join <master node ip:6443> --token <Token 값> --discovery-token-ca-cert-hash sha256:<Hash 값>### 유저 설정
다음 명령을 실행하면 .kube/config 파일이 설정되면서 사용이 가능해진다. 이 실습은 `마스터 노드`에서만 진행한다.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config### 워커 노드 조인하기
본인의 콘솔에 출력된 토큰과 hash 값을 사용해 조인을 수행해야 한다. 다음 명령은 `워커 노드`에서 실습을 진행한다.
work1 조인
work2 조인### 파드 네트워크 배포
`마스터 노드`에서 다음 명령을 실행하면 앞서 구성한 유저 설정을 통해 클러스터에 cilium을 설치한다.
https://kubernetes.io/docs/tasks/administer-cluster/network-policy-provider/cilium-network-policy/
curl -LO https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
rm cilium-linux-amd64.tar.gz
cilium install
cilium status >> kubectl get nodes
cilium status --wait
각 노드가 Ready로 변경트러블 슈팅
초기화 중 오류 port 중독 사용중
제거를 해준다join 실패 시 master node에서 다음과 같은 조치가 가능
1. apt -y remove kubeadm
apt -y install kubeadm
넷필터 재설치
2. rm /etc/containerd/config.toml
systemctl restart containerd
kubeadm init
3. rm -r $HOME/.kube
kubeadm init
mkdir -p $HOME/.kube'kubernetes' 카테고리의 다른 글
클러스터 tomcat 배포 (0) 2023.10.27 아파치, 워드프레스, mysql (0) 2023.10.26 Kubernetes (ingress) (0) 2023.10.24 kubernetes (0) 2023.10.24 kubernetes (0) 2023.10.23