쿠버네티스(Kubernetes)란 오픈소스 컨테이너 오케스트레이션 툴입니다.
쿠버네티스 외에도 아마존의 AWS, MS의 Azure등도 있습니다.
https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/
쿠버네티스 설치(Kubernetes install)
centos 7.6
master.example.com
node1.example.com
node2.example.com
Master Node는 최소 2 Core CPU, 2GB Memory가 필요합니다.
https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/_print/
최소 설치를 했을때 필요한 패키지들 입니다.
yum -y install vim vim-common
yum -y install net-tools
hostname 설정을 합니다.
hostnamectl set-hostname master.example.com
hosts에 master와 work node들을 추가해 줍니다.
vi /etc/hosts
192.168.56.106 master.example.com master
192.168.56.107 node1.example.com node1
192.168.56.108 node2.example.com node2
도커 설치 합니다.
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
Centos7은 기본적으로 방화벽이 올라가 있습니다.
해제 합니다.
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
저는 그런경우가 없었지만 iptables가 꺼져 있어도 가끔 네트워크가 끊킨다고 하더군요.
있어도 연결에 지장 없으니 추가해 줍니다.
vi /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
selinux 체크
gentenforce
수정
sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/config
쿠버네티스는 swap을 사용하지 않기 때문에 off 합니다.
vi /etc/fstab
# xxxxxx swap swap defaults 0 0
재부팅 합니다.
reboot
swap 확인 합니다.
free
kubernets repository를 추가해 줍니다
vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=kubernetes repository
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
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
yum repolist
쿠버네티스 설치 합니다.
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable kubelet
systemctl start kubelet
** 아래 내용을 추가해야 work node가 master node에 join 됩니다.
vim /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet
여기까지 작업 후 VMware나 VirtualBox를 사용하시면 복제를 하여 work node1,2를 생성합니다.
아래부터는 Master Node에만 설정됩니다.
아래 명령어 실행 후 나오는 token을 잘 저장해 둡니다.(work node에서 master node로 join 할 때 쓰입니다)
kubeadm init --pod-network-cidr=172.17.0.0/16 --apiserver-advertise-address=192.168.56.106
token 형식 입니다.
kubeadm join 192.168.56.106:6443 --token 4w05u2.m5lsbpqgrm9059ky \
--discovery-token-ca-cert-hash sha256:**
환경변수 설정을 합니다
export KUBECONFIG=/etc/kubernetes/admin.conf
weave 설치합니다.
# kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')
노드를 확인합니다. 아직 master node 밖에 없습니다.
kubectl get nodes
이제 node1,2에서 join 합니다.
systemctl restart docker
systemctl restart kubelet
kubeadm join 192.168.56.106:6443 --token 4w05u2.m5lsbpqgrm9059ky \
--discovery-token-ca-cert-hash sha256:**
완료 후 다시 master node로 와서 확인합니다.
kubectl get nodes
'CLOUD > CUBE' 카테고리의 다른 글
쿠버네티스 설치(Kubernetes install)하면서 발생한 에러 및 해결방법 (0) | 2021.10.30 |
---|---|
도커 컴포즈(Docker Compose) 설치(install) 및 실행(up) (0) | 2021.10.25 |
도커(Docker) 레지스트리(Registry) 생성 (0) | 2021.10.24 |
도커(Docker) - Dockerfile 빌드 및 이미지 생성 (0) | 2021.10.23 |
도커(Docker) 컨테이너(container) 이미지(image) 만들기 (0) | 2021.10.18 |