CentOS7安裝k8s

借鑑博客:https://www.cnblogs.com/xkops/p/6169034.htmlhtml

此博客裏面有每一個k8s配置文件的註釋:https://blog.csdn.net/qq_35904833/article/details/78190257node

 

啊西吧,啊西吧,根據上面的博客終於安裝成功了。媽的,網上大部分博客安裝k8s配置寫得亂七八槽的,終於找到一篇條理清晰,安裝詳細的k8s安裝博客啦,哈哈哈哈,不容易啊快三個星期了,從狗屁不懂搞這玩意。docker

 

下面寫一寫我本身的安裝流程:數據庫

  1、安裝準備:

      準備兩臺服務器(我用的是CentOS7系統):192.168.26.227,192.168.26.228api

      一主一從:服務器

        master機:192.168.26.227網絡

        node機:192.168.26.228架構

 

 

      簡單說一下k8s:負載均衡

        k8s是個什麼玩意?

          能夠這樣去理解:k8s全稱:Kubernetes,它能夠看做是一個分佈式系統支撐平臺。          分佈式

 

        咱們爲何要用k8s集羣?

          故障自愈:

            k8s這個玩意能夠監控容器運行,咱們把項目放到容器裏。因爲一些外部內部緣由服務器承受不住壓力,若是主節點上的容器忽然掛了,k8s馬上會本身將主機上的服務調度到另外一個node機器上運行

          應用更新:

            更新項目上線時不用中斷當前項目的運行。

 

          還有一些自動擴容,縮容的概念就不講了,我本人也沒親身體會用過,很差說。

 

 

 

      k8s的全生命週期管理:

          在k8s進行管理應用的時候,基本步驟是:建立集羣,部署應用,發佈應用,擴展應用,更新應用。

 

       k8s的主要組件,以及它們主要是用來幹什麼的:

          etcd:一款開源軟件。提供可靠的分佈式數據存儲服務,用於持久化存儲K8s集羣的配置和狀態

 

          apiservice:用戶程序(如kubectl)、K8s其它組件之間通訊的接口。K8s其它組件之間不直接通訊,而是經過API server通訊的。這一點在上圖的鏈接中能夠體現,例如,只有API server鏈接了etcd,即其它組件更新K8s集羣的狀態時,只能經過API server讀寫etcd中的數據。

 

          Scheduler:排程組件,爲用戶應用的每一可部署組件分配工做結點。

 

          controller-manager:執行集羣級別的功能,如複製組件、追蹤工做結點狀態、處理結點失敗等。Controller Manager組件是由多個控制器組成的,其中不少控制器是按K8s的資源類型劃分的,如Replication Manager(管理ReplicationController 資源),ReplicaSet Controller,PersistentVolume controller。

 

          kube-proxy:在應用組件間負載均衡網絡流量。

 

          kubelet:管理工做結點上的容器。

 

          Contriner runtime Docker, rkt等實際運行容器的組件

 

      

    上面都是些k8s集羣所要用到的組件,具體這些組件都是用來幹嗎的呢,咱們來好好分析分析。

      master主機上192.168.26.277必需要有的組件:

          etcd  :提供分佈式數據存儲的數據庫吧,用於持久化存儲k8s集羣的配置和狀態

          kube-apiserver:api service提供了http rest接口,是整個集羣的入口,K8s其它組件之間不直接通訊,而是經過API server通訊的。(只有API server鏈接了etcd,即其它組件更新K8s集羣的狀態時,只能經過API server讀寫etcd中的數據)

          kube-scheduler:scheduler負責資源的調度

          kube-controller-manager:整個集羣的管理控制中心,此組件裏面是由多個控制器組成的,如:Replication Manager(管理ReplicationController 資源),ReplicaSet Controller,PersistentVolume controller。主要做用用來複制組件、追蹤工做結點狀態、處理失敗結點

 

      node節點機上192.168.26.228必需要有的組件:

          flannel:好像是用來支持網絡通訊的吧

          kube-proxy:用來負載均衡網絡流量

          kubelet:用來管理node節點機上的容器

          docker:運行項目鏡像容器的組件

 

 

      2018年11月30日:

        今天又看了一些博客,多了一些認識和理解,以下:

        k8s的整個集羣運行原理:【重點核心知識很重要】

          master主機上的kube-controller-manager是整個集羣的控制管理中心,kube-controler-manager中的node controller模塊 經過apiservice提供的監聽接口,實時監控node機的狀態信息。

 當某個node機器宕機,controller-manager就會及時排除故障並自動修復。

 

          node節點機上的kubelet進程每隔一段時間週期就會調用一次apiservice接口報告自身狀態,apiservice接口接受到這些信息後將節點狀態更新到ectd中。kubelet也經過apiservice的監聽接口監聽pod信息,若是監控到新的pod副本被調度綁定到本節點,則執行pod對應的容器的建立和啓動,若是監聽到pod對象被刪除,則刪除本節點對應的pod容器。(目前對pod、容器、鏡像這些概念還不是很清晰,沒法在大腦中構建這都是些什麼玩意,先作個筆記記着吧)

 

 

 

        剛纔在別人博客上看到一個圖頗有意思,咱們總監叫我學了ELK日誌系統,jenkins自動構建工具,最近在搞k8s,還差消息中間件沒學,而後就看到了這個圖,頓時整個公司要搭建的分佈式服務器環境一目瞭然,因爲我不是架構師並不知道公司整個服務器分佈式系統是怎樣的,如今才恍然大悟,原來如此,原來如此,原來如此呀。

 

        原圖:

              原圖的博客地址:https://blog.csdn.net/zyc88888/article/details/79281954

 

 

 

        我作了筆記的圖:

 

 

 

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

 

