寫在前面
本文檔描述過程是基于https://github.com/easzlab/kubeasz進行kubernetes集群的部署。使用版本是2.1.0。
環(huán)境準(zhǔn)備
本文檔主要是在CentOS7.5環(huán)境下進行部署,前期進行了Linux內(nèi)核的升級(升級到4.4)和歷史軟件環(huán)境的清理,此步驟可跳過。集群節(jié)點采用三臺服務(wù)器,一臺做master,兩臺做node。IP地址如下:
10.20.12.6(master節(jié)點)
10.20.12.7(node節(jié)點)
10.20.12.8(node節(jié)點)
同時,需要master節(jié)點和node節(jié)點上已經(jīng)安裝了pip和netaddr。安裝步驟如下
安裝pip和netaddr
yum install -y epel-release
yum -y install python-pip python-wheel
pip install --upgrade pip
pip install netaddr
安裝Ansible
內(nèi)核版本升級到4.4之后,執(zhí)行如下命令進行軟件包的更新和ansible的安裝。Ansible的版本是2.9.1
yum -y update
yum -y install ansible?
免密登錄配置
ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa
ssh-copy-id $IPs #$IPs為所有節(jié)點地址包括自身,按照提示輸入yes 和root密碼
離線安裝包下載
登錄到master節(jié)點(10.20.12.6),執(zhí)行如下命令:
export release=2.1.0
curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/easzup
chmod +x? ./easzup
./easzup -D
執(zhí)行成功后,所有文件均已整理好放入目錄/etc/ansilbe,只要把該目錄整體復(fù)制到任何離線的機器上,即可開始安裝集群,離線文件包括:
kubeasz 項目代碼 --> /etc/ansible
kubernetes 集群組件二進制 --> /etc/ansible/bin
其他集群組件二進制(etcd/CNI等)--> /etc/ansible/bin
操作系統(tǒng)基礎(chǔ)依賴軟件包(haproxy/ipvsadm/ipset/socat等)--> /etc/ansible/down/packages
集群基本插件鏡像(coredns/dashboard/metrics-server等)--> /etc/ansible/down
離線文件不包括:
管理端 ansible 安裝,但可以使用 kubeasz 容器運行 ansible 腳本
其他更多 kubernetes 插件鏡像
配置集群參數(shù):
必要配置:cd /etc/ansible && cp example/hosts.multi-node hosts, 然后實際情況修改此hosts文件
可選配置,初次使用可以不做修改,詳見配置指南

驗證ansible 安裝:ansible all -m ping?正常能看到節(jié)點返回 SUCCESS

執(zhí)行安裝腳本
ansible-playbook 90.setup.yml
執(zhí)行完效果如下:

安裝完成之后在node節(jié)點執(zhí)行kubectl命令時會發(fā)生如下情況:

解決方法如下:
首先將master節(jié)點下的配置文件遠程復(fù)制到node節(jié)點,命令如下:
scp ~/.kube/config 10.20.12.7:/etc/kubernetes/admin.conf
scp ~/.kube/config 10.20.12.8:/etc/kubernetes/admin.conf
登錄到10.20.12.7/8。執(zhí)行如下命令:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
執(zhí)行命令驗證如下:

至此,單master節(jié)點的kubernetes集群安裝結(jié)束,多master節(jié)點的集群搭建可以在hosts里面對master配置增加相應(yīng)的節(jié)點地址。