想用K8s瓣戚,還得先會Docker嗎端圈?其實(shí)完全沒必要

鏈接:
https://juejin.cn/post/7106406444043337759

想學(xué)K8s,必須得先學(xué)會 Docker 嗎带兜?這是很多網(wǎng)友在開始有想法想要學(xué) K8s 什么時(shí)候都會冒出來的想法枫笛?那么今天我們就跟大家說說這個(gè)話題,要回答這個(gè)問題刚照,我們需要先搞清楚 Docker 和 K8s 他們的角色是什么刑巧,相互之間是什么關(guān)系。

K8s 和 Docker 的關(guān)系

Docker 和 K8s 這兩個(gè)經(jīng)常一起出現(xiàn)无畔,兩者的Logo 看著也有一定聯(lián)系一個(gè)是背上馱著集裝箱的鯨魚一個(gè)是船的舵輪啊楚。

image.png

不過兩者不能放在一個(gè)維度上討論,Docker 是當(dāng)前流行的 Linux 容器解決方案浑彰,利用 Namespaces 恭理、Cgroups 以及聯(lián)合文件系統(tǒng)UnionFS 實(shí)現(xiàn)了同一主機(jī)上容器進(jìn)程間的相互隔離。

image.png
  • NameSpaces:隔離進(jìn)程郭变,讓進(jìn)程只能訪問到本命名空間里的掛載目錄颜价、PID涯保、NetWork 等資源
  • Cgroups: 限制進(jìn)程能使用的計(jì)算機(jī)系統(tǒng)各項(xiàng)資源的上限,包括 CPU周伦、內(nèi)存夕春、磁盤、網(wǎng)絡(luò)帶寬等等
  • 聯(lián)合文件系統(tǒng)UnionFS : 保存一個(gè)操作系統(tǒng)的所有文件和目錄专挪,在它基礎(chǔ)之上添加應(yīng)用運(yùn)行依賴的文件及志。創(chuàng)建容器進(jìn)程的時(shí)候給進(jìn)程指定Mount Namespace 把鏡像文件掛載到容器里,用 chroot 把進(jìn)程的 Root目錄切換到掛載的目錄里寨腔,從而讓容器進(jìn)程各自擁有獨(dú)立的操作系統(tǒng)目錄速侈。

而 K8s 是擁有容器編排能力的集群管理解決方案,可以按照應(yīng)用的定義調(diào)度各個(gè)運(yùn)行者應(yīng)用組件 Docker 容器迫卢,但是 Docker 并不是 K8s 對容器的唯一選擇倚搬,K8s 的 容器運(yùn)行時(shí)支持對接多種容器 ,比如CoreOS公司的Rkt容器(之前稱為Rocket靖避,現(xiàn)更名為Rkt)潭枣,Apache 開源的 Mesos 容器等。只要容器實(shí)現(xiàn)了 K8s 容器運(yùn)行時(shí)的接口約定幻捏,都能讓 K8s 進(jìn)行調(diào)度。

image.png

Docker 公司也推出過自己的容器集群管理方案 Docker Swarm 命咐,跟 K8s 算是競品篡九,但是在生產(chǎn)上幾乎沒人使用。

Docker Swarm 沒有流行起來的深層次的原因就不深究了醋奠,從一些IT媒體的報(bào)道看榛臼,可能的原因是

  • 跟 Docker 深度綁定,人天生對集權(quán)主義非常反感窜司。
  • Docker 公司在大規(guī)模集群管理上的經(jīng)驗(yàn)不足沛善,不像谷歌那樣能高屋建瓴地給出好的解決方法。

容器用 Docker塞祈,需要學(xué)到什么程度

看完 K8s 和 Docker 的關(guān)系后金刁,我們已經(jīng)有答案了,想學(xué) K8s 不一定非得會 Docker议薪。但是畢竟 Docker 還是目前最流行的 Linux 容器方案尤蛮,絕大部分情況下我們還是會選擇使用 Docker,那么我們 Docker 掌握到什么程度更易于我們學(xué)習(xí) K8s 呢斯议?

