虛擬化運(yùn)維--管理平臺--Rancher2.x(十五)

一臭增、節(jié)點(diǎn)分配

文檔地址:https://www.rancher.cn/docs/rancher/v2.x/cn/overview/architecture/

  1. 服務(wù)器節(jié)點(diǎn)規(guī)劃
主機(jī)名 操作系統(tǒng) IP地址
master Centos 7.4-x86_64 192.168.247.130
node1 Centos 7.4-x86_64 192.168.247.131
node2 Centos 7.4-x86_64 192.168.247.132
  1. 主機(jī)名修改
[root@localhost ~]# vi /etc/hosts

192.168.247.130 master
192.168.247.131 node1
192.168.247.132 node2

  1. Kernel性能調(diào)優(yōu)
[root@master ~]# cat >>/etc/sysctl.conf<<EOF
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.neigh.default.gc_thresh1=4096
net.ipv4.neigh.default.gc_thresh2=6144
net.ipv4.neigh.default.gc_thresh3=8192
EOF

[root@master ~]# sysctl -p
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.neigh.default.gc_thresh1 = 4096
net.ipv4.neigh.default.gc_thresh2 = 6144
net.ipv4.neigh.default.gc_thresh3 = 8192

  1. 關(guān)閉防火墻(所有節(jié)點(diǎn))
[root@master ~]# systemctl stop firewalld.service 
[root@master ~]#  systemctl disable firewalld.service

  1. 添加鏡像
[root@master ~]# vi /etc/docker/daemon.json
# 內(nèi)容
{
    "registry-mirrors": ["https://7bezldxe.mirror.aliyuncs.com"]
}
# 重載配置髓窜,重啟docker

  1. 安裝和配置kubectl
    ??kubectl是一個CLI命令行工具限佩,用于運(yùn)行Kubernetes集群的命令槐瑞。Rancher 2.x中的許多維護(hù)和管理都需要它哎壳。
