簡述
Kubenetes 是叢集式的 Docker 管理工具,其主要架構被分為 Master, Node 版的 Kubernetes 伺服器, Master 端基本上會被當成 Load Balance(附載平衡器) 然後把從網路的來源請求分散到各叢集伺服器(Node Server) 上。
佈署分為兩部分,本文佈署皆屬不同機器運作,需要先佈署 Master 主機,然後在佈署 Node 主機,接著讓 Node 節點主機能夠加入 Master 伺服器中。
Master, Node 環境設定
本文已預設機器上已經具備 Docker-CE 版本。
根據官方說明,Master Server 需要用防火牆打開這幾個 TCP Port:
- 6443 (Kubernetes API server)
- 2379-2380 (etcd server client API)
- 10250 (Kubelet API)
- 10251 (kube-scheduler)
- 10252(kube-controller-manager)
firewall-cmd --permanent --zone=public --add-port=6443/tcp
firewall-cmd --permanent --zone=public --add-port=2379-2380/tcp
firewall-cmd --permanent --zone=public --add-port=10250/tcp
firewall-cmd --permanent --zone=public --add-port=10251/tcp
firewall-cmd --permanent --zone=public --add-port=10252/tcp
Node Server 需要這幾個 TCP Port:- 10250 (Kubelet API)
- 30000-32767 (NodePort Services)
firewall-cmd --permanent --zone=public --add-port=10250/tcp
firewall-cmd --permanent --zone=public --add-port=30000-32767/tcp
接著再重新啟動伺服器:
firewall-cmd --reload
Kubernetes 使用時需要關閉 SELinux 和 swap:
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
關閉 swap:
swapoff -a
然後修改 ( /etc/fstab ) 這個檔案,把 swap 註解掉:
# /dev/mapper/centos-swap swap swap defaults 0 0
打開 br_netfilter:
modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
設定 Kubernetes 的 Repo:(請用 vi 新建檔案: " vi /etc/yum.repos.d/kubernetes.repo " )
[kubernetes]
name=Kubernetes
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
Master, Node 環境安裝
sudo yum install -y kubelet kubeadm kubectl
sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
systemctl daemon-reload systemctl restart kubelet
Master 初始化
使用指令:
kubeadm init
然後,要把 Master 端打開憑證目錄的權限:
sudo cp /etc/kubernetes/admin.conf $HOME/ sudo chown $(id -u):$(id -g) $HOME/admin.conf export KUBECONFIG=$HOME/admin.conf
Node 連接上 Master
貼上剛才在 master 主機上已經 init 完所給的 join 指令:
kubeadm join <ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<value>
kubeadm get nodes
*如果持續無法連接上,請嘗試在 Master 上使用 " systemctl stop firewalld && systemctl disable firewalld " 把防火牆關閉。
Reference:
https://askubuntu.com/questions/783017/bash-proc-sys-net-ipv4-ip-forward-permission-denied
https://www.katacoda.com/courses/kubernetes/getting-started-with-kubeadm
https://kairen.github.io/2018/04/05/kubernetes/deploy/manual-v1.10/
https://kubernetes.io/docs/setup/independent/install-kubeadm/
cluster
沒有留言:
張貼留言