通過Rancher安裝Kubernetes的文章前面已經寫過,但那時是需要科學上網才能安裝成功(下載gcr.io/google_containers/XXXXX的鏡像),本次實戰依舊是用Rancher來安裝Kubernetes,但是會做一些設置,使得不用翻牆也能成功安裝K8S環境,另外,在CentOS7環境下,有些設置如果處理不當也會導致安裝失敗或者加入節點失敗,所以也會在本文中交代清楚;
章節列表
整個《CentOS7環境安裝Kubernetes四部曲》由以下四篇文章組成:
1. 標準化機器準備,不論是master還是node節點,都要先做一些同樣的設置,本章會將這些步驟列出,請參照本章對每一臺機器做同樣的設置;
2. 安裝master,配置模板;
3. 在K8S環境加入機器,並快速部署一個應用作爲體驗;
4. 安裝kubectl工具;
版本信息
本次涉及到的重要軟件的版本信息如下:
1. 操作系統:CentOS Linux 7 (3.10.0)
2. Docker:1.12.3
3. Kubernetes:v1.8.3
機器信息
整個環境由兩臺CentOS7的機器組成,如下:
hostname IP地址 作用 內存大小
master 192.168.119.129 主控制節點 2G
node1 192.168.119.130 業務節點 4G
接下來的操作是通用的,在master和node1兩臺機器上都要一模一樣的做一遍;
建議以root身份來執行以下操作,或者通過sudo su -命令獲取root權限;
檢查hostname
檢查文件/etc/hostname,確保master和node1的不一樣,我這邊master的hostname就叫master,node的hostname叫node1;
修改後需要重啓機器;
檢查hosts
檢查文件/etc/hosts,確保有hostname和本機IP的配置:
1. 對於master應該有這麼一行:192.168.119.129 master
2. 對於node1應該有這麼一樣:192.168.119.130 node1
IP和DNS
IP地址不能衝突;
能正常解析域名,執行curl www.baidu.com,可以返回網站的html內容;
防火牆
如果是測試環境就關閉防火牆,如果是生產環境需要做詳細的設置,關閉防火牆的方法如下:
1. 查看當前防火牆狀態:systemctl status firewalld.service
2. 禁止開機啓動:systemctl disable firewalld.service
3. 關閉防火牆:systemctl stop firewalld.service
關閉SELinux
打開文件/etc/selinux/config,找到SELINUX=xxxxx這行,改爲SELINUX=disabled;
修改後需要重啓機器;
開啓IPV4轉發
打開文件/etc/sysctl.conf,檢查是否有net.ipv4.ip_forward = x這樣的配置;
如果有就保證x等於1,如果沒有就加一行:net.ipv4.ip_forward = 1
修改並保存後,執行命令sysctl -p使配置生效;
執行命令sysctl -a|grep “ip_forward”,查看最新的配置,應該有如下內容:
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0
重啓
做完上述步驟後,如果有改動,最好重啓機器,以免有設置未能生效;
關閉Swap交換分區
執行命令swapoff -a關閉Swap交換分區;
安裝Docker1.2.3版本
什麼版本的Docker才能適配Rancher和Kubernetes?rancher的官網給出了一份列表,請參考:http://rancher.com/docs/rancher/v1.6/zh/hosts/#docker,本文我們使用推薦的1.2.3版本,以下是安裝步驟:
1. 執行命令:
mkdir -p ~/_src \
&& cd ~/_src \
&& wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-selinux-1.12.3-1.el7.centos.noarch.rpm \
&& wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-1.12.3-1.el7.centos.x86_64.rpm \
&& wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-debuginfo-1.12.3-1.el7.centos.x86_64.rpm \
&& yum localinstall -y docker-engine-selinux-1.12.3-1.el7.centos.noarch.rpm docker-engine-1.12.3-1.el7.centos.x86_64.rpm docker-engine-debuginfo-1.12.3-1.el7.centos.x86_64.rpm
2. 設置開機啓動:
systemctl enable docker
3. 啓動docker:
systemctl start docker
4. 執行docker version命令,看到如下信息:
Client:
Version: 1.12.3
API version: 1.24
Go version: go1.6.3
Git commit: 6b644ec
Built:
OS/Arch: linux/amd64
Server:
Version: 1.12.3
API version: 1.24
Go version: go1.6.3
Git commit: 6b644ec
Built:
OS/Arch: linux/amd64
設置Docker鏡像加速
此時如果用docker pull命令下載鏡像,本地會連接hub.docker.com網站去下載,耗時較長,因此我們可以設置docker鏡像加速,使得本地連接去國內鏡像倉庫下載,鏡像加速的設置有很多種,本章以阿里雲的設置爲例,步驟如下:
創建目錄:
mkdir -p /etc/docker
2. 設置鏡像倉庫地址:
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xwx6wxd1.mirror.aliyuncs.com"]
}
EOF
3. 重新加載配置:
systemctl daemon-reload
4. 重啓docker服務:
systemctl restart docker
至此,機器的標準化準備工作已經完成了,經過了上述操作的機器可以直接拿來安裝master,或者作爲node加入到kubernetes環境;
本文轉自CSDN-CentOS7環境安裝Kubernetes四部曲之一:標準化機器準備