centos7系統部署rancher2.x,並建立k8s集羣

前言

一 本文目標:

一、部署rancher-server UI,版本:2.3.5
二、經過rancher部署一個k8s集羣crystal-cluster
三、在k8s集羣crystal-cluster上部屬nginx實例node

二 部署的幾個前提:

一、按照官方的要求,選擇rancher版本對應支持的系統版本和docker版本;
二、安裝ntp,保證每一臺服務器之間的時間同步,不然可能會出現證書驗證錯誤的問題;
三、關閉防火牆和selinux。(若是要開啓防火牆,那麼要在防火牆放行rancher所需的端口,最好再檢查一下默認的防火牆規則,保證服務器與Helm( Kubernetes 的軟件包管理工具)的通訊)
四、全部節點服務器分配靜態IP,而且應該保留一個DHCP,以確保分配給節點的IP是相同的。
五、全部節點的hostname注意不要帶下劃線"_"。
(以上內容詳細要求見官網連接:https://rancher.com/docs/rancher/v2.x/en/installation/requirements/linux

三 本次實驗環境描述

系統版本:CentOS Linux release 7.7.1908 (Core)
docker版本:18.06.2-ce
rancher-server版本:2.3.5(當前最新版)
主機分配及配置:nginx

hostname IP rancher角色 系統配置(cpu/mem) kubernets集羣角色
test102 10.0.0.102 rancher-server 1C/1G
test103 10.0.0.103 rancher-node1 1C/2G etcd、Control Plane、Work
test104 10.0.0.104 rancher-node2 1C/1G Work

四 環境準備

一、yum默認安裝的版本是13版本,將docker升級到18.06.2-ce版本:docker

1)保證內核版本在3.10及以上:uname -a 
2)刪除舊版本:yum remove -y docker docker-common docker-selinux docker-engine #這一步驟在初次安裝docker也最好執行一次,不然後面安裝docker可能會報錯
3)安裝須要的軟件包:yum install -y yum-utils device-mapper-persistent-data lvm2
4)設置Docker yum源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5)查看全部倉庫中全部docker版本:yum list docker-ce --showduplicates | sort -r
6)安裝docker:yum -y install docker-ce-18.06.2.ce-3.el7
7)設置爲開機啓動:systemctl enable docker
8)啓動:systemctl start docker
9)查看啓動狀態:systemctl status docker
10)查看版本:docker version

二、給docker配置阿里源加速器:
1)建立/修改配置文件/etc/docker/daemon.json json

[root@test102 ~]# cat /etc/docker/daemon.json     #這個文件可能不存在,須要新建立,而後寫入下列內容
{
  "registry-mirrors": ["https://fzhifedh.mirror.aliyuncs.com"]
}
[root@test102 ~]#

2)從新加載新修改的配置,重啓dockercentos

systemctl daemon-reload 
systemctl restart docker

三、安裝ntp,確保服務器時間同步:服務器

yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
timedatectl set-ntp yes
ntpdate -u cn.pool.ntp.org
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime   
watch -n 1 'date'

環境部屬

1 rancher server部署

1.1 命令:
# docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 -v /data/rancher/ranchermaster:/var/lib/rancher rancher/rancher:latest
centos7系統部署rancher2.x,並建立k8s集羣
1.2 端口說明:
centos7系統部署rancher2.x,並建立k8s集羣網絡

1.3 等到容器起來,就能訪問了:
centos7系統部署rancher2.x,並建立k8s集羣app

