【Kubernetes交互教程】2 部署應用程序

交互式教程鏈接

        步驟1:kubectl基礎

        已將minikube, kubectl 在終端安裝完成,現在就可以使用啦!一般來說,kubectl的通用命令格式是:kubectl [action] [resource],它可以在指定的資源(如:節點node,容器container)上執行指定的操作(創建create,描述describe)。你可以在運行命令參數中使用--help來獲得更多可選參數。(如:kubectl get nodes --help)

        從Cluster中我們可以運行kubectl version命令檢查kubectl是否已配置完成。

        kubectl version

        好了,kubectl現已安裝完成,並且你可以看到客戶端client和服務端server的版本了。

        查看Cluster的節點情況,可以運行kubectl get nodes命令:

        kubectl get nodes

        從下面的輸出中我們可以看到一個有效節點,在我們部署應用程序的時候,Kubernetes將會從可用的節點中選擇一個。

 

        步驟2:部署應用程序

        讓我們在Kubernetes上使用kubectl create deployment命令部署我們的第一個應用程序吧!我們需要提供部署名稱和應用程序鏡像地址(包括鏡像地址外部的所有資源Url)。

        kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1

        很好,你現在使用deployment部署了你的第一個應用。

        這一步對你來說做了以下幾個步驟:

  • 在應用程序可以被運行的時候Master尋找可用節點(我們目前只有1個節點可用)
  • Master將該應用程度調度到節點上運行
  • 將集羣配置爲:當我們需要一個新節點的時候去重新調度實例(相當於Master調度完成後對節點各Pod和容器資源重新計算分配)        

        使用kubectl get deployments命令將所有deployments數據展示出來

        kubectl get deployments

        我們可以看到只有一個單一的實例運行在運行。它其實是使用Docker容器運行在你的節點中的。

       

        步驟3: 觀察我們的應用程序

        Pods在Kubernetes私有的內部隔離網絡中運行。默認情況下,Pods和服務在相同的kubernetes集羣內部是可見的,但是對集羣外來說是不可見的。當使用kubectl的時候,我們會通過API來與應用程序進行交互。

        作爲可選知識,我們將會在【模塊4】中介紹如何將你的應用程序暴露給外部。

        kubectl命令將會創建一個代理,它將會將你的通訊信息轉發到私有網絡的集羣中。在他運行的時候,你可以使用Ctrl+C的方式來中斷並且禁止它顯示任何輸出。

        我們現在打開2個終端窗口來運行代理proxy。

        kubectl proxy

        我們現在將在線終端和Kubernetes集羣鏈接上來,這個代理可以直接通過API訪問我們的終端。

        你可以瞭解所有API訪問的方式,例如,我們可以使用curl命令通過API 來獲取版本情況

        curl http://localhost:8001/version

        如果端口8001被佔用,請確保kubectl proxy是否正常運行。

        這個API服務將會通過Pod名稱,爲每一個Pod創建一個切點,用來控制代理對他們的訪問。

        首先,我們需要Pod名稱,並且我們需要設置環境變量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

        

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章