新聞中心
Azure 命令行接口 (CLI) 是用于管理 Azure 資源的 Microsoft 跨平臺命令行體驗(yàn)。 Azure CLI 易于學(xué)習(xí),是構(gòu)建適用于 Azure 資源的自定義自動化功能的完美工具,本篇文章重點(diǎn)為大家講解一下Azure中部署 Kubernetes具體方法。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了阿拉善盟免費(fèi)建站歡迎大家使用!
所需的基礎(chǔ)設(shè)施
在本文中,我會使用新的 Azure CLI。安裝十分簡單,大多數(shù)情況下,只需要“pip install azure-cli”就可以了。 所以現(xiàn)在讓我們來預(yù)覽一下我們的集群。首先,你可能需要資源組來隔離你的基礎(chǔ)設(shè)施。
az group create -n my-very-own-k8s-cluster -l "West Europe"
接下來是規(guī)制集群
az acs create -n my-very-own-k8s-cluster \
-g my-very-own-k8s-cluster \
--dns-prefix my-very-own-k8s-cluster \
--orchestrator-type kubernetes
在等待命令完成的時候,我們來看一些評論。
1、如果你的命令出現(xiàn)了一些問題,比如這些命令出現(xiàn)一些無意義的錯誤,添加-debug 參數(shù)有點(diǎn)啰嗦,但是會出現(xiàn)一些錯誤。
2、-dnsprefix 是可選的,個人建議還是要添加上去,不然的話,就會按照“集群名字+組名字”使用,如果超過 90 個字符的長度,之后在操作過程中就會出現(xiàn)奇怪的錯誤。
默認(rèn)設(shè)置下,ACS 用單個 master 和 3 個 agents 來設(shè)置集群。這些步驟默認(rèn)設(shè)置下都是使用 D2 的,所以這個集群耗費(fèi)比較高,當(dāng)你不需要的時候記得清理資源。
以及,歡迎閱讀 Kubernetes 的 ACS 引擎之下的內(nèi)容,鏈接:https://github.com/Azure/acs-engine/blob/master/docs/kubernetes.md。上述內(nèi)容給了實(shí)施過程中的一些很棒的觀點(diǎn)。注意了,ACS 文檔沒有使用新的 Azure 工具,所以操作起來會有點(diǎn)復(fù)雜。
第一個有效負(fù)載
所有的基礎(chǔ)設(shè)施準(zhǔn)備完成,現(xiàn)在開始部署 Kubernetes。要管理集群,那么就需要 kubectl。你可以通過以下代碼自動運(yùn)行(可能需要自行添加到 PATH):
az acs kubernetes install-cli
接下來,你需要用集群來認(rèn)證 kubectl。
az acs kubernetes get-credentials -n my-very-own-k8s-cluster \
-g my-very-k8s-cluster
檢查所有一切是否 OK。這個命令行會提供客戶端和服務(wù)器端的版本。
kubectl version
從這里開始,你已經(jīng)擁有你所需要的東西來運(yùn)行你的第一個有效負(fù)載。所以讓我們來創(chuàng)建第一個定義文件,并且嘗試運(yùn)行。Kubernetes 內(nèi)的定義文件可以使用很多文件格式,我用的是 YAML, 所以我們用以下內(nèi)容來創(chuàng)建 hello.yml 文件:
apiVersion: extension/v1beta1
kind: Deployment
metadata:
name: hello # Name of the deployment, just for reference purposes
spec:
replica: 1 # Number of instances for the given application
template:
metadata:
labels:
app: hello
spec:
containers:
- name: ner-uk-ms # Name of container, could be anything you like
image: chaliy/ner-ms:uk # Docker image to run
ports:
-containerPort:8080
目前,理解一些 Kubernetes 術(shù)語十分重要。
Pod——容器實(shí)例——http://kubernetes.io/docs/user-guide/pods/
Deployment——確保 pods 能夠運(yùn)行,扮演監(jiān)督的角色——http://kubernetes.io/docs/user-guide/deployments/
Service——將 pod 組成一個系統(tǒng)——http://kubernetes.io/docs/user-guide/services/
所以,對于定義在模版中的單個 pod 來說,我們剛剛創(chuàng)建的定義文件是個 deployment。以下命令行會拉取Docker鏡像chaliy/ner-ms:uk,開啟它的實(shí)例并且設(shè)置監(jiān)督員:
kubectl create -f ./hello.yml
現(xiàn)在可以使用的命令行很少:
# Retrieve logs associated with deployment
kubectl logs hello
# List Pods
kubectl get pods
# List deployments
kubectl get deployments
# Details about concrete pod, for example in case of errors
kubectl describe pods/podid
如果你想要重新配置應(yīng)用程序,可以在定義文件中修改,比如設(shè)置replicas:10,然后運(yùn)行:
kubectl apply -f ./hello.yml
技術(shù)上來說,這已經(jīng)在運(yùn)行有效負(fù)載了。我們來看看它的運(yùn)行狀況。Kubernetes 的 UI 界面向用戶呈現(xiàn)集群運(yùn)行狀況。它的運(yùn)行方式跟應(yīng)用程序的運(yùn)行方式是一樣的。當(dāng)然,如果你不希望這樣的 UI 出現(xiàn)在集群外面,那么默認(rèn)設(shè)置下你可以只在集群內(nèi)運(yùn)行。但是,如果訪問又會如何?
方法很簡單,Kubernetes 實(shí)現(xiàn) Basteon 模式,并且通過簡單的方法代理到你的本地電腦。所以首先你需要運(yùn)行代理:
kubectl proxy --port=8000
然后,你需要立刻看到 Kubernetes Dashboard 的話??梢詾g覽:http://localhost:8000/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard 還有就是,你可能需要發(fā)布對集群外的服務(wù)。對于這個,你需要創(chuàng)建 service(對于 Kubernetes),然后使用 expose 命令,用新的 Loadbalancer。
kubectl expose deployment hello --type="LoadBalancer"--port=80 --
target-port=8080
這個命令行會開始設(shè)置新的 load balance,需要一點(diǎn)時間。要檢查它是否運(yùn)行,要查詢關(guān)于 service 的信息:
kubectl get services/hello
之后你就會看到外部 IP 地址,意味著服務(wù)已處于 OK 狀態(tài),你可以用來發(fā)送請求。類似于:
curlhttp://EXTERNAL-IP/
所有的腳本都可以在這個網(wǎng)址找到:https://github.com/chaliy/play-azure-kubernetes。在這里你可以找到使用 Nginx 代理作為路由器的一些真實(shí)例子。
結(jié)論
對于我來說,用戶體驗(yàn)很棒,但是我也不確定我會不會繼續(xù)使用,因?yàn)橛袔讉€問題還在困擾著我:
1、Kubernetes ACS 版本還在預(yù)發(fā)布階段,有些功能還沒有實(shí)現(xiàn)(比如,你還不能對你的集群進(jìn)行縮容擴(kuò)容)。
2、使用成本較高,至少需要 4D2 個節(jié)點(diǎn),每月最高可能要花費(fèi) 1000 美元。使用相對小一點(diǎn)的實(shí)例也是可以的,但是,我的負(fù)載類型還不知道如何利用它。
3、目前還沒有可以創(chuàng)建系統(tǒng)的設(shè)備。類似于 docker-compose 能夠提供相關(guān)服務(wù)。
標(biāo)題名稱:Azure中部署Kubernetes具體方法
當(dāng)前鏈接:http://www.5511xx.com/article/cdjcjsc.html


咨詢
建站咨詢
