天天看點

好用的K8S1.8.4 叢集二進制安裝指南

利用Ansible部署kubernetes叢集

好用的K8S1.8.4 叢集二進制安裝指南
好用的K8S1.8.4 叢集二進制安裝指南
好用的K8S1.8.4 叢集二進制安裝指南

本系列文檔緻力于提供快速部署高可用`k8s`叢集的工具,并且也努力成為`k8s`實踐、使用的參考書;基于二進制方式部署和利用`ansible-playbook`實作自動化:既提供一鍵安裝腳本,也可以分步執行安裝各個元件,同時講解每一步主要參數配置和注意事項。項目位址:

https://github.com/gjmzj/kubeasz

叢集特性:`TLS` 雙向認證、`RBAC` 授權、多`Master`高可用、支援`Network Policy`

二進制方式部署優勢:有助于了解系統各元件的互動原理和熟悉元件啟動參數,有助于快速排查解決實際問題

文檔基于`Ubuntu 16.04`,其他系統如`CentOS 7`需要讀者自行替換部分指令;由于使用經驗有限和簡化腳本考慮,已經盡量避免`ansible-playbook`的進階特性和複雜邏輯。

你可能需要掌握基本`kubernetes` `docker` `linux shell` 知識,關于`ansible`建議閱讀 

[ansible超快入門]

 基本夠用。

歡迎提`Issues`和`PRs`參與維護項目。

元件版本

  1. kubernetes v1.8.4
  2. etcd v3.2.10
  3. docker 17.09.0-ce
  4. calico/node v2.6.2

附:叢集用到的所有二進制檔案已打包好供下載下傳 `

https://pan.baidu.com/s/1eSetFSA

`

快速指南

單機快速體驗k8s叢集的測試、開發環境–[AllinOne部署];在國内的網絡環境下要比官方的minikube友善、簡單很多。

1.準備一台虛機(推薦記憶體3G,硬碟20G以上),最小化安裝Ubuntu16.04 server,配置基礎網絡、更新源、SSH登陸等。

2.安裝python2/git/python-pip/ansible

# 文檔中腳本預設均以root使用者執行

apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y

# 删除不要的預設安裝

apt-get purge ufw lxd lxd-client lxcfs lxc-common

# 安裝依賴工具

apt-get install python2.7 git python-pip

# Ubuntu16.04可能需要配置以下軟連接配接

ln -s /usr/bin/python2.7 /usr/bin/python

# 安裝ansible (國内如果安裝太慢可以直接用pip阿裡雲加速)

#pip install pip –upgrade

#pip install ansible

pip install pip –upgrade -i http://mirrors.aliyun.com/pypi/simple/ –trusted-host mirrors.aliyun.com

pip install –no-cache-dir ansible -i http://mirrors.aliyun.com/pypi/simple/ –trusted-host mirrors.aliyun.com

# 配置ansible ssh密鑰登陸

ssh-keygen -t rsa -b 2048 回車 回車 回車

ssh-copy-id $IP #$IP為本虛機位址,按照提示輸入yes 和root密碼

3.安裝kubernetes叢集

git clone https://github.com/gjmzj/kubeasz.git

mv kubeasz /etc/ansible

# 下載下傳已打包好的binaries,并且解壓縮到/etc/ansible/bin目錄

# 國内請從我分享的百度雲連結下載下傳 https://pan.baidu.com/s/1eSetFSA

# 如果你有合适網絡環境也可以按照/down/download.sh自行從官網下載下傳各種tar包到 ./down目錄,并執行download.sh

tar zxvf k8s.184.tar.gz

mv bin/* /etc/ansible/bin

# 配置ansible的hosts檔案

cd /etc/ansible

cp example/hosts.allinone.example hosts

然後根據實際情況修改此hosts檔案,所有節點都是本虛機IP

# 采用一步安裝或者分步安裝

ansible-playbook 90.setup.yml # 一步安裝

#ansible-playbook 01.prepare.yml

#ansible-playbook 02.etcd.yml

#ansible-playbook 03.kubectl.yml

#ansible-playbook 04.docker.yml

#ansible-playbook 05.calico.yml

#ansible-playbook 06.kube-master.yml

#ansible-playbook 07.kube-node.yml

如果執行成功,k8s叢集就安裝好了。

4.驗證安裝

# 如果提示kubectl: command not found,退出重新ssh登陸一下,環境變量生效即可

kubectl version

kubectl get componentstatus # 可以看到scheduler/controller-manager/etcd等元件 Healthy

kubectl clusterinfo # 可以看到kubernetes master(apiserver)元件 running

kubectl get node # 可以看到單 node Ready狀态

kubectl get pod –all-namespaces # 可以檢視所有叢集pod狀态

kubectl get svc –all-namespaces # 可以檢視所有叢集服務狀态

calicoctl node status # 可以在master或者node節點上檢視calico網絡狀态

5.安裝主要元件

# 安裝kubedns

kubectl create -f manifests/kubedns

# 安裝heapster

kubectl create -f manifests/heapster

# 安裝dashboard

kubectl create -f manifests/dashboard

本文轉自kubernetes中文社群-

好用的K8S1.8.4 叢集二進制安裝指南