์ด๋ฒ ํฌ์คํ ์ ๋จ์ผ๋ ธ๋์ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ค์นํฉ๋๋ค. ์ฐธ๊ณ
* ์ค์น OS: centos-release-7-9.2009.1.el7.centos.x86_64
1. kube ์ค์น
์๋์ ์์์ ๋ฐ๋ผ ๋ช ๋ น์ด๋ฅผ ์ญ ์ ๋ ฅํด์ค๋๋ค. ํ๋๋ผ๋ ๋น ํธ๋ฆฌ๋ฉด kubeadm init์ ์ค๋ฅ๊ฐ ๋์ค๊ธฐ ๋๋ฌธ์ ๋น ํธ๋ฆฌ๋ ๊ฒ ์์ด ์ ๋ฐ๋ผ์ค์ธ์!๐ฅฒ
# ๋ฐํ์ docker ์ค์น
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum update -y && sudo yum install -y containerd.io docker-ce docker-ce-cli
# ๋์ปค ์ค์ ํ์ผ ์์ฑ
sudo mkdir /etc/docker
cat <<EOF | sudo tee /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
# ๋์ปค ์๋น์ค ์ฌ์์ ๋ฐ enable
sudo systemctl restart docker
sudo systemctl enable docker
# 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
# selinux ์ค์
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# kube ๋ ํฌ ์ค์น
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
# kube ํจํค์ง ์ค์น
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
์ด์ kubectl ๋ช
๋ น์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ด์ namespace, service, nodes, pods ๋ฑ ์ฌ์ฉํ๊ธฐ ์ด์ ์! kubeadm init์ ์คํํฉ๋๋ค.
๐ kubeadm init ์คํํ๋ ์ด์ ?
kubectl ๋ช
๋ น์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก master๋
ธ๋์์๋ง ์คํ ๊ฐ๋ฅํ๋ฉฐ, kubeadm init์ ๋ง์คํฐ๋
ธ๋๋ก ์คํํ๊ฒ ๋ค๋ ์ด๊ธฐ ์ค์ ์
๋๋ค.
# ๋ง์คํฐ ๋
ธ๋๋ก ์ค์
kubeadm init --apiserver-advertise-address=<ํ์ฌ ํธ์คํธIP> --pod-network-cidr= <ํ๋๊ฐ ์ฌ์ฉํ IP๋์ญ>
kubeadm init --apiserver-advertise-address=10.77.110.102 --pod-network-cidr=192.168.0.0/16
์ฌ๊ธฐ๊น์ง ์งํ ๋์๋ค๋ฉด, ์ง์ง๋ก kubectl ๋ช
๋ น์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ผํ๋๋ฐ, ๋ญ๊ฐ ์ ์๋์ฃ ...?
์๋ง coredns ํ๋๊ฐ ์ ์์ ์ผ๋ก ์ฌ๋ผ์ค์ง ์์์๊ฒ๋๋ค.
# kube-system ํ๋ ํ์ธํ๊ธฐ
kubectl get pods -n kube-system -o wide
coredns ๋ ๋คํธ์ํฌ๊ฐ ์ค์น๋๊ธฐ ์ด์ ์๋ ์์๋์ง ์์ต๋๋ค. ์ ๋๋ก ์ค์นํด์ค์๋ค. ์ฐธ๊ณ ๋งํฌ
# flannel yaml ๋ค์ด๋ก๋
wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
# network ๋ถ๋ถ ์์
sed -i "s|10.244.0.0|192.168.0.0|" kube-flannel.yml
sed -i "s|v1beta1|v1|" kube-flannel.yml
# ์ค์ ์ ์ฉ
kubectl create -f kube-flannel.yml
์ค~๐ ์ด์ ์ ์์ ์ผ๋ก ์ฌ๋ผ์๋ค์!!!
์ฐธ๊ณ ์๋ฃ - [๋งํฌ]