k8s是什麼
Kubernets是繼大資料、雲端計算和Docker後的一種熱門的容器編排技術,是Google在2014年釋出的開源專案。同類的技術有Docker官方的Swarm。
k8s與swarm相比較更加成熟、完善,但學習成本也更高。
為什麼學習k8s
- 本人從事遊戲行業,服務端開發,使用過Node、Go語言。最早一直用開源框架進行開發,最終都沒有找到一個非常滿意的開發框架。後來和同事使用Docker和訊息佇列做了自己的簡單開發框架(自己公司用),服務發現、持續整合、簡單自動化、灰度釋出等等。直到我看到了K8s才發現,我做的那些都已經被k8s做了,而且做的比我們好一萬倍。
- 新技術意味著新的市場和新的需求,初期掌握這種技術的人不是很多,物以稀為貴,對自己來說是個難得的提升機會。
- k8s比較萬金油或者說程式設計思想是一樣的?不管是遊戲行業還是其他,大多數系統都可以使用k8s輕鬆構建和管理一個很複雜的系統
我的目標
- 完全掌握k8s的各種用法,並利用空閒時間對我負責的遊戲專案進行重構。
- 完成1過程中的學習筆記。
- 找到相容團隊多語言開發的辦法。
- 完成一個面向中小型遊戲的快速開發框架,讓開發者輕鬆開發、輕鬆運維,輕鬆發版本。
先跑起來
官網的文件寫的很好,按照指示一步一步做就好了 官方文件
如果你只是打算搭建本地k8s環境實驗一下,我推薦下面的做法:
-
從Docker官方網站下載並安裝edge版本,一定是edge版本哦,我使用的是18.05
-
Docker -> Preferences ... 中,配置 registry mirror 為
https://registry.docker-cn.com
,點選apply 等待docker重新啟動 -
講道理,你這時候可以直接通過Docker -> Preferences -> Kubernetes -> Enable Kubernetes 安裝並啟動k8s locally。但是由於網路原因,很難成功。如果你成功了,就不用往下看了。
-
git clone https://github.com/denverdino/k8s-for-docker-desktop
下載阿里雲提供的國內版本 -
cd k8s-for-docker-desktop
如果你下載的docker是18.03版本git checkout 18.03
-
./load_images.sh
執行指令碼載入映象 -
在Docker中開啟 Kubernetes,等待如下訊息 Kubernetes is running
-
kubectl config use-context docker-for-desktop
切換Kubernetes context 配置 -
kubectl cluster-info
驗證安裝 -
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
部署 Kubernetes 控制檯 -
kubectl proxy
Api Server開啟本地監聽, 在瀏覽器中輸入http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default
就可以看到k8s控制皮膚啦!