1. k8s 실습에 사용 할 서버 및 구성
- manufacturer : DL20 Gen10
- OS : CentOS Linux release 7.9.2009 (Core)
- CPU : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
- Memory : 32G
- KVM 으로 master node 1대, worker node 2대 구성
- master node : k8s-master
- worker node : k8s-node1, node2
* OS 설치 및 KVM 구성법은 생략
Control-Plane(master node) 와 worker node1,2 클러스터 구축 docker 공식 사이트를 참조 하였으니 간단하게 작성
# setp1. docker install - all system
# repo 구성
$ yum install yum-utils -y
$ yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
# step2. docker engine install
$ yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# step3. k8s install (k8s install 전 swap disable 필요)
# 1. swap disalbe
$ swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab
# 2. master, node 간 bridge 설정
$ vi /etc/sysctl.d/k8s.conf 생성
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
$ sysctl --system
# kubeadm, kubectl, kubelet install - (https://kubernetes.io))
cat << EOF | 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
> gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
> exclude=kubelet kubeadm kubectl
> EOF
# SElinux disable
$ sed -i 's/^SELINUX=enforcing$/SELINUX=disalbe/' /etc/selinux/config # config 파일 vi 에디터로 수정하는거랑 같음.
$ yum install kubelet kubeadm kubectl --disableexcludes=kubernetes -y
$ systemctl enable --now kubelet
# step4. install 후 초기화 및 명령어 사용 허용
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ kubeadm init ## control-plane(master) 초기화
// init 시 runtime error 발생 시 ##
// K8S 1.24v Upgrade 되면서 docker 엔진과 containerd 엔진 충돌로 runtime 발생
// $ vi /etc/containerd/config.toml
// disabled_plugins= 주석처리
// $ systemctl restart containerd
step5. pod network add-on ## node 간 통신 ((weavenet 사용))
$ kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
step6. control-plane, woker node join ## ((woker node 에서 진행))
$ kubeadm join control-plane ip:6443 --token ~~~~~
// init 작업과 동일한 runtime error 발생 시 config 수정
// control plane 작업 하면서 생성된 token 으로 join 시 error 발생 시
$ kubeadm token create --print-join-command
kubeadm join localhost:6443 --token 0jc4gf.7iqwrkgkrzpzow38 --discovery-token-ca-cert-hash ~~~
$ kubeadm token list
## K8s cli 자동완성 설정 ##
yum install bash-completion // 자동완성 기능 사용을 위한 필수 패키지 설치
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc
* 다음 차수는 kubectl, pod 생성 하는 실습 후 정리 예정.
'IT study > Kubernetes' 카테고리의 다른 글
05. yaml 템플릿 및 API Version (0) | 2022.12.08 |
---|---|
04. K8S namespace 생성 (0) | 2022.12.08 |
03. kubectl command 및 pod 생성 (0) | 2022.12.07 |
01. kubernetes 사용을 위한 아키텍쳐 (0) | 2022.11.26 |