環境資訊
系統版本資訊
環境 | 版本 |
---|---|
OS | CentOS Linux release 7.4.1708 (Core) |
Kernel | Linux version 3.10.0-693.el7.x86_64 |
rke | v0.1.9 |
rancher | v2.0.8 |
docker | 1.13.1 |
主機資訊
主機名 | ip | 安裝使用者 | 作業系統 |
---|---|---|---|
rk1 | 192.168.0.130 | docker | CentOS Linux release 7.4 |
rk2 | 192.168.0.129 | docker | CentOS Linux release 7.4 |
環境預設
以下步驟所有叢集主機都要配置
1.關閉防火牆
setenforce 0
systemctl disable iptables-services firewalld
systemctl stop iptables-services firewalld
2.禁用SELINUX
vi /etc/selinux/config
SELINUX=disabled
service network restart
3.hosts檔案配置
vi /etc/hosts
127.0.0.1 localhost
192.168.0.129 rk2
192.168.0.130 rk1
4.修改主機名
以rk1機器(192.168.0.130)為例
1.登入192.168.0.130
ssh [email protected]
2.修改主機名為
rk1
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=rk1
hostname rk1
hostnamectl set-hostname rk1
3.退出重新登入檢視是否生效
[[email protected] ~]# hostname
rk1
5.配置使用者組
#将安裝rke使用者加入docker組,建議安裝使用者選擇非root使用者
usermod -aG docker docker
6.禁用交換分區
修改/etc/fstab 注釋掉以下配置項
#/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
7.設定ipv4轉發
修改/etc/sysctl.conf
$ echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
$ systemctl restart network
$ sysctl net.ipv4.ip_forward
8.配置ssh互信
登入rk1
$ ssh-keygen #生成公鑰和私鑰
$ ssh-copy-id [email protected]
$ ssh-copy-id [email protected]
#驗證是否生效
[[email protected] ~]$ ssh [email protected] date
Mon Aug 27 21:36:27 CST 2018
docker安裝
1.配置yum源
##備份原yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
2.docker安裝
yum -y install docker
service docker start
##檢視docker版本
docker -v
Docker version 1.12.6, build 3e8e77d/1.12.6
3.設定加速器
docker預設通路國外docker hub上鏡像,速度較慢,可以替換成國内源,阿裡和daocloud都有相關加速器,而且是永久免費,這裡以daocloud為例.執行以下指令即可替換源(加速器是筆者的賬号永久免費可以放心使用)
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://41935bf4.m.daocloud.io
這個腳本在centos 7上有個bug,腳本會改變docker的配置檔案
/etc/docker/daemon.json
但修改的時候多了一個逗号,導緻docker無法啟動
[[email protected] /]# more /etc/docker/daemon.json
{"registry-mirrors": ["http://41935bf4.m.daocloud.io"],}
将最後的逗号去掉即可,截止到寫這篇文檔(2018-08-28)該bug還尚未修複.
替換後重新開機docker即可
systemctl restart docker
4.重新開機伺服器
重新開機伺服器後需要重新啟動docker服務否則叢集無法正常安裝
kuberntes安裝
RKE介紹
Rancher Kubernetes Engine(RKE)是rancher提供的一個快速安裝kubernted叢集工具,
使用Golang語言編寫,能夠實作在短時間内部署高可用kubernetes叢集環境,進而大大降低安裝kubernetes成本.
RKE安裝叢集需要指定配置檔案
cluster.yml
,隻要環境按照以上步驟預先配置好,隻要一行指令就能安裝
Kubernetes
叢集.
RKE安裝
可以從https://github.com/rancher/rke/releases下載下傳安裝包,本文使用版本
v0.1.9
.下載下傳完後将安裝包上傳至任意節點.
cluster.yml
這裡提供一個簡單版配置檔案
nodes:
- address: 192.168.0.130
user: docker
role:
- controlplane
- etcd
- worker
- address: 192.168.0.129
user: docker
role:
- controlplane
- etcd
- worker
cluster_name: mpaascluster
這裡簡單定義了兩個節點,完整的配置清單可以打開https://rancher.com/docs/rke/v0.1.x/en/example-yamls/檢視.
運作rke
将
cluster.yml
和rke的安裝包
rke_linux-amd64
放到同一個目錄下,并在終端将目前目錄cd到目前兩個檔案所在目錄.執行以下指令
chmod +x rke_linux-amd64
./rke_linux-amd64 up
如果運作正常,看到以下輸出代表安裝成功
....
INFO[0018] [addons] Saving addon ConfigMap to Kubernetes
INFO[0018] [addons] Successfully Saved addon to Kubernetes ConfigMap: rke-metrics-addon
INFO[0018] [addons] Executing deploy job..
INFO[0018] [addons] KubeDNS deployed successfully..
INFO[0018] [ingress] Setting up nginx ingress controller
INFO[0018] [addons] Saving addon ConfigMap to Kubernetes
INFO[0018] [addons] Successfully Saved addon to Kubernetes ConfigMap: rke-ingress-controller
INFO[0018] [addons] Executing deploy job..
INFO[0018] [ingress] ingress controller nginx is successfully deployed
INFO[0018] [addons] Setting up user addons
INFO[0018] [addons] no user addons defined
INFO[0018] Finished building Kubernetes cluster successfully
此時在該目錄下會生成一個
kube_config_cluster.yml
檔案,這個檔案下面會用到.
kubectl安裝
kubectl是和kuberneter互動的工具,也就是
kubernnetes-cli
.通過該工具可以在本地執行
kubernetes api
kubectl安裝可以參考https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl,以
MacOS
為例,隻要執行以下指令就能完成安裝,還是非常的簡單.
brew install kubernetes-cli
安裝完後将上面rke生成的檔案
kube_config_cluster.yml
拷貝到本地
~/.kube/
目錄下,執行以下指令驗證是否叢集連接配接成功
$ kubectl --kubeconfig kube_config_cluster.yml get nodes
NAME STATUS ROLES AGE VERSION
192.168.0.129 Ready controlplane,etcd,worker 2h v1.11.1
192.168.0.130 Ready controlplane,etcd,worker 2h v1.11.1
Rancher 2.0安裝
安裝
RKE隻是負責kubernetes叢集的安裝,并沒有安裝
Rancher server
.Rancher server需要獨立安裝.這裡非常不建議rancher和kubernetes安裝在同一台主機上,主要是會有端口沖突,雖然可以通過端口映射解決,但無論是修改kubernetes還是rancher都比較麻煩.
這裡在新的一台主機上
192.168.0.118
安裝Rancher server,版本為
2.0.8
,Rancher安裝相對比較簡單,執行以下指令就能完成安裝
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:v2.0.8
叢集導入
- 安裝完成後登入
,如果提示證書錯誤,忽略即可.https://192.168.0.118
- 初次登入需要指定管理者密碼,設定下即可,預設管理者使用者名為
.admin
- 點選菜單
,添加叢集.全局->添加叢集
- 選擇
方式導入,輸入叢集名稱點選import
.建立
- 點選後會跳轉至說明頁面,上面有導入叢集到指令.如圖
- 複制第二個指令,在本地(需按照以上步驟安裝完kubectl)執行指令
kubectl --kubeconfig kube_config_cluster.yml apply -f https://192.168.0.118/v3/import/xxxxxxxxxxxxxx.yaml
如果因為Rancher正在使用不受信任/自簽名的SSL證書運作而出現"由未知頒發機構簽名的證書"錯誤, 請運作下面的指令以繞過證書檢查:
curl --insecure -sfL https://192.168.0.118/v3/import/xxxxxxxxxxx.yaml | kubectl --kubeconfig kube_config_cluster.yml apply -f -
如果出現以下錯誤
Unable to connect to the server: x509: certificate signed by unknown authority
可以忽略,叢集還是會正常導入
至此rancher 2.0叢集安裝完畢