본문 바로가기

컨테이너/Kubernetes

[쿠버네티스](7) kubeadm으로 k8s 구성 (1)

 

 

쿠버네티스는 일반적인 서버 클러스터 환경에서도 쿠버네티스를 쉽게 설치할 수 있는 kubeadm이라는 관리도구를

제공합니다.

kubeadm은 쿠버네티스 커뮤니티에서 권장하는 설치 방법 중 하나이기 때문에 쿠버네티스를 처음 시작하는 사람도 쉽게 쿠버네티스 클러스터를 설치할 수 있다는 장점이 있습니다. 

 

 

javacan.tistory.com/entry/k8s-install-in-centos7

 

 

1. 쿠버네티스 클러스터로 사용할 서버를 마스터 노드 1대, 워커노드 3대로 준비

kube-master1 172.15.0.158
kube-worker1 172.15.0.159
kube-worker2 172.15.0.160
kube-worker3 172.15.0.161

 

2. 쿠버네티스 저장소 추가

: 모든 노드에서 다음 명령어를 차례대로 입력해 쿠버네티스 저장소를 추가 합니다.

 

$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
$ cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF

 

 

3. 스왑 해제

 

swapoff -a

$ swapoff -a

 

 

4. 쿠버네티스 repostitory에 추가

 

 

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

exclude=kubelet kubeadm kubectl

EOF

 

 

 

5. kubelet 설치

sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet

 

 

6. kubeadm init

: 마스터 노드에서 다음과 같은 명령어로 클러스터를 초기화 합니다.

 

$ kubeadm init --apiserver-advertise-address 172.15.0.158 \
--pod-network-cidr=192.168.0.0/16

 

 

 

 

 

 

[에러처리]

 

 

1. 사용중 포트 찾기 / kill하기 

( kubeadm reset시 , 사용중인 포트를 지우고, /etc/kubernetes 파일을 삭제한다. )

 

# docker 초기화

$ docker rm -f `docker ps -aq`

$ docker volume rm `docker volume ls -q`

$ umount /var/lib/docker/volumes

$ rm -rf /var/lib/docker/

 

$ systemctl restart docker 

 

# k8s 초기화

$ kubeadm reset

$ systemctl restart kublet

 

# iptables에 있는 데이터를 청소하기 위해

$ reboot 

 

 

$ netstat -lnp | grep 1025
$ kill xxxx

 

 

 

 

2. 인증서 불일치 :

 

Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes") 

 

 

# $HOME/.kube/config 파일에 유효한 인증서가 포함되어 있는지 확인하고, 필요한경우 인증서를

다시 생성하십시오.

 

 

# 환경변수 설정 해제 / export 

 

$ unset KUBECONFIG
$ export KUBECONFIG=/etc/kubernetes/admin.conf

 

3. kubeadm init 명령어 입력시 

 

: kubeadm join token:xdce134 ~~~ 를 뱉어내지 않을때

 

kubeadm reset
rm -rf /var/lib/cni/
systemctl daemon-reload
systemctl restart kubelet
iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X