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)爲例node

1.登陸192.168.0.130linux

ssh root@192.168.0.130

2.修改主機名爲rk1nginx

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=rk1

hostname rk1
hostnamectl set-hostname rk1

3.退出從新登陸查看是否生效git

[root@rk1 ~]# hostname
rk1

5.配置用戶組

#將安裝rke用戶加入docker組,建議安裝用戶選擇非root用戶
usermod -aG docker docker

6.禁用交換分區

修改/etc/fstab 註釋掉如下配置項github

#/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0

7.設置ipv4轉發

修改/etc/sysctl.confdocker

$ echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
$ systemctl restart network
$ sysctl net.ipv4.ip_forward

8.配置ssh互信

登陸rk1json

$ ssh-keygen #生成公鑰和私鑰
$ ssh-copy-id docker@192.168.0.129
$ ssh-copy-id docker@192.168.0.130
#驗證是否生效
[docker@rk1 ~]$ ssh docker@192.168.0.129 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爲例.執行如下命令便可替換源(加速器是筆者的帳號永久免費能夠放心使用)centos

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沒法啓動api

[root@docker /]# more /etc/docker/daemon.json
{"registry-mirrors": ["http://41935bf4.m.daocloud.io"],}

將最後的逗號去掉便可,截止到寫這篇文檔(2018-08-28)該bug還還沒有修復.
替換後重啓docker便可bash

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. 點擊後會跳轉至說明頁面,上面有導入集羣到命令.如圖

image

  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集羣安裝完畢

相關文章
相關標籤/搜索