步驟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