一、Kubernetes (k8s) 是什麼, 有什麼用?

一、前言

在這個卷到不能在卷的時代, 一個不會運維後端程序員,都不好意思(敢)去面試瞭。面試是要求 “造飛機”,然而其實他們隻是想找一個會 “擰螺絲” 的人而已。然後“卷”之所以稱作為“卷”是有它的原因的 — 因為像 “我” 這樣的人太多瞭。近幾年, k8s 好像突然火起來瞭, 之前面試並沒有看到類似的招聘需求, 現在鋪天蓋地的都是要求會 k8s。那k8s到底是什麼呢?

這是我在某招聘上隨便找的幾個職位截圖, 幾乎都是招聘 “造飛機” 的崗位。

二、Kubernetes 是什麼?

kubernetes,簡稱K8s,是用8代替名字中間的8個字符“ubernete”而成的縮寫。是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效(powerful),Kubernetes提供瞭應用部署,規劃,更新,維護的一種機制。

說簡答點:k8s就是一個編排容器的工具,一個可以管理應用全生命周期的工具,從創建應用,應用的部署,應用提供服務,擴容縮容應用,應用更新,都非常的方便,而且可以做到故障自愈。

例如:一個服務器掛瞭,K8s可以自動將這個服務器上的服務調度到另外一個主機上進行運行,無需進行人工幹涉。

所以 k8s 一般都是和 Docker 搭配起來使用的

三、Kubernetes 有什麼用?

k8s的作用有很多, 但是由於篇幅問題, 這裡就簡單的介紹比較常用的一些功能。

1、服務器環境搭建

環境搭建這塊,在以前都是一臺服務器一臺服務器的安裝(數據庫,Nginx )等等。而且經常會因為本地環境和線上環境不一致出現莫名其妙的錯誤。

而K8s + Docker 這塊就做的很好, 可以保持開發, 測試, 生產環境一致,而且部署一個新的環境, 隻需要執行一些命令行即可,比較方便。

2、版本更新

在以前, 版本更新都是先備份線上環境, 然後停掉服務(有些時候服務被占用,直接更新會報錯),然後將本地部署的文件復制上去替換。如果是集群環境就更麻煩, 一個個的來更新(可能會有很多發佈工具,但是總的來說還是很麻煩)。 如果出現瞭錯誤,還需要快速的將環境還原~~~~~

而 k8s 版本更新隻需要執行一個類似 “kubectl set image deployment/my-dep nginx=nginx:1.16.1 –record” 的命令行, 就可以實現所有的集群環境全部更新。出現瞭問題,需要版本回退, 也隻是需要執行一個“kubectl rollout history deployment/my-dep –revision=2” 就輕松搞定瞭。

3、擴縮容

如果是電商公司,可能感觸更深, 因為每當618,雙11,系統流量暴增, 為瞭維持系統的穩定運行。一般有兩種解決方案, 一個是縱向擴展(升級服務器配置),橫向擴展(添加更多的服務器)。不過一般都使用橫向擴展, 因為縱向擴展存在瓶頸, 意義不大,而且成本較高。橫向擴展就是搭建集群, 使用更多的服務器來緩解流量的激增。但是增加一個集群也就意味著需要搭建環境, 部署服務等等操作。當雙十一結束之後,又需要減少集群來減少公司開銷。

而k8s 上述問題都可以“一鍵”搞定。而且k8s還可以實現更高級的東西–自動擴縮容(當流量出現波動的時候, 自動增加、減少集群的數量)

4、DevOps

DevOps 的概念這裡就不細聊瞭, 有興趣的可以去百度一下。

如下圖, 最終實現的效果就是, 程序員隻需要在Vs(或其他的開發工具)中提交代碼,系統會自動將代碼編譯部署到線上。都省去瞭編寫命令的步驟。是不是很酷~~~~

本文來自網絡,不代表程式碼花園立場,如有侵權,請聯系管理員。https://www.codegarden.cn/article/31001/
返回顶部