久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Kubernetes集群的部署方式及詳細(xì)步驟

      一、部署環(huán)境架構(gòu)以及方式

      Kubernetes集群的部署方式及詳細(xì)步驟

      第一種部署方式

      1、針對(duì)于master節(jié)點(diǎn)

      將API Server、etcd、controller-manager、scheduler各組件進(jìn)行yum install、編譯安裝或者展開安裝的方式手動(dòng)直接安裝在master節(jié)點(diǎn)主機(jī)上,作為系統(tǒng)級(jí)守護(hù)進(jìn)程運(yùn)行。

      2、針對(duì)于node節(jié)點(diǎn)

      將kube-proxy、kubelet、docker、flannel各組件進(jìn)行yum install或下載已預(yù)制好的二進(jìn)制程序包手動(dòng)安裝在node節(jié)點(diǎn)主機(jī)上,作為系統(tǒng)級(jí)守護(hù)進(jìn)程運(yùn)行。

      此部署方式非常的繁瑣,出于安全方面的考慮,各組件之間通信都需要配置CA和證書。

      注:此部署方式的缺點(diǎn)就是如果master宕機(jī)了,需要手動(dòng)進(jìn)行啟動(dòng)這些系統(tǒng)級(jí)的守護(hù)進(jìn)程

      第二種部署方式

      由于第一種部署方式比較繁瑣,此次我們采用kubeadm工具進(jìn)行部署,由k8s官方所提供的專門部署集群的管理工具。

      每一個(gè)節(jié)點(diǎn)主機(jī)上包括master節(jié)點(diǎn)都要手動(dòng)安裝并運(yùn)行docker,同時(shí)也都要手動(dòng)安裝并運(yùn)行kubelet。如果將第一個(gè)節(jié)點(diǎn)初始化為master節(jié)點(diǎn),在執(zhí)行初始化這個(gè)步驟,其實(shí)就是通過kubeadm工具將API Server、etcd、controller-manager、scheduler各組件運(yùn)行為Pod,也就是跑在docker上。而其他node節(jié)點(diǎn),因已經(jīng)運(yùn)行了kubelet、docker組件,剩下的kube-proxy組件也是要運(yùn)行在Pod上。

      kubelet:負(fù)責(zé)能運(yùn)行Pod化容器的核心組件

      docker:運(yùn)行容器的引擎

      但是以上master節(jié)點(diǎn)上的Pod都是靜態(tài)Pod(static Pod),并不受k8s自身管理,只是運(yùn)行為Pod形式而已,也可運(yùn)行為自托管Pod(本文不作闡述)。

      Kubernetes集群的部署方式及詳細(xì)步驟

      而flannel組件也是運(yùn)行在Pod上的系統(tǒng)級(jí)守護(hù)進(jìn)程,起到各node節(jié)點(diǎn)通信作用。以下是flannel簡(jiǎn)單介紹:

      http://www.sfodin.cn/Linux/2019-08/159869.htm

      3、kubeadm的介紹

      在GitHub上kubeadm的介紹:

      https://github.com/kubernetes/kubeadm

      二、Kubernetes集群的部署詳細(xì)步驟

      (一)簡(jiǎn)述部署流程

      1、master、nodes節(jié)點(diǎn)要先安裝kubelet、kubeadm和docker

      2、在master節(jié)點(diǎn)上運(yùn)行kubeadm init進(jìn)程進(jìn)行初始化集群

      3、將各node節(jié)點(diǎn)加入集群中:kubeadm join

      kubeadm工作原理詳解見:https://github.com/kubernetes/kubeadm/blob/master/docs/design/design_v1.10.md(此文檔介紹的是k8s1.10版本)

      (二)部署流程的詳細(xì)介紹

      (1)master節(jié)點(diǎn)環(huán)境安裝的準(zhǔn)備工作

      1、確保集群中的所有節(jié)點(diǎn),服務(wù)器時(shí)間是同步的。設(shè)置詳情如下:

      https://www.cnblogs.com/huhyoung/p/9657253.html

      2、公司內(nèi)部局域網(wǎng)的服務(wù)器可配置hosts文件進(jìn)行域名解析,例如馬哥視頻中的:

      Kubernetes集群的部署方式及詳細(xì)步驟

      而云服務(wù)器需要另外考慮

      注:阿里云服務(wù)器切記不要修改hostname

      3、關(guān)閉防火墻服務(wù)

      需要注意的是,CentOS Linux 7默認(rèn)啟動(dòng)了firewalld(防火墻服務(wù)),而Kubernetes的master與工作node之間會(huì)有大量的網(wǎng)絡(luò)通信,安全的做法是在防火墻上配置各組件需要相互通信的端口號(hào)。在一個(gè)安全的內(nèi)部網(wǎng)絡(luò)環(huán)境中可以關(guān)閉防火墻服務(wù):

      [root@master ~]# systemctl disable firewalld
      [root@master ~]# systemctl stop firewalld

      4、獲取軟件包

      第一種部署方式獲取軟件包

      源碼包獲取地址:https://github.com/kubernetes/kubernetes/releases

      Kubernetes集群的部署方式及詳細(xì)步驟

      圖中紅色框的為源碼包,而kubernetes.tar.gz不是源碼包,但包含所需的所有組件。建議下載官方預(yù)制好的,master、node相關(guān)組件分別分開組建的包,點(diǎn)擊CHANGELOG-1.11.md

      Kubernetes集群的部署方式及詳細(xì)步驟

      點(diǎn)擊目錄Downloads for v1.11.3跳轉(zhuǎn)到

      Kubernetes集群的部署方式及詳細(xì)步驟

      不管是master和node都應(yīng)該安裝服務(wù)端安裝包,像圖中的kubernetes-server-linux-amd64.tar.gz包,如果要進(jìn)行交互,則需要安裝客戶端

      第二種部署方式獲取軟件包

      如果是Cent OS,建議使用yum install安裝,Google官方已經(jīng)將這些組件制作成了RPM包,這些包需要RPM包生成器動(dòng)態(tài)生成,所以不能下載到本地使用,只能通過在線倉(cāng)庫(kù)進(jìn)行安裝。

      (2)master節(jié)點(diǎn)環(huán)境的安裝

      1、配置yum倉(cāng)庫(kù)

      先安裝docker鏡像,去阿里云官方鏡像網(wǎng)站:https://opsx.alibaba.com/mirror找到docker-ce對(duì)應(yīng)的linux centos系統(tǒng)repo配置文件,右擊復(fù)制鏈接

      Kubernetes集群的部署方式及詳細(xì)步驟

      然后進(jìn)入/etc/yum.repos.d目錄,下載到本地。

      wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

      Kubernetes集群的部署方式及詳細(xì)步驟

      接著再生成Kubernetes的倉(cāng)庫(kù)文件,創(chuàng)建并編輯kubernetes.repo。

      [root@master yum.repos.d]# vim kubernetes.repo

      寫入以下內(nèi)容,baseurl和gpgkey的路徑可在阿里云官方鏡像網(wǎng)站Kubernetes目錄下找到。

      Kubernetes集群的部署方式及詳細(xì)步驟

       

      [kubernetes]
      name=Kubernetes Repo
      baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
      gpgcheck=1
      gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
      enabled=1

       Kubernetes集群的部署方式及詳細(xì)步驟

      創(chuàng)建完之后,獲取當(dāng)前系統(tǒng)有效的repolist 

      [root@master yum.repos.d]# yum repolist

      Kubernetes集群的部署方式及詳細(xì)步驟

      為了方便在node節(jié)點(diǎn)上安裝,可以將這個(gè)兩個(gè)配置文件通過scp命令復(fù)制到node節(jié)點(diǎn)服務(wù)器上

      [root@master yum.repos.d]# scp kubernetes.repo docker-ce.repo node1:/etc/yum.repos.d/

      2、安裝各組件

      kuberctl:API Server的命令行客戶端

      [root@master yum.repos.d]# yum install docker-ce kubelet kubeadm kubectl

      可以看到加載到的是哪些版本的包

      Kubernetes集群的部署方式及詳細(xì)步驟

      安裝到cri-tools-1.11.1-0.x86_64包時(shí)提示gpgkey沒有安裝

      Kubernetes集群的部署方式及詳細(xì)步驟

      將yum-key.gpg下載到本地進(jìn)行rpm –import導(dǎo)入

      Kubernetes集群的部署方式及詳細(xì)步驟

      發(fā)現(xiàn)還是報(bào)同樣的錯(cuò),于是順便也把rpm包的key也下載下來進(jìn)行導(dǎo)入

      wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

      Kubernetes集群的部署方式及詳細(xì)步驟

      Kubernetes集群的部署方式及詳細(xì)步驟

      最后,都安裝成功了。

      3、啟動(dòng)docker

      啟動(dòng)docker后,需要注意的是它會(huì)去docker倉(cāng)庫(kù)下載所依賴到的每個(gè)鏡像文件,這些鏡像文件暫時(shí)獲取不到,建議將相關(guān)鏡像文件通過其他途徑下載到本地然后導(dǎo)入使用,或者推送到本地倉(cāng)庫(kù)。

      在這里我們是借用別人此前提供的一種路徑來獲取并下載使用,因此在啟動(dòng)之前,需要編輯vim /usr/lib/systemd/system/docker.service,在該文件中定義一個(gè)環(huán)境變量

      Kubernetes集群的部署方式及詳細(xì)步驟

      注意NO_PROXY中間是有下劃線的。然后修改完配置文件之后需要重新加載配置文件,然后重新啟動(dòng),否則修改不會(huì)生效。

      [root@master ~]# systemctl daemon-reload
      [root@master ~]# systemctl start docker

      Kubernetes集群的部署方式及詳細(xì)步驟

      是否啟動(dòng)成功用docker info查看一下,可以看出已經(jīng)啟動(dòng)成功了

      Kubernetes集群的部署方式及詳細(xì)步驟

      同時(shí)還要確保以下兩個(gè)參數(shù)值為1。通過網(wǎng)橋轉(zhuǎn)發(fā)的IP數(shù)據(jù)包會(huì)iptables規(guī)則過濾,而這兩個(gè)選項(xiàng)將阻止過濾Netfilter是默認(rèn)情況下啟用了橋梁,如果不阻止會(huì)導(dǎo)致嚴(yán)重的混亂

      Kubernetes集群的部署方式及詳細(xì)步驟

      如果不是1需要修改為1

      echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

      通過[root@master ~]# rpm -ql kubelet  命令查看都安裝了什么文件

       Kubernetes集群的部署方式及詳細(xì)步驟

      查看配置文件發(fā)現(xiàn)額外參數(shù)是空的

      Kubernetes集群的部署方式及詳細(xì)步驟

      4、設(shè)置kubelet、docker為開機(jī)啟動(dòng)

      [root@master ~]# systemctl start kubelet
      [root@master ~]# systemctl status kubelet

      Kubernetes集群的部署方式及詳細(xì)步驟

      這邊沒有明顯的錯(cuò)誤提示,因此查看日志[root@master ~]# tail /var/log/messages

      Kubernetes集群的部署方式及詳細(xì)步驟

      [root@master ~]# systemctl stop kubelet        #將kubelet關(guān)閉

      因各個(gè)組件還未初始化完成所以不能啟動(dòng),將其設(shè)置開機(jī)啟動(dòng)即可

      [root@master ~]# systemctl enable kubelet    #將其設(shè)置為開機(jī)啟動(dòng)

      [root@master ~]# systemctl enable docker    #將docker設(shè)置為開機(jī)啟動(dòng)

      Kubernetes集群的部署方式及詳細(xì)步驟

      5、kubeadm init初始化

      查看kubeadm init的幫助信息 

      [root@master ~]# kubeadm init –help

      Kubernetes集群的部署方式及詳細(xì)步驟

      –apiserver-advertise-address:API服務(wù)器將通知它正在監(jiān)聽的IP地址,監(jiān)聽的地址為“0.0.0.0”,即本機(jī)所有IP地址。

      –apiserver-bind-port:API服務(wù)器綁定到的端口。(默認(rèn):6443)

      –cert-dir:加載證書的相關(guān)目錄(默認(rèn):/etc/kubernetes/pki)

      –config:配置文件的路徑。警告:配置文件目前屬于實(shí)驗(yàn)性,還不穩(wěn)定。

      –ignore-preflight-errors:將錯(cuò)誤顯示為警告的檢查列表進(jìn)行忽略。例如:“IsPrivilegedUser,Swp”。Value ‘all’忽略所有檢查中的錯(cuò)誤。

      –pod-network-cidr:指定pod網(wǎng)絡(luò)的IP地址范圍。如果設(shè)置,控制平面將為每個(gè)節(jié)點(diǎn)自動(dòng)分配CIDRs。

      –service-cidr:為service VIPs使用不同的IP地址。(默認(rèn)“10.96.0.0/12”)

      然后我們指定選項(xiàng)進(jìn)行初始化:

      [root@master ~]# kubeadm init –kubernetes-version=v1.11.1 –pod-network-cidr=10.244.0.0/16 –service-cidr=10.96.0.0/12

      Kubernetes集群的部署方式及詳細(xì)步驟

      Kubernetes集群的部署方式及詳細(xì)步驟

      如果在初始化中碰到swap不支持的報(bào)錯(cuò),如下圖

      Kubernetes集群的部署方式及詳細(xì)步驟

      需要做兩個(gè)設(shè)定

      ①[root@master ~]# vim /etc/sysconfig/kubelet        #加入以下參數(shù)

      KUBELET_EXTRA_ARGS=”–fail-swap-on=false”

      Kubernetes集群的部署方式及詳細(xì)步驟

      ②[root@master ~]# kubeadm init –kubernetes-version=v1.11.1 –pod-network-cidr=10.244.0.0/16 –service-cidr=10.96.0.0/12 –ignore-preflight-errors=Swap   #在初始化時(shí)加入–ignore選項(xiàng)

      最后通過[root@master ~]# docker image ls 查看鏡像都拉取完了

      Kubernetes集群的部署方式及詳細(xì)步驟

      其中k8s.gcr.io/pause就是基礎(chǔ)架構(gòu)容器,可以不用啟動(dòng),其他容器可以將它當(dāng)成模板進(jìn)行網(wǎng)絡(luò)、存儲(chǔ)卷復(fù)制。

      特別注意:

      其中有兩個(gè)附件:CoreDNS和kube-proxy

      CoreDNS:CoreDNS已經(jīng)經(jīng)歷過三個(gè)版本:sky-dns()—–>kube-dns(1.3版本)—–>CoreDNS(1.11版本)

      kube-proxy:作為附件運(yùn)行自托管與k8s之上,來幫忙負(fù)責(zé)生成service資源相關(guān)的iptables或者ipvs規(guī)則,在1.11版本默認(rèn)使用ipvs。

      6、創(chuàng)建kube目錄,添加kubectl配置

      建議用普通用戶運(yùn)行以下三個(gè)命令:

      mkdir -p $HOME/.kube;

      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config;

      sudo chown $(id -u):$(id -g) $HOME/.kube/config

      Kubernetes集群的部署方式及詳細(xì)步驟

      因不是生產(chǎn)環(huán)境,所以此處直接用root權(quán)限執(zhí)行,第三步更改屬主和屬組也不需要操作

      還未執(zhí)行以上三個(gè)命令時(shí),查看nodes節(jié)點(diǎn)是會(huì)報(bào)以下錯(cuò)誤:

      Kubernetes集群的部署方式及詳細(xì)步驟

      執(zhí)行完之后,再查看nodes節(jié)點(diǎn)時(shí),結(jié)果如下:

      Kubernetes集群的部署方式及詳細(xì)步驟

      可以看出master的狀態(tài)是未就緒(NotReady),之所以是這種狀態(tài)是因?yàn)檫€缺少一個(gè)附件flannel或者Calico,沒有網(wǎng)絡(luò)各Pod是無法通信的。

      也可以通過檢查組件的健康狀態(tài)

      [root@master ~]# kubectl get componentstatus      #componentstatus可簡(jiǎn)寫為cs

      Kubernetes集群的部署方式及詳細(xì)步驟

      7、添加網(wǎng)絡(luò)組件(flannel)

       組件flannel可以通過https://github.com/coreos/flannel中獲取,此處也有介紹怎么安裝

      Kubernetes集群的部署方式及詳細(xì)步驟

      如果Kubernetes版本是1.7以上執(zhí)行這行命令即可,在線自動(dòng)獲取部署清單,然后基于此清單下載鏡像啟動(dòng)并部署

      kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

      Kubernetes集群的部署方式及詳細(xì)步驟

      看到很多東西被創(chuàng)建是還不夠的,還需要查看flannel是否處于正常啟動(dòng)并運(yùn)行的狀態(tài),才算正在的部署完成

      [root@node1 ~]# docker image ls           #查看flannel鏡像是否有被拉取下來

      可以看到flannel鏡像已經(jīng)下載下來了

      Kubernetes集群的部署方式及詳細(xì)步驟

      注意:從這步開始我用的版本是v1.11.2,由于代理到期,導(dǎo)致之前的鏡像下載不到重新?lián)Q了途徑下載,所以你們kubeadm init初始化時(shí)記得對(duì)應(yīng)上版本。

      [root@node1 ~]# kubectl get pods –all-namespaces       #查看所有名稱空間的pod,同時(shí)可以看到flannel已經(jīng)正常啟動(dòng)

      [root@node1 ~]# kubectl get pods -n kube-system          #查看名稱空間為kube-system的pod

      Kubernetes集群的部署方式及詳細(xì)步驟

      [root@localhost ~]# kubectl get ns    #查看有哪些名稱空間

      系統(tǒng)級(jí)別的Pod都在名稱空間kube-system中

      Kubernetes集群的部署方式及詳細(xì)步驟

      這樣我們的master節(jié)點(diǎn)就部署好了

      8、

      (3)node節(jié)點(diǎn)環(huán)境的安裝

      [root@node01 ~]# rpm –import rpm-package-key.gpg

      [root@node01 ~]# yum install -y docker-ce kubelet kubeadm

      [root@master ~]# scp /usr/lib/systemd/system/docker.service node01:/usr/lib/systemd/system/docker.service

      [root@master ~]# scp /etc/sysconfig/kubelet node01://etc/sysconfig/

      [root@node01 ~]# systemctl daemon-reload

      [root@node01 ~]# systemctl start docker

      [root@node01 ~]# systemctl enble docker kubelet

      [root@node01 ~]# kubeadm join 172.20.0.70:6443 –token jpy0lt.fxz77am8dgr4r93f –discovery-token-ca-cert-hash sha256:70b67aa60ebb2eef3e3e4f76e5278fc23e6972c1c4e0848d744b93caa6f9b6ec –ignore-preflight-errors=Swap

      加入成功之后,等以下鏡像下載完之后這個(gè)node節(jié)點(diǎn)就ok了。

      Kubernetes集群的部署方式及詳細(xì)步驟

      可以通過kubectl get pods -n kube-system -o wide查看flannel和proxy有兩個(gè),一個(gè)在master節(jié)點(diǎn)上,一個(gè)在node01節(jié)點(diǎn)上。

      Kubernetes集群的部署方式及詳細(xì)步驟

       Kubernetes集群的部署方式及詳細(xì)步驟

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)