步驟:
關閉 SElinux 以及 SWAP
# setenforce 0
# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
# swapoff -a
# vim /etc/fstab
以下為範例,請依照實際環境修改
# /dev/mapper/centos-swap swap swap defaults 0 0
將 swap 的行數註解掉後,重新啟動系統
啟用 br_netfilter:
主要讓 kuberneter cluster 之間可以透過 iptables 互相處理封包
# modprobe br_netfilter
# echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
安裝設定前的必要套件:
# yum install -y yum-utils device-mapper-persistent-data lvm2
安裝 Docker repo:
# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安裝 kubernetes repo (2019.04.19 修正):
# cat <<EOF > /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 EOF
安裝 kubernetes
# yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
設定 group 與 Docker 相同,並啟動 kubelet
# 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
初始化 kubernetes cluster
請依照實際網路環境或是您的需求設定網段
# kubeadm init --apiserver-advertise-address=172.16.1.101 --pod-network-cidr=172.16.1.0/16
Node 加入 Master (紅字請依照實際環境修改)
# kubeadm join 172.16.1.101:6443 --token TOKEN --discovery-token-ca-cert-hash DISCOVERY_TOKEN
配置 kubernetes 權限
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
佈署 flannel 網路
# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
查詢 Maste & Node 是否成功
# kubectl get nodes
備註:
如果中間忘了 kubernetes join 的參數,可以透過下面的方式取得
# kubeadm join 172.16.1.101:6443 --token TOKEN --discovery-token-ca-cert-hash DISCOVERY_TOKEN
TOKEN 可透過以下指令查詢後取得
# kubeadm token list | awk '{print $1}'
DISCOVERY_TOKEN 可透過以下指令查詢取得
# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
參考資料:
How to install a Kubernetes cluster on CentOS 7
發表留言