天天看點

RKE安裝kubernetes叢集+Rancher 2.0安裝

環境資訊

系統版本資訊

環境 版本
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
           

叢集導入

  1. 安裝完成後登入

    https://192.168.0.118

    ,如果提示證書錯誤,忽略即可.
  2. 初次登入需要指定管理者密碼,設定下即可,預設管理者使用者名為

    admin

    .
  3. 點選菜單

    全局->添加叢集

    ,添加叢集.
  4. 選擇

    import

    方式導入,輸入叢集名稱點選

    建立

    .
  5. 點選後會跳轉至說明頁面,上面有導入叢集到指令.如圖
RKE安裝kubernetes叢集+Rancher 2.0安裝
  1. 複制第二個指令,在本地(需按照以上步驟安裝完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叢集安裝完畢

繼續閱讀