[CKA] Kubernetes Cluster Install

bhs9610·2020년 8월 17일
0

CKA

목록 보기
1/1
post-thumbnail

CKA 준비를 위해 kubeadm 으로 클러스터를 설치한다 자세한 내용은 아래 레퍼런스를 참고한다.

Reference

Calico Network
Installing kubeadm
Creating a cluster with kubeadm

hostnamectl 과 nmcli 로 가상머신을 설정하고 /etc/hosts에 밑에 파일 내용을 추가한다.

  • master 192.168.122.10
  • node1 192.168.122.11
  • node2 192.168.122.12

| 목록 | 사양| 버전 |
|:-------|:------:
| OS | Centos 7
| Core | 2|
| Memmory | 4096MB |
| VM | KVM |

1. 사전준비

SELinux (All Node)

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

Swapoff (All Node)

  • Swapoff
sudo swapoff -a
  • FileSystem Table
vi /etc/fstab
...
#/dev/mapper/centos-swap    swap    swap    defaults    0    0

테이블에 정의된 Swap 영역이 있으면 # 로 주석처리를 해준다

Port Check

Control-plane
Wokr-node

'*' 표시가 있는 것은 수정이 가능한 포트번호이다 (Api Server, NodePort의 범위)

  • Master
sudo firewall-cmd --add-port 6443/tcp --permanent 2379-2380/tcp --permanent
sudo firewall-cmd --add-port 10250-10252/tcp --permanent
sudo firewall-cmd --reload
  • Node
sudo firewall-cmd --add-port 10250/tcp --permanent
sudo firewall-cmd --add-port 30000-32767/tcp --permanent
sudo firewall-cmd --reload

Set Module

  • br_netfilter
sudo modprobe br_netfilter
  • iptables 파라미터 수정
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

Runtime install (All Node)

  • 도커 설치
sudo yum install -y yum-utils
sudo yum-config-manager \    --add-repo \    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

2. Package Install (All Node)

Repository

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearchenabled=1gpgcheck=1repo_gpgcheck=1gpgkey=
https://packages.cloud.google.com/yum/doc/yum-key.gpg 
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpgexclude=kubelet kubeadm kubectl
EOF

Install Package

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

kubeadm (Kubernetes 관리툴), kubelet (명령이행툴), kubectl (Kubernetes cluster와 통신하는 툴)

3. Create Cluster & Node

Create Cluster - Control Plane

  • CONTROL_PLANE_IP : Control Plane IP 입력
sudo kubeadm init --control-plane-endpoint CONTROL_PLANE_IP

init 이 완료되면, kubectl join 명령이 떨어지는데 이는 node에서 클러스터를 결합 할 때 사용할 명령어라 저장한다.

  • 사용자 kubectl 접근 설정
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • root 사용자 kubectl 접근 설정
export KUBECONFIG=/etc/kubernetes/admin.conf

Node Add - Worker Node

sudo kubeadm join \CONTROL_PLANE_IP:6443 \--token rqo0ol.4rx4tqvkh68sfspb \--discovery-token-ca-cert-hash sha256:340253bd1aa163db4780bc13ded83ec988c4958aff813fd0a36f58562659f4bc

kubeadm init 이 끝나고 출력된 join 값을 node에 붙여넣기 한 후 실행한다.

Pod Network Plugin add-on

  • Calico Install - master
kubectl apply -kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml

Calico 의 default cidr 은 192.168.0.0/16 이며, 사용자 임의로 설정 할 수있다.

  • Add BGP Port - All Node
sudo firewall-cmd --add-port=179/tcp --permanent
sudo firewall-cmd --add-port=179/tcp 
profile
@changhyuni

0개의 댓글