1、簡介node
kubernetes又叫作k8s,是Google開發的一款開源的docker集羣管理工具,在這裏對它的「發家史」,我不作過多的闡述,有時間你們能夠本身去百度一下;docker
下面我要講的就是容易混淆的部分(固然搭建的過程也會簡單的闡述),我研究的就是一個單間的集羣環境,若是你們想變成高可用的話,請百度^_^數據庫
2、集羣的搭建api
我使用的二進制包進行的安裝,前提是須要去官網上下載二進制包,下載的包名稱以及地址截圖以下(下載那一個包就OK了):安全
部署分佈以下:架構
manager | kube-apiserver、kube-controller-manager、kube-scheduler、etcd | 192.168.112.116 |
node1 | kubelet、kube-proxy | 192.168.112.117 |
node2 | kubelet、kube-proxy | 192.168.112.118 |
一、manager端的安裝(kube-apiserver、kube-controller-manager、kube-scheduler、etcd)運維
kube-apiserver: 入口接口,node節點的kubelet和kube-proxy直接鏈接這個服務監聽的IP和端口分佈式
kube-scheduler: 先看這個服務,它的做用是調度,顧名思義就是建立容器、刪除容器時使用的工具
kube-controller-manager: 這個是管理服務,建立好容器以後,須要管理,就是它來作了spa
etcd: 你建立的容器或者其它的一些信息、數據、以及調度的信息都是存放在這個服務下的,你能夠把它當作一個數據庫
好了,基本的概念都懂了,那就開始安裝吧!
我以kube-apiserver爲例,其它的都是大同小異,最終服務用systemd去管理,我把二進制包和配置文件都放在了/opt/kubernetes/{bin,cfg}目錄下了,請看截圖:
二、node端的安裝(kubelet、kube-proxy)
以kubelet爲例,截圖以下:
3、成功的標誌
搭建成功以後,在manager端能夠經過kubectl get node查看集羣狀態,截圖以下:
4、易混淆點
先說k8s裏面有幾個名稱概念,分別爲rc、rs、deployment、pod、container;
pod: 它的做用是管理容器container
rc: 全稱叫作Replication Controller;它的主要做用就是管理一組相關聯的pod,意思就是說管理你在rc的yaml文件中定義的
replicas副本數量,也就是replicas個pod
rs: 全稱叫作replica set,它是rc的升級版,主要就是升級了selector,能夠以集合的形式書寫
deployment: 它也是用以管理pod的,這個作的更改就比較大了,其中對我來講比較有用的是哪一個回滾操做,對於rc來講,若是
部署完畢是無法回滾的,可是deployment缺能夠;使用rollout undo去完成
5、日誌和持久化
我感受對於運維來講搭建好容器以後,容器裏面的數據持久化和採集容器內的日誌是兩個點,採集日誌的話,你們能夠參考網上
的EFK實例,後期我也會搭建一套,到時候再寫博客,持久化那塊你們可使用集中式存儲,而後掛載到本地系統,運行容器的時候
加上-v再掛載到容器內部,固然了,k8s在運行pod的時候,就能夠在yaml文件中加上這一項
6、給出一張最近研究的最近k8s架構圖(後續會慢慢講解)
7、幾種service訪問形式
8、總結
說到這裏,想必你們對k8s應該有個歸納性的認識了,能夠肯定的是,在企業中,k8s用到比較多,swarm集羣管理基本上沒有人用了
生產環境的話,咱們須要搭建高可用、分佈式的集羣環境,這樣才能保證安全性,後面有時間的話,我會研究一下k8s HA,跟你們一塊再探討!