1.4 經過IP+端口(https://10.0.0.102/)去訪問並配置admin用戶的密碼
centos7系統部署rancher2.x,並建立k8s集羣less

1.5 密碼配置好以後,跳轉到配置rancher-server的URL地址。這裏能夠用公網IP/內網IP,只要保證其餘的rancher-node能經過這個URL訪問到rancher-server便可。若是沒有特殊的網絡緣由,最好用內網IP:
centos7系統部署rancher2.x,並建立k8s集羣

1.6 點擊「Save URL」,跳轉到rancher-server首頁。左下角能夠看到當前rancher-server版本號,右下角能夠切換語言,而後就能建立集羣,盡情的玩耍了:
centos7系統部署rancher2.x,並建立k8s集羣

2 建立自定義k8s集羣crystal-cluster並添加兩個node節點

2.1 點擊右上角「Add Cluster」按鈕建立集羣:
centos7系統部署rancher2.x,並建立k8s集羣

2.2 能夠選擇建立自定義集羣,也能夠選擇導入集羣。這裏是建立一個全新的集羣,所以選擇自定義(Custom):
centos7系統部署rancher2.x,並建立k8s集羣

2.3 開始配置集羣相關信息:
centos7系統部署rancher2.x,並建立k8s集羣

以上配置說明:
Cluster Name:填寫集羣名稱(crystal-cluster)
Member Roles:配置訪問該集羣的用戶,及每一個用戶對集羣的操做權限,
Label & Annotations:爲集羣配置標籤和註釋,按需配置。
Kubernetes Options:
—>Kubernetes Version:選擇kubernets版本
—>Network Provider:選擇須要的網絡驅動
—>Project Network Isolation:配置namespace之間的網絡隔離
—>Cloud Provider:選擇雲提供商。本文采用VMware虛擬機部署,默認選擇無
Private Registry:配置私有鏡像倉庫
Advanced Options:配置自定義集羣參數,按需配置。
Authorized Endpoint:配置受權訪問地址
以上參數均能根據頁面的提示和本身的需求作出相應的配置,本文實驗除了Cluster Name以外,其他均選擇了默認配置。

2.4 而後點擊"Next",到下一步添加主機命令,選擇主機角色:
(選擇主機角色,端口放行參考: https://rancher.com/docs/rancher/v2.x/en/installation/references/)

角色選擇:每臺主機能夠運行多個角色。每一個集羣至少須要一個Etcd角色、一個Control角色、一個Worker角色
選擇好角色後,下面的代碼框會根據選擇的角色生成對應的主機命令,而後將命令複製到node主機上運行(注意node節點是否已經安裝好支持版本的docker,而且docker處於running的狀態)。
centos7系統部署rancher2.x,並建立k8s集羣

2.5 選好角色後,將命令複製到node節點部署:
test103(10.0.0.103),運行etcd、Control Plane、Work角色。所以,在test103執行這條命令:
centos7系統部署rancher2.x,並建立k8s集羣

注意:若是你也選擇在某個節點上部署三個角色,那麼內存最小都必需要大於2G,1G內存雖然能起來,可是集羣活不長就會掛掉,不要問我怎麼知道的

這一步須要安裝的組件不少,須要耐心多等一下子。組件在安裝時,rancher-server能看到下面這個提示:
centos7系統部署rancher2.x,並建立k8s集羣

繼續添加第二個節點了。
在test104(10.0.0.104)上運行work這一個角色,所以,在test104上運行這條命令:
centos7系統部署rancher2.x,並建立k8s集羣

2.6 點擊「Done」按鈕,回到主頁,查看集羣詳情:
centos7系統部署rancher2.x,並建立k8s集羣

點擊上圖中的「2」進去這個界面,能夠看到剛剛加進來的兩臺node節點分別的State、hostname、IP、Roles等等信息
下圖標註的幾個地方:
一、edit:能夠對主機進行編輯,給主機設置別名,如:測試機104
二、Delete:能夠刪除該主機
三、Edit Cluster:點擊這個按鈕,回到剛剛建立主機的界面編輯集羣。須要添加新的節點也能從這裏進去找到添加主機命令

centos7系統部署rancher2.x,並建立k8s集羣

點擊左上角的集羣名稱,能夠看到對應集羣的儀表盤信息:
centos7系統部署rancher2.x,並建立k8s集羣

至此,集羣添加完畢。

3 在crystal-cluster集羣下建立project和namespace

3.1 建立project:
爲應用更好的管理,rancher在kubernetes的namespace上封裝projects的概念,一個projects能夠包含多個namespace,先添加一個project。
3.1.1 點擊Projects/Namespace,進入建立project界面:
centos7系統部署rancher2.x,並建立k8s集羣

3.1.2 點擊右上角「Add Project」:
centos7系統部署rancher2.x,並建立k8s集羣

3.1.3 填寫Project Name,點擊Create建立一個叫「crystal-cluster-project」的project:
(至於下面的成員信息、資源配額,容器限制、標籤等配置,這裏沒有配置。頁面提示很詳細,能夠按需配置)
centos7系統部署rancher2.x,並建立k8s集羣

而後在projects-namespaces這個頁面的末尾,就能看到剛剛建立的project了。

3.2 建立Namespace:
3.2.1 根據前面的命名規則,再點擊「Add Namespace」建立一個叫「crystal-cluster-project-namespace」的namespace:
centos7系統部署rancher2.x,並建立k8s集羣

3.2.2 跟建立project同樣,這裏只填寫name,其他配置默認(Container Default Resource Limit這個容器資源限制,在正式環境建議設置,減小OOM風險):
centos7系統部署rancher2.x,並建立k8s集羣

在projects-namespaces界面,就能看到剛剛建立的namespace:
centos7系統部署rancher2.x,並建立k8s集羣

4 部署nginx實例

4.1 首先進入剛剛建立的project:
centos7系統部署rancher2.x,並建立k8s集羣

4.2 點擊右上角的「Deploy」,開始部署:
centos7系統部署rancher2.x,並建立k8s集羣

4.3 填寫好Name、Docker Image、Port Mapping等相關的部署信息:
填寫完整相關信息,點擊launch部署:
後面方框中的環境變量、主機調度、健康檢查、數據卷、縮放/升級策略在真實環境中很是有用,功能跟rancher1相似,這裏默認,不贅述。
centos7系統部署rancher2.x,並建立k8s集羣

以後跳轉到這個頁面,看到狀態變成active了,就部屬成功了:
centos7系統部署rancher2.x,並建立k8s集羣

在詳情界面能看到這個應用的相關配置,也能進行擴縮容:
centos7系統部署rancher2.x,並建立k8s集羣

4.4 訪問驗證:
經過nginx的IP+端口,訪問驗證功能:
centos7系統部署rancher2.x,並建立k8s集羣
centos7系統部署rancher2.x,並建立k8s集羣

至此。本文完!

寫在末尾:

一、rancher在管理docker挺實用的,更新換代還算比較快。以前部署過rancher2.1.1,界面和2.3.5仍是有一些差異。二、本文屬於記錄簡單入門操做的小白筆記,更多的功能說明和理論,能夠查看rancher官網和k8s相關官網說明。三、最後,不論是環境差別仍是別的因素,按照這個方案部署可能會遇到坑,那就爬吧!加油!

相關文章
相關標籤/搜索