구름 국비지원에서 줬던 AWS 아이디가 있는데
이거 한달에 20인줄알고 펑펑쓰다가
계정 짤려가지고 내 아이디로 kubernetes 환경을 재설치해봤다
처음엔 다중클러스터로 구성하려고했는데 왠지 모르겠는데 안되가지고 그냥 단일 클러스터로 구성했다
- docker 설치
필요 패키지 설치
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
Docker GPG key 추가
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
리포지토리 설정
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker 엔진 설치
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
docker 설치 확인
sudo docker version
Docker daemon 설정
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 --now docker
- CRI container runtime 설치
cri-docker 패키지 다운로드
https://github.com/Mirantis/cri-dockerd/releases/tag/v0.2.6
cri-docker 패키지 설치
sudo apt install ./<해당버전>.deb
cri-docker 패키지 설치 후
sudo systemctl enable cri-docker.service
sudo systemctl enable --now cri-docker.socket
- kubernetes 설치
swap 해제
sudo swapoff -a && sudo sed -i '/swap/s/^/#/' /etc/fstab
관련 패키지 설치
sudo apt-get upgrade -y
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
kubernetes 패키지 설치
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
kubernetes 패키지 daemon 설정
sudo apt-mark hold kubelet kubeadm kubectl
sudo systemctl daemon-reload
sudo systemctl restart kubelet
kubernetes 패키지 설치 확인
kubeadm version
kubelet --version
kubectl version
여기까지 한 후에 ami 따서 worker node 만들었음
- kubernetes cluster 구성
cluster 구성
sudo kubeadm init --cri-socket "unix:///var/run/cri-dockerd.sock"
cluster 구성 후 관리자(root)와 일반 사용자에 설정
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
CNI 구성 - weavenet
kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
- Worker node Cluster 추가
cluster에 worker node 추가
sudo kubeadm join <IP>:6443 --token <TOKEN> \
--discovery-token-ca-cert-hash <SHA256> --cri-socket "unix:///var/run/cri-dockerd.sock"
위에 init 하면 join 명령이 있는데 뒤에다가 --cri-socket 설정 해줘야 됨
저거 추가 안해서 왜안되는지 한참 찾았었음
- error
[ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
[ERROR Port-10250]: Port 10250 is in use
[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
이렇게 에러가 나와서 찾아보니까 kubeadm reset 한 후에 다시 join 하라고 했는데 안됨;;
그래서 직접 저기있는 kubelet.conf , ca.crt 파일 지우고 root 랑 ubuntu 유저에서 각각 kubeadm reset 해줬더니 join 됬다.
'Kubernetes' 카테고리의 다른 글
스토리지로 퍼시스턴트볼륨(PersistentVolume)을 사용하도록 파드 설정하기 (0) | 2023.06.29 |
---|---|
시크릿을 환경 변수 형태로 사용하기 (0) | 2023.06.15 |
kubectl 을 사용해 시크릿 생성 (0) | 2023.06.15 |
k9s (0) | 2023.06.08 |
kube-bench (0) | 2023.05.18 |