這個(gè)主要看我們想學(xué)什么 K8s 干什么产捞,即使運(yùn)行在 K8s 之上的容器選擇 Docker,如果我們是搭建一些基建類的軟件哼御,比如 MySQL坯临、Redis之類的焊唬,因?yàn)檫@些組織已經(jīng)提供了軟件容器的鏡像,我的使用體驗(yàn)是看靠,完全用不到那些 Docker 的各種命令赶促。

比如要在 K8s 集群上運(yùn)行一個(gè) MySQL 應(yīng)用,寫好應(yīng)用的清單文件(就是各種配置和期望的狀態(tài))衷笋,然后直接運(yùn)行

kubectl apply -f mysql.yaml 就好芳杏,K8s 的容器運(yùn)行時(shí)會根據(jù)清單文件里的鏡像名,幫我們調(diào) Docker 的接口去下載鏡像辟宗、運(yùn)行容器爵赵。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - image: mysql:5.7
          name: mysql
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: superpass
          ports:
            - containerPort: 3306
              name: mysql
          volumeMounts:
            - name: mysql-persistent-storage
              mountPath: /var/lib/mysql
            - name: mysql-config
              mountPath: /etc/mysql/conf.d/my.cnf
              subPath: my.cnf
復(fù)制代碼

上面配置文件,有刪減泊脐。完整可運(yùn)行的案例空幻,請參考:

  • 利用Kubernetes搭建便攜式開發(fā)環(huán)境之MySQL和Redis

不過,我們使用 K8s 除了搭建這種基礎(chǔ)軟件外容客,學(xué) K8s 更多的是讓自己開發(fā)的服務(wù)能依托 K8s 集群管理秕铛、調(diào)度的能力變得更具魯棒性、更portable缩挑。這個(gè)時(shí)候 Docker 各方面的技能掌握基本的 Dockerfile 編寫但两、打包上傳鏡像的命令。這部分的幾個(gè)簡單的知識供置,感覺花個(gè)兩小時(shí)就能掌握谨湘,這里推薦一下我以前的文章

  • Go 應(yīng)用怎么打包成 Docker 鏡像
  • Java 應(yīng)用怎么打包成 Docker 鏡像

學(xué)會這幾個(gè)簡單的 Docker 知識就完全夠用,能支撐我們開始 K8s 的學(xué)習(xí)和練習(xí)啦芥丧,其他 Docker 相關(guān)的知識完全可以在做 K8s 練習(xí)時(shí)遇到問題紧阔、解決問題的過程中再學(xué)。

總結(jié)

這篇文章把 Docker 和 K8s 的關(guān)系給大家做了一個(gè)解答续担,希望還在遲疑自己現(xiàn)有的知識儲備能不能直接學(xué) K8s 的擅耽,趕緊行動(dòng)起來,K8s 是典型的入門有點(diǎn)難物遇,后面越用越香乖仇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市挎挖,隨后出現(xiàn)的幾起案子这敬,更是在濱河造成了極大的恐慌,老刑警劉巖蕉朵,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崔涂,死亡現(xiàn)場離奇詭異,居然都是意外死亡始衅,警方通過查閱死者的電腦和手機(jī)冷蚂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門缭保,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蝙茶,你說我怎么就攤上這事艺骂。” “怎么了隆夯?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵钳恕,是天一觀的道長。 經(jīng)常有香客問我蹄衷,道長忧额,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任愧口,我火速辦了婚禮睦番,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耍属。我一直安慰自己托嚣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布厚骗。 她就那樣靜靜地躺著示启,像睡著了一般。 火紅的嫁衣襯著肌膚如雪领舰。 梳的紋絲不亂的頭發(fā)上丑搔,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機(jī)與錄音提揍,去河邊找鬼。 笑死煮仇,一個(gè)胖子當(dāng)著我的面吹牛劳跃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播浙垫,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼刨仑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了夹姥?” 一聲冷哼從身側(cè)響起杉武,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辙售,沒想到半個(gè)月后轻抱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旦部,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年祈搜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了较店。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡容燕,死狀恐怖梁呈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蘸秘,我是刑警寧澤官卡,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站醋虏,受9級特大地震影響寻咒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜灰粮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一仔涩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧粘舟,春花似錦熔脂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至晰骑,卻和暖如春适秩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背硕舆。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工秽荞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抚官。 一個(gè)月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓扬跋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凌节。 傳聞我的和親對象是個(gè)殘疾皇子钦听,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容