[kubernetes]cent os安裝kubernetes
安裝好了k8s的環境,就得來記錄筆記一下,以免之後又需要翻很多文章來查閱,在此安裝的是master and node的叢集架構方式,安裝k8s的話,必須得安裝docker,而安裝docker的方式,筆者就先跳過了,需得特別注意,安裝docker的時候需要是同樣版本哦
master and node安裝
首先把master和node的ip各加入對應,在master上面,我們需要加入node的ip,而在node的機器上則需加入master的ip,可輸入如下指令快速輸入
vim /etc/hosts
以筆者的例子,在master上是如下
10.20.101.20 MasterRd
10.20.101.21 rdWeb
node的話可能就如下
10.20.101.21 rdweb
10.20.101.20 master
我們得關閉防火牆
sudo systemctl stop firewalld && sudo systemctl disable firewalld
接著disable SELinux
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
然後則是關閉swap虛擬記憶體
echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables
swapoff -a
接著則是將yum來源加入kubernetes.repo
先輸入
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
然後安裝k8s,master和node的版本需一致,所以我們可以指定版本如下
yum install -y kubelet-1.16.2 kubeadm-1.16.2 kubectl-1.16.2
我們還得需要安裝docker,注意master和node的版本要一致
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
可以用此指令看出目前docker上所有的版本
yum list docker-ce --showduplicates | sort -r
接著安裝我們需要的版本,代碼如下
yum install docker-ce-19.03.4 docker-ce-cli-19.03.4 containerd.io
然後設定開機時啟動kubelet和docker
systemctl start docker && sudo systemctl enable docker
sudo systemctl enable kubelet && systemctl start kubelet
確認kubeadm的版本,確認已安裝
sudo kubeadm version
最後就是重開機,可以下reboot來重新開機
master部份
初始化master
此為flannel,筆者是用此種
kubeadm init --pod-network-cidr=10.244.0.0/16
下面為calico初始化的方式
kubeadm init --pod-network-cidr=192.168.0.0/16
完成之後,可以看到下面的資訊,請把最下面那段紅色框起來的資訊複製起來,之後到node的環境需要使用
接著看到上圖有一段筆者用橘色框起來的三個命令,我們就接著執行這三條命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
最後安裝網路套件
kubectl apply --namespace kube-system -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
node部份
這邊就是把之前複製的命令來node這邊執行,就可以順利把node加進master了
//下面這段是示例,請依你master init後提供的為主
kubeadm join 101.1.1.1:6443 --token zsosmo.oxivs69fnct99fh4 --discovery-token-ca-cert-hash sha256:987713377e8afc5152cc5f422c3c558fd96a75b534e8ccea890d053194e07f1f
最後則回到master看看,是否有順利把兩台機器設為叢集
kubectl get nodes
如果有看到兩台連結了,就代表我們k8s的安裝皆已完成了,但是因為產生出來的token只有24小時,如果我們有新的node要加入的話,就需要再產生新的token,可使用下面的指令產生新的token
kubeadm token create
查看token
kubeadm token list
查看sha256
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'