Virtual machine에 Kubernetes 설치

또리·2022년 7월 22일
0

Cloud

목록 보기
1/2

사전 준비

  1. Virtual Box
  2. CentOS 7.2
  3. Docker

Window OS이기 때문에 Unix 환경 사용을 위해 Virtual Box를 설치하고 CentOS 7버전을 설치하였다. Kubernetes 설치 전에 Docker가 설치되어야 한다.

설치 방법

0. SELINUX 비활성화

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

1. SWAP 비활성화

swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

2. 방화벽 비활성화

systemctl disable firewalld
systemctl stop firewalld

3. IPtables 커널 설정

cat <<EOF>> /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF>> /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

4. hosts 설정

hostnamectl set-hostname k8s-master

cat <<EOF>> /etc/hosts
192.168.56.191 k8s-master
192.168.56.192 k8s-worker1
192.168.56.193 k8s-worker2
EOF

5. Yum Repository 등록

cat <<EOF>> /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

6. Package Update

yum update -y

7. Docker Daemon.json 추가

cat <<EOF>> /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

systemctl daemon-reload
systemctl restart docker

8. Yum으로 쿠버네티스 설치

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable kubelet
systemctl start kubelet

9. 쿠버네티스 버전 확인

kubeadm version -o short
kubectl version --short
kubelet --version

10. 쿠버네티스 자동 완성 추가

yum install bash-completion
source /usr/share/bash-completion/bash_completion
echo 'source <(kubectl completion bash)' >>~/.bashrc
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null

마스터 노드 설치 방법

1. kubeadm 초기화

kubeadm init

kubeadm 시 출력되는 token 값과 hash 코드를 따로 저장해둔다.

2. kubeadm init 시 Error 발생하면?

rm /etc/containerd/config.toml
systemctl restart containerd
kubeadm init

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3. Weave 네트워크 설치

kubectl get nodes
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
kubectl get nodes

워커 노드 설치 방법

1. 마스터 노드와 조인

kubeadm join 10.10.1.249:6443 --token ajztkz.2t71q6ib0m1qthkr \
   --discovery-token-ca-cert-hash sha256:524b4f584f023d04c52cbbee0fd01a17cc6c80378ea35557b978eb9ac1c3b1d3

2. 조인 확인 방법

마스터 노드로 돌아와 아래 명령어를 입력한다.

kubectl get nodes

기타 명령어

kubectl api-resources :
kubectl get pods
kubectl get nodes
kubectl get nodes -o wide
kubectl describe node k8s-master
kubectl get pod --all-namespaces
kubectl run webserver --image=nginx:1.14 --port 80
kubectl get pods
kubectl describe pod webserver
kubectl create deployment mainui --image=httpd --replicas=3
kubectl get deployments.apps
kubectl get nodes -o yaml
kubectl exec webserver -it -- /bin/bash
kubectl describe replicaset scdf-server-6647b6c8fd
kubectl exec pod/mysql-85bc7c955b-mspxx -it -- /bin/bash
profile
공인중개사를 공부하는 금융 개발자

0개의 댓글