# 下載base,epel
[root@manager ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0   2773      0 --:--:-- --:--:-- --:--:--  2772

[root@manager ~]#  wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

[root@manager ~]#  cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 安裝Kubernetes
[root@master ~]# yum install -y kubectl

# 同步時間
[root@master ~]# yum install ntp ntpdate -y
# 同步阿里云
[root@master ~]# ntpdate ntp1.aliyun.com

[root@master ~]# yum install -y ntp 
[root@master ~]# systemctl enable ntpd && systemctl start ntpd
[root@master ~]# timedatectl set-timezone Asia/Shanghai
[root@master ~]# timedatectl set-ntp yes
[root@master ~]# ntpq -p

二鸳慈、安裝Rancher2.x

  1. 安裝(請安裝穩(wěn)定版)
# 創(chuàng)建目錄
[root@master ~]# mkdir -p /opt/rancher
# 安裝最新版
[root@localhost ~]# sudo docker run -d -v /opt/rancher:/var/lib/rancher --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest

# 安裝穩(wěn)定版
[root@master ~]#  sudo docker run -d --restart=unless-stopped -v /opt/rancher:/var/lib/rancher/ -p 80:80 -p 443:443 rancher/rancher:stable

# 使用默認(rèn)自簽名證書(使用此安裝方式)
[root@master ~]# docker run -d --restart=unless-stopped -p 80:80 -p 443:443 -v  /opt/rancher:/var/lib/rancher/ -v /root/var/log/auditlog:/var/log/auditlog -e AUDIT_LEVEL=3 rancher/rancher:stable

#  證書安裝(需生成證書)
[root@master ~]# docker run -d --restart=unless-stopped   -p 80:80 -p 443:443   -v /opt/rancher:/var/lib/rancher   -v /var/log/rancher/auditlog:/var/log/auditlog   -v /home/anrj/ssl/cert.pem:/etc/rancher/ssl/cert.pem   -v /home/anrj/ssl/key.pem:/etc/rancher/ssl/key.pem   -e AUDIT_LEVEL=3   --name rancher_stable   rancher/rancher:stable --no-cacerts

安裝后下載鏡像為:rancher/rancher stable

  1. Web訪問
    地址:https://192.168.247.130/


    登錄
保存URL

注:因為Rancher是自動使用的自簽名證書拂募,在第一次登錄會提示安全授信問題攘滩,信任即可然后設(shè)置rancher server的url帅刊,這里就直接使用了虛擬機(jī)的內(nèi)網(wǎng)ip了。

默認(rèn)用戶為:admin 密碼: admin

  1. 設(shè)置語言(右下角)


    設(shè)置語言

二漂问、創(chuàng)建集群

  1. 創(chuàng)建集群


    創(chuàng)建集群

    自定義集群

    添加名稱赖瞒,其它默認(rèn),點(diǎn)擊下一步:


    添加名稱

角色選擇(一臺主機(jī)可以對應(yīng)多個角色,每個集群至少需要一個Etcd角色蚤假、一個Control角色栏饮、一個Worker角色):


角色選擇

注意:至少保證主機(jī)集群里有一個主機(jī)角色有etcd和Control2種。所以最好是一臺主機(jī)的角色是etcd 和 Control磷仰,其他主機(jī)是work節(jié)點(diǎn)袍嬉。

  1. 添加主機(jī)到集群中
    注:如果是多臺主機(jī),根據(jù)角色的不同,需要復(fù)制多次命令伺通。
192.168.247.130--etcd
192.168.247.131--Control
192.168.247.132--work
192.168.247.132--work
#  192.168.247.132--work
[root@node2 ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.2.9 --server https://192.168.247.130 --token f8lvqwhcnzjdm4zrx7xmsw9jqs5zfxz4s46z8l7cghwfvckf9pj6fg --ca-checksum 83926781a69162022869e3b4b80d6b20c905bc2509ea685961bf7604ab6c4220 --worker
Unable to find image 'rancher/rancher-agent:v2.2.9' locally
v2.2.9: Pulling from rancher/rancher-agent
5667fdb72017: Pull complete 
d83811f270d5: Pull complete 
ee671aafb583: Pull complete 
7fc152dfb3a6: Pull complete 
0606171659a5: Pull complete 
91bb3d25889d: Pull complete 
fb492ec03242: Pull complete 
48b877ece6ea: Pull complete 
915307ab9059: Pull complete 
0b10a4dd7756: Pull complete 
Digest: sha256:268f8e30b4d26fc4dbe014ec5ac2c34b80842f8450bdc496ae52757e87c64fce
Status: Downloaded newer image for rancher/rancher-agent:v2.2.9
1365663d6cab948ec9f2962e5caf4ce919fae1fe436f947efceaccc225940641

# 下載鏡像為:
[root@node2 ~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
rancher/rancher-agent   v2.2.9              a1bf38ea4f5e        10 days ago         289MB

Universal Control Plane (UCP)记舆,基于 Web 的統(tǒng)一集群和應(yīng)用管理解決方案。


添加Control
# 192.168.247.131--controlplane
[root@node1 ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.2.9 --server https://192.168.247.130 --token f8lvqwhcnzjdm4zrx7xmsw9jqs5zfxz4s46z8l7cghwfvckf9pj6fg --ca-checksum 83926781a69162022869e3b4b80d6b20c905bc2509ea685961bf7604ab6c4220 --controlplane
Unable to find image 'rancher/rancher-agent:v2.2.9' locally
v2.2.9: Pulling from rancher/rancher-agent
5667fdb72017: Pull complete 
d83811f270d5: Pull complete 
ee671aafb583: Pull complete 
7fc152dfb3a6: Pull complete 
0606171659a5: Pull complete 
91bb3d25889d: Pull complete 
fb492ec03242: Pull complete 
48b877ece6ea: Pull complete 
915307ab9059: Pull complete 
0b10a4dd7756: Pull complete 
Digest: sha256:268f8e30b4d26fc4dbe014ec5ac2c34b80842f8450bdc496ae52757e87c64fce
Status: Downloaded newer image for rancher/rancher-agent:v2.2.9
f331528b9a5d07ec876175776dde397868861fbf8b5b47325af5fae9c508506a
# 下載鏡像為
[root@node1 ~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
rancher/rancher-agent   v2.2.9              a1bf38ea4f5e        10 days ago         289MB

添加
# 192.168.247.130--Etcd
[root@master ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.2.9 --server https://192.168.247.130 --token f8lvqwhcnzjdm4zrx7xmsw9jqs5zfxz4s46z8l7cghwfvckf9pj6fg --ca-checksum 83926781a69162022869e3b4b80d6b20c905bc2509ea685961bf7604ab6c4220 --etcd
Unable to find image 'rancher/rancher-agent:v2.2.9' locally
v2.2.9: Pulling from rancher/rancher-agent
5667fdb72017: Already exists 
d83811f270d5: Already exists 
ee671aafb583: Already exists 
7fc152dfb3a6: Already exists 
0606171659a5: Pull complete 
91bb3d25889d: Pull complete 
fb492ec03242: Pull complete 
48b877ece6ea: Pull complete 
915307ab9059: Pull complete 
0b10a4dd7756: Pull complete 
Digest: sha256:268f8e30b4d26fc4dbe014ec5ac2c34b80842f8450bdc496ae52757e87c64fce
Status: Downloaded newer image for rancher/rancher-agent:v2.2.9
57e37fc9e50625f4cd004f7e735ffb1450209e3c0088641082c5777fe07c2774

# 下載鏡為
[root@master ~]# docker images
rancher/rke-tools       v0.1.50             87d2dd9a046a        5 weeks ago         132MB
rancher/coreos-etcd     v3.3.10-rancher1    643c21638c1c        12 months ago       39.5MB
rrancher/hyperkube       v1.15.5-rancher1    fc2949858e47        11 days ago         1.15GB

全部注冊成功

此時我們的集群處于等待注冊的狀態(tài)霍殴,點(diǎn)擊主機(jī)下的數(shù)字可以查看主機(jī)信息:

進(jìn)行注冊
等待注冊
激活成功
主機(jī)信息
主機(jī)查看
  1. 查看集群信息
# master主機(jī)
[root@master ~]# docker ps
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                      NAMES
2f7c1712081e        rancher/rancher-agent:v2.3.1   "run.sh --server htt…"   3 minutes ago       Up 3 minutes                                                   awesome_dhawan
053a460a80da        rancher/rancher-agent:v2.3.1   "run.sh -- share-roo…"   3 minutes ago       Up 3 minutes                                                   share-mnt
f439c7775b6e        rancher/rancher-agent:v2.3.1   "run.sh --server htt…"   3 minutes ago       Up 3 minutes                                                   hardcore_boyd
c1bbb6072fab        rancher/rancher:latest         "entrypoint.sh"          3 hours ago         Up About a minute   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   adoring_yalow

三单寂、Rancher 部署服務(wù)

通過 Rancher UI 來一鍵式部署服務(wù)。
Rancher Server 中存在一個項目的概念笑诅,默認(rèn)存在兩個項目:default 和 system调缨,類似于 namespaces 但是并不是 namespaces,而且 namespaces 還率屬于某項目下吆你,項目可以配置 Pod 安全策略以及資源配額弦叶,可以理解為更好的劃分各個項目資源隔離。
default 項目可以理解為非系統(tǒng)項目的個人自定義項目;
system 項目可以理解為具有所有 Kubernetes 和 Rancher 系統(tǒng)命名空間的系統(tǒng)項目妇多。


項目
  1. 部署一個服務(wù)
    切換到集群 xtsz-k8s 下 default 命令空間下的工作負(fù)荷頁面來部署一個服務(wù)伤哺。


    default 命令空間

    部署服務(wù)

    以 nginx 為例,在新的 default 命名空間內(nèi)者祖,啟動一個新的 nginx Pod立莉,并配置容器 80 端口映射到 NodePort 30001 端口來配置 Service,其它配置默認(rèn)即可七问。


    Nginx服務(wù)部署
  2. 啟動服務(wù)
    點(diǎn)擊啟動蜓耻,稍等片刻,Rancher Server 就自動在default 命令空間系統(tǒng)內(nèi)創(chuàng)建了 nginx-test Pod 資源械巡。


    啟動服務(wù)

    部署成功

    查看服務(wù)
  3. 測試訪問
    地址:http://192.168.247.132:30001/


    訪問測試

    之前我們是需要使用 kubectl 命令或者手寫 yaml 文件來配置刹淌,現(xiàn)在只需要在 UI 頁面上就可以完成了。當(dāng)然 Rancher Server 底層還是將配置的參數(shù)轉(zhuǎn)換成 yaml 文件方式讥耗,通過頁面上也可以看到生成的 yaml 文件有勾。


    查看yaml
yaml文件
  1. 服務(wù)發(fā)現(xiàn)


    服務(wù)發(fā)現(xiàn)

四、常見問題:

  1. iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 6443 -j DNAT --to-destination 172.17.0.2:1337 ! -i docker0: iptables:
    解決:
# 重建docker0網(wǎng)絡(luò)恢復(fù)
# pkill 命令和 killall 命令的用法相同古程,都是通過進(jìn)程名殺死一類進(jìn)程
[root@master ~]# pkill docker 
# 清空規(guī)則 
[root@master ~]# iptables -t nat -F 
# 關(guān)閉網(wǎng)卡
[root@master ~]# ifconfig docker0 down 
# 關(guān)閉網(wǎng)卡
[root@master ~]# yum -y install bridge-utils
[root@master ~]# brctl delbr docker0 
#  重啟docker
[root@master ~]# systemctl restart docker

  1. 停用并刪除容器
[root@node2 ~]# docker stop $(docker ps -q) 
[root@master ~]# docker rm $(docker ps -aq)

  1. [etcd] Failed to bring up Etcd Plane: [etcd] Etcd Cluster is not healthy
    由于etcd內(nèi)存數(shù)據(jù)庫問題:
# 安裝etcd
[root@master ~]# yum install etcd
# 切換版本
[root@master ~]# etcdctl -version
etcdctl version: 3.3.11
API version: 2
# 配置
 vi /etc/etcd/etcd.conf
# 修改ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"為
ETCD_LISTEN_CLIENT_URLS="http://192.168.247.130:2379,http://localhost:2379"
# 修改ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"為
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.247.130:2379,http://localhost:2379"
# 重啟系統(tǒng)蔼卡,請不重啟動etcd服務(wù),如果啟動請關(guān)閉
[root@master ~]# systemctl stop etcd
[root@master ~]# systemctl status etcd
● etcd.service - Etcd Server
   Loaded: loaded (/usr/lib/systemd/system/etcd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

  1. Runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
    原因:
    因為kubelet配置了network-plugin=cni挣磨,但是還沒安裝雇逞,所以狀態(tài)會是NotReady,不想看這個報錯或者不需要網(wǎng)絡(luò),就可以修改kubelet配置文件趋急,去掉network-plugin=cni 就可以了喝峦。
[root@node2 ~]# systemctl enable kubelet 
[root@node2 ~]#  systemctl start kubelet

附:
Universal Control Plane(UCP):
UCP 通過提供集成的應(yīng)用管理平臺來擴(kuò)展 Docker EE 基礎(chǔ)版。它既是用戶的主要交互點(diǎn)呜达,也是應(yīng)用的集成點(diǎn)谣蠢。UCP 在集群中的所有節(jié)點(diǎn)上運(yùn)行代理程序來監(jiān)視它們,并且在控制器節(jié)點(diǎn)上運(yùn)行一組服務(wù)。這些服務(wù)包括用于管理用戶的身份服務(wù)眉踱,用于用戶和集群 PKI 的認(rèn)證中心 (CA)挤忙,提供 Web UI 和 API 的主控制器,用于 UCP 狀態(tài)的數(shù)據(jù)存儲谈喳,以及用于向后兼容的經(jīng)典 Swarm 服務(wù)册烈。
UCP是一個基于Docker的集群管理工具,也即集群中每個節(jié)點(diǎn)都應(yīng)該安裝Docker Engine婿禽。

UCP集群包含兩種節(jié)點(diǎn):

  • Controller: 管理集群赏僧,并持久化集群配置
  • Node:運(yùn)行容器
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市扭倾,隨后出現(xiàn)的幾起案子淀零,更是在濱河造成了極大的恐慌,老刑警劉巖膛壹,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驾中,死亡現(xiàn)場離奇詭異,居然都是意外死亡模聋,警方通過查閱死者的電腦和手機(jī)肩民,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來链方,“玉大人持痰,你說我怎么就攤上這事≈度幔” “怎么了共啃?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵占调,是天一觀的道長暂题。 經(jīng)常有香客問我,道長究珊,這世上最難降的妖魔是什么薪者? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮剿涮,結(jié)果婚禮上言津,老公的妹妹穿的比我還像新娘。我一直安慰自己取试,他們只是感情好悬槽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瞬浓,像睡著了一般初婆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天磅叛,我揣著相機(jī)與錄音屑咳,去河邊找鬼。 笑死弊琴,一個胖子當(dāng)著我的面吹牛兆龙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播敲董,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼紫皇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了腋寨?” 一聲冷哼從身側(cè)響起坝橡,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎精置,沒想到半個月后计寇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脂倦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年番宁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赖阻。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝶押,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出火欧,到底是詐尸還是另有隱情棋电,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布苇侵,位于F島的核電站赶盔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏榆浓。R本人自食惡果不足惜于未,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望陡鹃。 院中可真熱鬧烘浦,春花似錦、人聲如沸萍鲸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脊阴。三九已至握侧,卻和暖如春捌肴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背藕咏。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工状知, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人孽查。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓饥悴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親盲再。 傳聞我的和親對象是個殘疾皇子西设,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容