安裝kubeadm kubectl kubelet
對於Ubuntu/debian系統,添加阿里雲k8s倉庫key,非root用戶需要加sudo
apt-get update && apt-get install -y apt-transport-https curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
然后在/etc/apt/source.list末尾加一行
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
然后更新apt列表,安裝kubeadm和kubectl
apt-get update apt-get install -y kubelet kubeadm kubectl
對於CentOS/RHEL/Fedora
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF setenforce 0 yum install -y kubelet kubeadm kubectl systemctl enable kubelet && systemctl start kubelet
由於官網未開放同步方式, 可能會有索引gpg檢查失敗的情況, 這時請用 yum install -y --nogpgcheck kubelet kubeadm kubectl
安裝
初始化集群
sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=cri --control-plane-endpoint "192.168.1.13:6443" --kubernetes-version=1.18.3
image-repository是鏡像倉庫地址,默認是谷歌的,國內無法訪問,所以改為阿里雲的
pod-network-cidr是pod的子網網段設置
control-plane-endpoint是控制層的入口,所以是填主節點的ip+指定一個端口,后續有其他機器加入集群就是從這里訪問的
重要:kubernetes-version是k8s的版本,這個需要和上一步安裝的kubeadm版本一致, kubeadm version可以查看到版本號
然后等幾分鍾初始化完畢就會提示下一步操作。
拷貝admin.conf到.kube,重命名為config
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
這里還可以看到其他節點加入集群的命令,即有kubeadm join那兩行,加入控制層(master或者叫controller)多了個--control-plane參數,加入工作節點(worker)則沒有。k8s的高可用集群一般建議至少3個主節點(ps:我的機器少,只有一個主節點,一個worker節點)
安裝pod網絡
下載flannel.yml到所在目錄,安裝flannel
kubectl apply -f flannel.yml
加入其他節點
拷貝證書
先在要加入的節點的用戶目錄下新建~/pki/etcd目錄
mkdir -p ~/pki/etcd
然后在剛才安裝k8s的主節點通過scp把證書都拷貝過去
cd /etc/kubernetes/pki sudo scp sa.key sa.pub front-proxy-ca.crt front-proxy-ca.key myuser@192.168.1.113:~/pki/ cd etcd sudo scp ca.crt ca.key myuser@192.168.1.113:~/pki/etcd
再切回要加入的節點,執行本文一開始安裝kubeadm的步驟
然后把證書移動到/etc/kubernetes/pki下
sudo mv -f ~/pki/* /etc/kubernetes/pki/
最后加入集群即可,這行命令可以在主節點的集群初始化最后找到,每個集群的都不一樣,需要自己去拷貝自己生成的那個
sudo kubeadm join 192.168.1.13:6443 --token fd1j75.qxrwb8h1dbogasb7 --discovery-token-ca-cert-hash sha256:4f2f2a8900ff54575406f443e49ec78d1658e437f3e1dd2785c6fbd05bcbf786 --control-plane
最后也會有提示讓把admin.conf拷貝到.kube,修改所有者,照做就是
如果token過期,可以在主節點執行 kubeadm token create 以生成新的token,有效期兩小時
安裝桌面客戶端
最后安利一個很不錯的k8s集群客戶端應用lens,點擊選擇對應版本下載,打開就可以用了。
打開,點擊+號,選擇自定義,然后把主節點的~/.kube/config文件內容拷貝這里就能連接上了
安裝監控系統前需要將主節點設置污點容忍(taint),master節點默認是有設置污點的,不能將pod分配到污點節點,只有設置了污點容忍監控系統的pod才能安裝到主節點,當然,有worker夠的話也不用
以下命令就是去除主節點的污點。
sudo kubectl taint nodes --all node-role.kubernetes.io/master-
安裝監控系統,集群圖標,點擊右鍵設置。拉到最下邊的Features,Metrics,點擊安裝,集群就會自動安裝普羅米修斯了