溫馨提示×

溫馨提示×

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

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

怎樣使用kubectl的Deployment創(chuàng)建App

發(fā)布時間:2021-11-10 16:50:11 來源:億速云 閱讀:287 作者:柒染 欄目:云計算

這篇文章將為大家詳細(xì)講解有關(guān)怎樣使用kubectl的Deployment創(chuàng)建App,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

Kubernetes Deployments

kubectl 的Deployment 功能可以指令Kubernetes 如何創(chuàng)建和更新應(yīng)用實例。通過kubectl 命令創(chuàng)建一個deployment后,Kubernetes master 會調(diào)度deployment配置好的應(yīng)用實例到集群特定的節(jié)點運行。

一旦應(yīng)用實例被創(chuàng)建好之后,Kubernetes Deployment Controller 會持續(xù)監(jiān)控這些實例。如果運行這些實例的節(jié)點down機(jī)或被刪除,Deployment controller 會替換掉它。所以Kubernetes 提供了一種自修復(fù)機(jī)制來處理機(jī)器故障或維護(hù)。

進(jìn)入下面的鏈接進(jìn)行部署應(yīng)用練習(xí)。

練習(xí)環(huán)境:https://kubernetes.io/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/

  1. 終端輸入kubectl get nodes命令可以來查看當(dāng)前集群

  2. kubectl run命令

    run命令創(chuàng)建一個新的部署。 我們需要提供部署名稱和應(yīng)用程序鏡像位置 。 如果希望在特定端口上運行應(yīng)用程序,需要添--port參數(shù) :

    kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080

    上面的命令通過創(chuàng)建deployment部署了一個應(yīng)用程序,命令完成了幾件事:

    • 搜索可以運行應(yīng)用程序?qū)嵗倪m當(dāng)節(jié)點(目前只有一個)。

    • 調(diào)度應(yīng)用程序在該節(jié)點上運行。

    • 配置集群,以便在需要時重新調(diào)度新節(jié)點上的實例。

  3. kubectl get deployments此命令可以查看剛才新創(chuàng)建的部署

  4. 查看 app

    在Kubernetes內(nèi)部運行的Pods運行在一個私有的、隔離的網(wǎng)絡(luò)上。默認(rèn)情況下,它們可以從同一個kubernetes集群內(nèi)的其他pod和服務(wù)中看到,但不能從 集群 網(wǎng)絡(luò)之外看到。 當(dāng)我們使用kubectl時,我們通過API端點與應(yīng)用程序進(jìn)行交互。

    kubectl命令可以創(chuàng)建一個代理,將通信轉(zhuǎn)發(fā)到集群范圍的私有網(wǎng)絡(luò)。按control-C可以終止代理,運行時不會顯示任何輸出。

    打開第二個終端窗口來運行代理。 kubectl proxy

    現(xiàn)在我們在主機(jī)(在線終端)和Kubernetes集群之間建立了連接。代理允許從這些終端直接訪問API。您可以看到通過代理端點托管的所有這些api,現(xiàn)在可以通過http://localhost:8001獲得這些api。例如,我們可以使用curl命令直接通過API查詢版本: curl http://localhost:8001/version

    API服務(wù)器將根據(jù)pod名稱為每個pod自動創(chuàng)建端點,這些端點也可以通過代理訪問。

    首先我們需要獲得Pod名稱,我們將存儲在環(huán)境變量POD_NAME中: export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}') echo "Name of the Pod: $POD_NAME"

    現(xiàn)在,我們可以向在該pod中運行的應(yīng)用程序發(fā)出HTTP請求: curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/

    結(jié)果如圖:怎樣使用kubectl的Deployment創(chuàng)建App

關(guān)于怎樣使用kubectl的Deployment創(chuàng)建App就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI