k8s入門

技術小能手發表於2018-09-17
這也是今天用心寫的一篇原創文,帶段子的技術文。也許有的讀者看不懂,沒關係,文中有段子,看段子就好了。學習任何東西都要去在基於『理解』的基礎上去學,這樣往往會事半功倍。也有人說我有點高調,但見過我的人都應該有所接觸,現實中完全不是這樣的。別人在給我說觀點的時候,更多時候我只是一個傾聽者。哪怕聽到有一些不太認同的觀點,我也基本不會去反駁。

廢話有點多,前天我生日,這是我寫過最帥的程式碼!這篇文章讚賞超過 100 多,感謝大家的支援和認可。我繼續努力,爭取把我所學到的,見到的都後續分享出來,能有幫助就好。我本身就是個念舊的人,身上的錢包從大二開始到現在用了8年左右沒換過,媳婦還給我送了一個錢包,大概是希望繼續在多多賺錢吧。。


因為最近工作中需要用到k8s,基本白天去公司實操,晚上回來看書。一口氣買了兩本技術類書籍。今天就把我所學到的分享給大家,對不起,久等了。

記得入職當天,因為我們組就 3 個人。負責公司的 k8s 叢集架構。責任比較重大,一旦環境出問題,意味著所有的開發和測試都要歇菜休息,大家想想出問題了,他們肯定不願意,白天浪費太多的時間意味著他們都要晚上加班。要擱我身上,我也不願意。

有讀者問什麼是 k8s? 用來幹什麼的?這個逼格有那麼高嗎?

k8s其實是一個編排工具,在容器也就是 docker 的基礎之上去管理軟體應用生命週期的一個工具,主要執行在 linux 上。說到這裡得插入一個有趣得題外話題:公司有一個測試妹子,沒用過 linux ,不知道如何去連結 linux ,不知道如何在 linux上去解壓安裝包。同事抓住了機會又調侃了一把測試妹子,說『跑著去啊,右鍵解壓就可以了』。結果妹子去照做了,每成功。我估計他們接下來有戲了。所以多學習還是有好處的。從建立應用——應用部署——提供服務——擴容縮容——應用迭代等一系列流程全部是由它管理的。不用像傳統的行業,在升級或者故障切換時還需要去停業務或者停止資料庫,可以做到快速切換升級,不停止用用。

k8s叢集

叢集,為什麼要使用叢集? 說白了,三個臭皮匠頂個諸葛亮,眾人的力量大呀。一根筷子一下就掰斷了,多根筷子使勁也很難把它掰斷。這個就是機群的作用,你壞了我上,我壞了你上。理解之後沒什麼難的。看上去名字很唬人,實際上也就是那麼一回事。

k8s概念

這個就跟學習資料庫是一樣的,首先理解資料庫能幹什麼?由哪些東西組成。比如它是存客戶業務資料的,由表、表空間等等一些東西組成。在k8s中有這麼一些概念:cluster、Master、Node、Pod、Rc、Service、Namespace以及yaml檔案、helm包、kube-proxy等等。本身就是一個分散式高可用的東西。

  1. cluster。它是計算、儲存、網路資源的整合。k8s利用這些資源去執行各種基於容器的應用。

  2. Master。叢集主節點,這個相當於人的大腦,我們的一切行為都是大腦去調配。它主要負責分配和排程任務。決定將應用放在哪裡去執行。Master執行與 linux 上,可以使物理機也可以是虛擬機器。為了可以實現高可用,可以部署多個Master節點。

  3. Node。它的職責是聽從Master的調配並負責容器 docker 的應用。Node由Master管理,去負責監控並彙報容器的狀態,同時根據 Master的要求去管理容器的生命週期。它也是執行在 linux 上,可以是物理機也可以是虛擬機器。

  4. Pod。Pod是k8s排程的最小單元。每一個Pod包含一個或多個容器。pod中的容器會作為一個整體被Master排程到一個node上執行。

  5. rc控制檔案。主要用來管理配置。

  6. service。顧名思義提供服務的,想要跑起來非得靠它不可。

  7. Namespace。其實就類似於資料庫中有多個使用者,建立了30個檢視,每個檢視需要分配給不同的使用者,並同時將他們的資源切割開來。便於管理。

  8. helm包。k8s用來打包的工具。其實就類似與debian、烏班圖得apt,紅帽和centos上的 yum 倉庫一樣。而helm就是 k8s 上的包管理工具。

  9. kube-proxy。它得作用主要用來做負載均衡功能。什麼叫負載均衡?比如這裡有 180 斤 土豆,大家平均分配哈,要不然兩個人背了 30 斤,你讓剩下的那個人情以何堪呀?


k8s常用命令


# 檢視叢集資訊

kubectl cluster-info
# 檢視各元件資訊

kubectl -s http://localhost:8080 get componentstatuses
# 檢視pods所在的執行節點

kubectl get pods -o wide
# 檢視pods定義的詳細資訊

kubectl get pods -o yaml
# 檢視rc資訊

kubectl get rc
# 檢視service的資訊

kubectl get svc
# 檢視叢集節點資訊

kubectl get nodes
# 建立

kubectl create -f 檔名
# 重建

kubectl replace -f 檔名 [–force]
# 刪除

kubectl delete -f 檔名

kubectl delete pod pod名

kubectl delete rc rc名

kubectl delete service service名

kubectl delete pod –all

docker打映象:


一般在windows上將壓縮包上傳到linux上:

docker -i load + 名稱用來載入;

docker images 用來列出本機上的映象;

給映象打標籤:

docker tag+映象名。

docker push推映象;

docker pull拉映象


三天學習的結果,我爭取繼續努力。平時沒什麼時間去追劇,週六熬夜看了下『沙海』,有人說這部劇不錯,也有人吐槽這部劇結局不太看好。但是給我印象最深刻的是吳三石的那個老師說的那段話「復讀三個月考了六百六十六分,人才啊,你就是老師的驕傲啊,看來老師的努力沒有白費」。你看說話都說的這麼有水平。六百六十六,不就是 666 麼?要我看,這個老師絕b人才啊,有木有?

原文釋出時間為:2018-09-17
本文作者:說點特別的
本文來自雲棲社群合作伙伴“說點特別的”,瞭解相關資訊可以關注“說點特別的”。


相關文章