k8s入門
這也是今天用心寫的一篇原創文,帶段子的技術文。也許有的讀者看不懂,沒關係,文中有段子,看段子就好了。學習任何東西都要去在基於『理解』的基礎上去學,這樣往往會事半功倍。也有人說我有點高調,但見過我的人都應該有所接觸,現實中完全不是這樣的。別人在給我說觀點的時候,更多時候我只是一個傾聽者。哪怕聽到有一些不太認同的觀點,我也基本不會去反駁。
廢話有點多,前天我生日, 這是我寫過最帥的程式碼!這篇文章讚賞超過 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等等。本身就是一個分散式高可用的東西。
-
cluster。它是計算、儲存、網路資源的整合。k8s利用這些資源去執行各種基於容器的應用。
-
Master。叢集主節點,這個相當於人的大腦,我們的一切行為都是大腦去調配。它主要負責分配和排程任務。決定將應用放在哪裡去執行。Master執行與 linux 上,可以使物理機也可以是虛擬機器。為了可以實現高可用,可以部署多個Master節點。
-
Node。它的職責是聽從Master的調配並負責容器 docker 的應用。Node由Master管理,去負責監控並彙報容器的狀態,同時根據 Master的要求去管理容器的生命週期。它也是執行在 linux 上,可以是物理機也可以是虛擬機器。
-
Pod。Pod是k8s排程的最小單元。每一個Pod包含一個或多個容器。pod中的容器會作為一個整體被Master排程到一個node上執行。
-
rc控制檔案。主要用來管理配置。
-
service。顧名思義提供服務的,想要跑起來非得靠它不可。
-
Namespace。其實就類似於資料庫中有多個使用者,建立了30個檢視,每個檢視需要分配給不同的使用者,並同時將他們的資源切割開來。便於管理。
-
helm包。k8s用來打包的工具。其實就類似與debian、烏班圖得apt,紅帽和centos上的 yum 倉庫一樣。而helm就是 k8s 上的包管理工具。
-
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
本文作者:說點特別的