文章目錄
- minikube安裝
- kubectl
-
- 檢視叢集資訊:
- 檢視叢集節點
- 檢視k8s對象的更多資訊
- 為kubectl設定别名和指令行補齊
- 建立别名
- 為kubectl配置tab補全
- 運作第一個應用
- pod
-
- 列出pod
- 通路應用
-
- 建立一個服務對象
- 為什麼需要服務
- 增加期望的副本數
- k8s dashboard
minikube安裝
安裝參考
dashboard暴露外部通路
啟動後通路
kubectl
管理k8s指令行工具。
檢視叢集資訊:
kubectl cluster-info
檢視叢集節點
kubectl get nodes
kubectl get指令可以檢視各種k8s對象資訊。但隻會顯示對象最基本的資訊。
檢視k8s對象的更多資訊
kubectl describe node master136
輸出顯示了非常多的資訊,包含節點的狀态、CPU和記憶體資料、系統資訊、運作容器的節點等。
可以直接運作kubectl describe node來列出所有的節點資訊。
為kubectl設定别名和指令行補齊
建立别名
alias k=kubectl
可以将上述指令放入~/.bashrc檔案中,來避免重新開機失效。通過source ~/.bashrc來使其echo “source <(kubectl completion bash)” >> ~/.bashrc
生效。
為kubectl配置tab補全
可以為bash和zsh shell補全,可以補全指令名和對象名,如:
kubectl desc<TAB> no<TAB> mas<TAB>
需要安裝bashcompletion包,運作如下指令:
yum install bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
為了支援别名,需要使用如下指令修複:
source<(kubectl completion bash | sed s/kubectl/k/g)
運作第一個應用
最簡單的方式是使用kubectl run指令來部署應用,這樣可以建立必須的元件而無需JSON或YAML檔案。這樣就不需要了解每個元件對象的結構。如下:
kubectl run kubia --image=dockerbzb/kubia --port=8080 --generator=run/v1
pod
k8s并不管理容器,它使用共存容器的理念。這組容器就是pod。
一個pod是一組緊密相關的容器,它總是運作在同一個工作節點上,以及同一個命名空間中。它就像一個獨立的邏輯機器,擁有自己的IP、主機名、程序。
列出pod
無法列出單個容器,因為它們不是獨立的k8s對象。但可以列出pod。
kubectl get pods
擷取詳細資訊
kubectl describe podstrfws2qa
通路應用
pod的ip隻能通過内部通路。要讓它從外部通路,需要通過服務對象公開它,需要建立特殊的LoadBalancer類型的服務,将建立一個外部的負載均衡,可以通過負載均衡的公共IP通路pod。
建立一個服務對象
kubectl expose rc kubia --type=LoadBalancer --name kubia-http
可以使用k8s的縮寫,如rc表示ReplicaitonController,srv表示service。
列出服務
kubectl get services
MiniKube不支援LoadBalancer類型的服務。可以使用如下指令擷取服務的IP和端口。
minicube service kubia-http
為什麼需要服務
pod的存在是短暫的,一個pod可以在任何時刻被删除,可能是它所在的節點故障,或者有人删除了pod,或者pod被所在的健康節點剔除了。但pod被重新建立時,它的ip會發生變化。
服務被建立時,會得到一個靜态的IP。在服務的生命周期内保持不變。用戶端連接配接到服務的靜态IP,由服務負載均衡轉發到pod。
服務表示一組提供相同服務的pod。
增加期望的副本數
kubectl scale rc kubia --replicas=3
在k8s中,基本原則是不要告訴k8s應該做什麼,而是聲明性地改變系統的期望狀态,并讓k8s檢查目前的狀态是否和期望的狀态一緻。
k8s并不會讓應用變得可擴充,應用本身需要支援擴縮容,它隻是讓應用的擴縮容變得簡單。
kubectl get pods -o wide
使用上面的指令顯示更多資訊,包括節點資訊。
k8s dashboard
k8s的圖形化視圖,可以檢視k8s的pod、ReplicaitonController、服務和其他部署在k8s中的對象。以及建立、修改、删除它們。