먼저, docker를 먼저 설치하고, k8s 설치 바람.
쿠버네티스 버전 1.24.0 이전이면, 도커와 쿠버네티스가 연동되는 dockershim이 있었지만, 1.24.0 버전 이후에는 따로 설정을 해줘야 함.
docker를 설치한 후,
#/etc/docker 디렉토리 없을 경우 생성
sudo mkdir /etc/docker
#daemon.json 파일 추가
sudo 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
#containerd 구성 파일 생성
sudo mkdir -p /etc/containerd
#containerd 기본 설정값으로 config.toml 생성
sudo containerd config default | sudo tee /etc/containerd/config.toml
#config.toml 파일 수정
vi /etc/containerd/config.toml
# cgroup driver(runc) 사용하기 설정
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
#수정사항 적용 및 재실행
sudo systemctl restart containerd
#도커 재시작
sudo service docker restart
#도커 상태 조회
sudo service docker status
1) Swap disabled
swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab
2) Letting iptables see bridged traffic
# cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# sysctl --system
3) Disable firewall
# systemctl stop firewalld
# systemctl disable firewalld
4) Set SELinux in permissive mode (effectively disabling it)
# setenforce 0
# sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
5) kubeadm, kubelet, kubectl 설치.
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF
6) install.
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
kubeadm init
여기서 error동작 없으면, 정상임.
1) Update the apt package index and install packages needed to use the Kubernetes apt repository
# sudo apt-get update
# apt-transport-https may be a dummy package; if so, you can skip that package
# sudo apt-get install -y apt-transport-https ca-certificates curl
2) Download the public signing key for the Kubernetes package repositories. The same signing key is used for all repositories so you can disregard the version in the URL:
# curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.27/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
3) Add the appropriate Kubernetes apt repository. Please note that this repository have packages only for Kubernetes 1.27; for other Kubernetes minor versions, you need to change the Kubernetes minor version in the URL to match your desired minor version (you should also check that you are reading the documentation for the version of Kubernetes that you plan to install).
# echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.27/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
4) Update the apt package index, install kubelet, kubeadm and kubectl, and pin their version:
# sudo apt-get update
# sudo apt-get install -y kubelet kubeadm kubectl
# sudo apt-mark hold kubelet kubeadm kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
입력 후, kubectl get nodes
실행해보면,
이렇게 나오면 정상.
관리자 계정으로 실행하려면,
$ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config