經常使用的kubectl命令
kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1
--image 指定鏡像
--port 是告訴kubernetes 應用監聽8080端口
--generator 一般不會用到,它讓kubernetes建立一個replicationController . 通常不帶這個參數 ,建立的是depoly資源,deploy 在調用replicaset資源,replicaset 和replicationController很像,好像是它的升級版本有更強的selector表達能力,並且這裏的--generator=run/v1 並非建立出的rc名稱是run/v1,建立出的rc就是kubia, run/v1多是標示rc的版本吧,具體不知道,反正後面不用這個,知道有這麼個東西便可
後續學習中,得知--generator=run/v1 就是告訴kubernetes須要建立一個rc來管理pod
若是是:kubectcl run dnsutils --image=tutum/dnsutils --generator=run-pod/v1 --command -- sleep infinity
這裏的--generator=run-pod/v1選項就是讓kubectl直接建立pod,而不須要經過replicationController之類的資源來建立。
kubectl get pods
kubectl expose rc kubia --type=loadBalancer --name kubia-http
暴露 名稱爲kubia的rc 爲名稱kubia-http 的service,而且使用loadbalnacer,會將建立kubia時 port端口8080 映射出來
kubectl get service
kubectl get repliactioncontrollers
kubectl scale rc kubia --replicas=3 擴容爲3個pod
kubectl get pods -o wide 查看pod在哪一個node節點上
kubectl describe pod pod-id
查看集羣狀態
kubectl cluster-info
使用kubectl explain 來發現可能的API對象字段,如:
kubectl explain pods
想查看某個對象下某個具體字段的使用方法
kubectl explain pod.spec
使用kubectl create 來建立pod
kubectl create -f kubia-manual.yaml
獲得運行中pod的完整定義
kubectl get pod kubia-manual -o yaml
kubectl get pod kubia-manual -o json
查看應用程序日誌
kubectl logs kubia-manual
當一個pod中有多個容器時
kubectl logs kubia-manual -c kubia
在不經過service外界相與pod通訊,可使用port-forward命令將短褲轉發到指定pod
如下命令會將機器的本地端口8888轉發到咱們的kubia-manual pod的端口8080:
kubectl port-forward kubia-manual 8888:8080
在kubernetes中 標籤時能夠組織kubernetes全部資源。
kubernetes 中建立出來的具體的對象都是資源。某一個資源 屬於某一個資源類如 pod資源類,或者對象。
查看全部pod上有什麼標籤
kubectl get po --show-labels
若是你想將標籤做爲顯示列的列頭可使用-L
kubectl get po -L env,app
添加pod標籤
kubectl label po kubia-manual env=test
修改pod的現有標籤
kubectl label po kubia-manual env=debug --overwrite
經過標籤選擇器列出pod
kubectl get po -l env=debug
列出包含evn標籤的pod,無論env是什麼值
kubectl get po -l env
列出不含evn標籤的pod
kubectl get po -l '!env' (確保是單引號)
env !=
env in (test,debug)
env not in (prod,devel)