前言
距離上一次搭1.9版本,已經過去一年了,這一年時間裏,kubernetes已經迭代到了v1.14.3版本了,爲了體驗新版本的特性,今天來搭建最新版的集羣,部署步驟與之前的一致,CNI kube-router經過了線上一年的驗證,這裏繼續沿用kube-router的bgp直通網絡方案。
具體步驟與之前的v1.9版本幾乎完全一致,本篇只列出差異部分,詳情可參考此前的文章:
k8s(一)、 1.9.0高可用集羣本地離線部署記錄
規劃信息
應用安裝
kube組件安裝
## centos:
# 配置yum源
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[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
# 構建yum緩存
yum makecache
# 安裝最新版
yum install -y kubelet kubectl kubeadm
## ubuntu
apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat > /etc/apt/sources.list.d/kubernetes.list << EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get -y install kubelet kubectl kubeadm
etcd版本注意:
特別注意,v1.9 k8s用的是v3.10版本的etcd,現在最新的v1.14版本k8s支持的etcd最低版本爲3.12.x,因此這裏etcd的版本替換成了3.13版本的
wget https://github.com/etcd-io/etcd/releases/download/v3.3.13/etcd-v3.3.13-linux-amd64.tar.gz
安裝步驟與此前一致,不再複述
集羣初始化
1.14版本的初始化配置文件與此前以前產生了較大的差異,這裏單獨列出來,如下是kubeadm v1.14初始化使用的配置文件:
# cat kubeadmin-config.yaml
apiVersion: kubeadm.k8s.io/v1beta1
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: "192.168.8.15"
bindPort: 6443
---
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
etcd:
external:
endpoints:
- "https://192.168.8.19:2379"
- "https://192.168.8.20:2379"
- "https://192.168.8.21:2379"
caFile: /etc/etcd/ssl/ca.pem
certFile: /etc/etcd/ssl/etcd.pem
keyFile: /etc/etcd/ssl/etcd-key.pem
networking:
podSubnet: "172.36.0.0/16"
serviceSubnet: 10.112.0.0/12
apiServer:
certSANs:
- "host008019"
- "host008020"
- "host008021"
- "192.168.8.19"
- "192.168.8.20"
- "192.168.8.21"
- "192.168.8.15"
kubernetesVersion: "v1.14.3"
imageRepository: "registry.cn-hangzhou.aliyuncs.com/google_containers" # 如果不能科學上網,添加一行這個後,kubeadm初始化鏡像會從阿里雲拉取
可配置選項很多,本樣本僅作參考,具體可以查閱官方文檔:
https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-config/
master初始化:
kubeadm init --config kubeadmin-config.yaml
其餘節點照做,參考1.9部署文檔
集羣檢查
root@host008019:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
host008019 Ready master 14h v1.14.3
host008020 Ready master 14h v1.14.3
host008021 Ready master 14h v1.14.3
總結
kubeadm作爲官方推薦的GA,在經歷了這麼多版本後,使得集羣的安裝、升級等操作變得極爲簡便,只要仔細、逐步按步驟操作,一定沒有問題可以部署成功。