下面廢話很少說,來進行安裝步驟:

  2、k8s安裝步驟:

        一、全部機器上執行如下命令,準備安裝環境:(注意是全部機器,主機master,從機node都要安裝)

          1.一、安裝epel-release源

yum -y install epel-release

 

          1.二、全部機器關閉防火牆

systemctl stop firewalld
systemctl disable firewalld

setenforce 0

#查看防火牆狀態

firewall-cmd --state

 

 

      二、如今開始master主機上192.168.26.227安裝kubernetes Master

        2.一、使用yum安裝etcd、kubernetes-master

yum -y install etcd kubernetes-master

        

        2.二、編輯:vi /etc/etcd/etcd.conf文件,修改結果以下:

 

 

        2.三、配置:vi /etc/kubernetes/apiserver文件,配置結果以下:

 

 

         2.四、啓動etcd、kube-apiserver、kube-controller-manager、kube-scheduler等服務,並設置開機啓動。

for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES ; done

      

 

        2.五、在etcd中定義flannel網絡

etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'

 

》》》》》》》》以上master主機上的配置安裝什麼的都弄完了》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

 

      三、接下來弄node從機上的配置安裝什麼的

          3.一、在node機上192.168.26.228安裝kubernetes Node和flannel組件應用

yum -y install flannel kubernetes-node

 

          3.二、爲flannel網絡指定etcd服務,修改/etc/sysconfig/flanneld文件,配置結果以下圖:

 

 

         3.三、修改:vi /etc/kubernetes/config文件,配置結果以下圖:

 

        3.四、修改node機的kubelet配置文件/etc/kubernetes/kubelet

 

 

 

 

 

         3.五、node節點機上啓動kube-proxy,kubelet,docker,flanneld等服務,並設置開機啓動。

for SERVICES in kube-proxy kubelet docker flanneld;do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES; done

 

       

》》》》》》以上全部master主機,node節點機上的配置就完成了,接下來看看k8s集羣是否搭建起來了》》》》》》》》》》》》》》》》》》》

     

      在master主機上192.168.26.227執行以下命令,查看運行的node節點機器:

kubectl get nodes

 

       成功啦啦啦啦,結果圖以下:

 

 

 

 

 

   k8s的安裝算是完成 了,下一篇筆記怎麼使用k8s,咱們的項目是怎麼丟到k8s這個羣集裏面運行的,唉,滿滿的知識點乾貨啊。

相關文章
相關標籤/搜索