집에 놀고 있는 리눅스 머신에 K8S를 설치 해보자
apt
package index and install packages needed to use the Kubernetes apt
repository:$ sudo apt 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
apt
repository:$ 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
apt
package index, install kubelet, kubeadm and kubectl$ sudo apt-get update $ sudo apt-get install -y kubelet kubeadm kubectl
$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.19.215.160
위 명령어 실행 후, 일정 시간이 지나면 다음과 같은 문구를 볼 수 있다.
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a Pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
/docs/concepts/cluster-administration/addons/
You can now join any number of machines by running the following on each node
as root:
kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
$ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
각 노드에서 위 과정을 통해 K8S 구동에 필요한 요소를 먼저 설치하자 hash값은 마스터 노드에서
kube init
을 실행하고 난 뒤, 안내 문구에서 확인할 수 있다.
kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
$ curl https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml -o dashboard.yaml
dashboard.yaml
수정$ vi dashboard.yaml 수정 # 162번째 줄: name: kubernetes-dashbord -> name: cluster-admin # 200번째 줄: --enable-skip-login 추가
$ kubectl apply -f dashboard.yaml
$ kubectl -n kubernetes-dashboard edit service kubernetes-dashboard #NodePort로 수정 $ kubectl -n kubernetes-dashboard get service kubernetes-dashboard #포트 확인
$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml