中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

為什么要用Kubernetes?

發布時間:2020-07-28 16:36:11 來源:網絡 閱讀:528 作者:Dotbalo 欄目:云計算

1、前言

  第一次接觸Kubernetes是在2016年,再一次瀏覽博文的時候,那是我第一次聽到Kubernetes這個名詞,也是第一次認識了k8s這么一個東西。后來在慢慢了解它的時候,被它天生高可用、負載均衡、彈性計算、自動擴容縮容和全自動容災機制的設計理念吸引,于是自己便踏入了k8s這條不歸路,在調研學習的過程中,開始不斷填坑、挖坑再填坑,周而復始。

  2017年,公司還在使用裸Docker部署一些無狀態的應用,隨著越來越多的Docker實例,發生故障時,人工填坑的方式,讓我們實在頭疼,有時候大半夜正在做著美夢的時候,被一個電話鈴喊起來處理著由于宿主機宕機或者網絡不可達引起的各類問題。這種慘絕人寰的處理方式更是讓我們頭疼難忍。雖然后來引用了Swarm和Compose,但隨著業務的不斷增多,已經越來越來滿足不了我們的應用場景,然后就想著把所有Docker應用遷移到Kubernetes中去管理。

  2017年6月30日,k8s發布1.7版本,2017年10月,Docker擁抱Kubernetes,也是我們正式開始使用Kubernetes的開始。但事情并沒有我們想象中的那么簡單,k8s的設計太多復雜,概念實在是太多,搭建過程更是讓人吐血,當時可參考的文章又是少之又少。在經過一個多月的研究與不斷回血之后,終于在k8s集群中部署了我們的第一個應用。雖然整個過程中踩了無數坑,遇到了無數個難題,但從始至終沒有放棄,最終實現一整套的流程設計,從開發提交代碼至Git,到最后成功部署到k8s集群中,徹底釋放了雙手。遇到集群中的宿主機宕機的時候,不用再去人工去處理,這一切k8s都幫你默默的處理了...

?

2、Kubernetes帶來的變革

  對于開發人員

  由于公司業務多,開發環境、測試環境、預生產環境和生產環境都是隔離的,而且除了生產環境,為了節省成本,其他環境是沒有日志收集的,在沒有用k8s的時候,查看線下測試的日志,需要開發或者測試人員,找到對應的機器,在找到對應的容器,然后才能查看日志,在用了k8s之后,開發和測試可以直接在k8s的dashboard到對應的namespace,即可定位到業務的容器,然后可以直接通過控制臺查看到對應的日志,大大降低了操作時間。

  把應用部署到k8s之后,代碼的發布、回滾,以及藍綠發布、金絲雀發布等都變得特別簡單,不僅加快了業務代碼迭代的速度,而且全程無需人工干預。目前我們使用jenkins、gitrunner進行發版或者回滾等,從開發環境到測試環境,到最后的生產環境,完全遵守一次構建,多集群、多環境部署,通過不同的啟動參數、不同的環境變量、不同的配置文件實現區分不同的環境。目前已經實現Python、Java、PHP、NodeJS、Go、.NET Core等多種語言的一鍵式發版、一鍵式回滾,大大提高了開發人員的開發效率。

  在使用服務網格后,開發人員在開發應用的過程中,不用再關心代碼的網絡部分,這些功能都被服務網格實現,讓開發人員可以只關心代碼邏輯部分,即可實現網絡部分的功能,比如:斷流、分流、路由、負載均衡、限速和觸發故障等功能。

  測試過程中,可能同時多套環境,當然也會需要再創建一套測試環境,之前測試環境的創建,需要找運維或者自行手工搭建。在遷移至k8s集群后,只需要在jenkins上點點鼠標即可在k8s集群上創建一套新的測試環境。

?

  對于運維人員

  如果你是一名運維人員,可能經常因為一些重復、繁瑣的工作感覺厭倦。比如:這個需要一套新的測試環境,那個需要一套新的測試環境,之前可能需要裝系統、裝依賴環境、開通權限等等。而如今,可以直接用鏡像直接部署一套新的測試環境,甚至全程無需自己干預,開發人員通過jenkins或者自動化運維平臺即可一鍵式創建,大大降低了運維成本。

  一開始,公司業務故障,可能是因為基礎環境不一致、依賴不一致、端口沖突等等問題,現在實現鏡像部署,所有的依賴、基礎都是一樣的,大大減少了因為這類基礎問題引發的故障。也有可能公司業務是由于服務器宕機、網絡等問題,造成服務不可用,此類情況均需要運維人員及時去修復,而如今,可能在你收到告警信息的時候,k8s已經幫你恢復了。

  在沒有使用k8s時,業務應用的擴容和縮容,都需要人工去處理,從采購服務器、上架、到部署依賴環境,不僅需要大量的人力物力,而且非常容易在中間過程出現問題,又要花費大量的時間去查找問題。成功上架后,還需要在前端反代端添加或該服務器,而如今,可以利用k8s的彈性計算,一鍵式進行擴容和縮容,不僅大大提高了運維效率,而且還節省了不少的服務器資源,提高了資源利用率。

  對于反代配置方面,比如可能你并不會,或者對nginx的配置規則并不熟悉,一些高級的功能你也不會實現,而如今,利用k8s的ingress即可簡單的實現那些負責的邏輯。并且也不會在遇到nginx少加一個斜杠和多加一個斜杠的問題。

  對于負載均衡方面,之前負載均衡可能是Nginx、LVS、HAProxy、F5等,云上可能是云服務商提供的不在均衡機制。每次添加刪除節點時,都需要手動去配置前端負載均衡,手動去匹配后端節點,而如今,使用k8s內部的service可以動態發現實現自動管理節點,并且支持自動擴容縮容。之前遇到高峰流量時,經常服務器性能不夠,需要臨時加服務器面對高峰流量,而如今對于高性能k8s集群,無需管理,自動擴容。

  對于高可用方面,k8s天生的高可用功能,徹底釋放了雙手,無需再去創建各類高可用工具、檢測檢查腳本。k8s支持進程級別的健康檢查,如發現接口超時或者返回值不正確,會自動處理該問題。

  對于中間件搭建方面,根據定義好的deploy文件,可以實現秒級搭建各類中間件高可用集群,如Redis、RabbitMQ、Zookeeper等,并且大大減少了出錯的概率。

  對于應用端口方面,傳統行業中,一個服務器可能跑了很多進程,每個進程都有一個端口,需要人為的去配置端口,并且還需要考慮端口沖突的問題,如果有防火墻的話,還需要配置防火墻,在k8s中,端口統一管理,統一配置,每個應用的端口都可設置成一樣的,之后通過service進行負載均衡。

?

  無論是對于開發人員、測試人員還是運維人員,k8s的誕生,不僅減少了工作的復雜性,還減少了各種成本。上述帶來的變革只是其中比較小的一部分,更多優點只有用了才能體會到。

?

3、Kubernetes帶來的挑戰

  首先是對于k8s的學習本身就是很難的,概念太多,無從入手,可能學習了一個月也無法入門,甚至連集群也搭建不出來,使人望而卻步。并且k8s對運維的技術能力要求比較高,已經不僅僅局限于傳統運維,有時候你可能要修改業務代碼等。并且需要掌握的知識也需要很多,你可能需要掌握公司所有使用到的代碼,比如代碼是如何進行編譯的、如何正確發布、如何修改代碼配置文件等,這對于運維人員,也是一種挑戰。Kubernetes之所以被叫做k8s,業界有兩種說法,通俗的說法是k和s之間有8個字母,另一種比較說法是k8s集群至少需要搭建8遍才能搭建成功。當然,在實際使用時,可能不止8遍。k8s的誕生,把運維從傳統轉變到了DevOps方向,需要面臨的問題會更多,需要面臨的新技術也有很多,但是當你掌握到了k8s的核心使用,就會受益終身。

  對于開發人員來說,對開發方式也有一些變化。從k8s的誕生到如火如荼,慢慢的k8s變成了一種標準,開發再進行代碼開發時需要遵循Docker和k8s規范,嚴格遵守一次構建,多次部署原則,所有的配置都通過參數、變量或者k8s配置管理注入。并且對應用,要求是無狀態的,因為Docker每次重啟都會以最干凈的基礎啟動。無論公司有沒有進行業務容器化,遵循Docker和k8s規范都將成為未來的趨勢,2019年7月,某公司因為代碼不能和k8s兼容,導致一年虧損38億美元...

?

4、這是重點

  在這些年踩了無數坑以后,也領悟到了每個技術人員學習k8s的痛點在哪里,首先是k8s概念不清楚就開始放肆的把應用部署到k8s集群中,產生的問題無從入手去解決,其次是k8s集群無論如何也搭建不出來,集群擴容也難以下手,然后是持續集成持續部署方面無從下手等等問題,想要搭建一整套k8s集群不僅僅局限于k8s集群的搭建。還需要對構建、發版、測試、部署流程化,也需要將GitLab、GitRunner、Jenkins、Harbor、Kubernetes等聯系起來。這都是每個使用k8s會遇到的問題。

  來一波猝不及防的廣告~

  其實上述列出了1234項主要是為了介紹一本即將上市的Kubernetes實戰技術書籍,這本書可以帶你避免在使用k8s的過程遇到的各類坑。

????為什么要用Kubernetes?

????????

????這本書不僅能幫你快速搭建一整套集群,也會幫你解決在使用過程中遇到的各類問題,對于使用過程中的每個坑,大部分都已經幫你填上,讓你少走很多彎路,少掉不少頭發,讓你能夠快速走進k8s的正途。這本書適用于大部分企業,可以快速構建公司的k8s平臺,并且容器化各類中間件、業務應用代碼,如Java、NodeJS等。同樣也介紹了SpringCloud各類組件的容器化。

  本書以實戰為主線,深入淺出地介紹了Kubernetes在企業生產中的應用。全書共6章,主要內容包括:第1章講解Kubernetes的高可用安裝,分為kubeadm和二進制安裝方式。第2章介紹了Docker和Kubernetes常用的理論基礎。第3章主要講解Kubernetes的常見應用的容器化。第4章主要介紹持續集成和持續部署,包括Jenkins最新的功能Pipeline的使用,從Pipeline的語法到項目實操,傳統Java和Spring Cloud應用的容器化以及自動化構建部署。第5章主要講解了Kubernetes的Nginx Ingress的安裝和常用配置。第6章講解了備受關注的Server Mesh。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

周宁县| 云南省| 徐水县| 南昌县| 中宁县| 盖州市| 白城市| 渭南市| 天柱县| 威信县| 长沙市| 团风县| 阜新市| 西盟| 历史| 益阳市| 迁安市| 洪雅县| 论坛| 潍坊市| 且末县| 砀山县| 寻甸| 阿勒泰市| 龙山县| 郸城县| 珠海市| 志丹县| 台湾省| 民勤县| 读书| 晴隆县| 武定县| 大新县| 项城市| 鲁山县| 嘉兴市| 通化县| 囊谦县| 武宁县| 晋城|