【看這一篇就夠了】kubernetes入門命令列操作(例項演示)
寫在前面:網上找了好久終於找到了期盼已久的、一個一眼就能理解的kubernetes“整體全過程”文章。
建議看這篇文章可以結合kubernetes官網(www.kubernetes.io)的Tutorial進行演練,效果很好。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kubectl是kubernetes自帶的管理工具,封裝了對api-server的呼叫,可以用它通過命令與k8s叢集進行互動,kubectl將命令列轉為json字串,提交給api-server,完成相關命令!可以通過kubectl --help命令檢視官方幫助文件,也可以登入官方網站查閱!下面例項演示相關命令的具體使用。
1.在叢集中執行一個應用程式(nginx)
[[email protected] ~]# kubectl run nginx-test --replicas=3 --labels='app=nginx' --image=nginx:1.10 --port=80
kubectl run
使用kubectl run 命令啟動一個pod,自定義名字為nginx-test,啟動3個副本,並且給這個pod打上一個標籤app=nginx,這個pod中拉取nginx:1.10的映象,並且開放80埠。
2.檢視叢集中所有的pod
kubectl get
3.根據label檢視pod
kubectl get po -l 具體key或者key=value值
kubectl get
4.檢視pod的具體分配節點和pod的ip
[[email protected] ~]# kubectl get pods -l app -o wide
kubectl get
5.檢視pod的內部詳細資訊
[[email protected] ~]# kubectl describe pods
kubectl describe
kubectl describe pod 是檢視所有的pod的詳細資訊,檢視具體的可以在pod後面指定。
6.檢視叢集中的deployment
[[email protected] ~]# kubectl get deploy
deploy
7.檢視叢集中的ReplicaSet
[[email protected] ~]# kubectl get rs
rs
8.檢視 deploy,rs,pod的關係
通過kubectl describe 具體的deploy,rs,pod可以看出pod是由rs生成的,rs是被deploy控制的,所以官方建議通過管理deploy來操作整個叢集
pod與rs
rs與deploy
9.通過標籤來檢視具體的pod和deploy
[[email protected] ~]# kubectl get deploy -l app
[[email protected] ~]# kubectl get po -l app
label
10.建立一個服務service,叢集中的資源通過服務與外界進行互動
[[email protected] ~]# kubectl expose deploy nginx-test --port=8088 --target-port=80 --name=nginx-svc
kubectl expose
k8s叢集是通過deploy來管理的,所以在建立服務時,實際上是給相應的deploy建立服務,案例中通過kubectl expose命令暴漏了deploy的外部埠為8088,內部埠為80,並且給建立的服務自定義命名為nginx-svc。
11.檢視建立的服務
[[email protected] ~]# kubectl get svc
檢視到叢集給建立的服務自動分配了一個ip地址為10.10.10.205,通過這個ip和8088埠,可以在叢集中的任意一個節點上訪問服務
svc
svc
11.檢視pod中容器的日誌
[[email protected] ~]# kubectl log nginx-test-54c74947d4-fck7m
kubectl log 檢視指定的pod
log
[[email protected] ~]# kubectl log -l app
kubectl log -l 標籤 檢視所有該標籤下的pod容器日誌
log
kubectl log還可以配合 -f,tail引數跟蹤日誌
12.pod副本的擴容與縮容
[[email protected] ~]# kubectl scale deploy nginx-test --replicas=10
通過kubectl scale命令操控具體的deploy實現相應pod擴容
scale
通過kubectl get pod 可以檢視擴容進度
scale
還可以通過命令rollout status檢視實時進度
[[email protected] ~]# kubectl rollout status deploy nginx-test
rollout status
pod副本的縮容,通理擴容,改變副本數量即可
[[email protected] ~]# kubectl scale deploy nginx-test --replicas=2
13.刪除資源
pod與rs是不能直接刪除的,因為他們是被deploy控制的,即使刪除了某一個pod或rs,deploy會立刻自動建立新的pod,來與配置中副本對應。
要想刪除pod和rs,只能刪除對應的deploy,使用 kubectl delete 可以刪除deploy和svc。
[[email protected] ~]# kubectl delete deploy nginx-test
delete
[[email protected] ~]# kubectl delete svc nginx-svc
delete
轉載自:http://www.360doc.com/content/18/0225/21/11935121_732436265.shtml