上市公司做網(wǎng)站源碼網(wǎng)站
一、陳述式管理
1.1、陳述式資源管理方法
- kubernetes 集群管理集群資源的唯一入口是通過相應(yīng)的方法調(diào)用 apiserver 的接口
- kubectl 是官方的 CLI 命令行工具,用于與 apiserver 進(jìn)行通信,將用戶在命令行輸入的命令,組織并轉(zhuǎn)化為apiserver 能識(shí)別的信息,進(jìn)而實(shí)現(xiàn)管理 k8s 各種資源的一種有效途徑
- kubectl 的命令大全
- kubectl --help
-
k8s官方中文文檔:http://docs.kubernetes.org.cn/683.html
- 對資源的增、刪、查操作比較容易,但對改的操作就不容易了
二、K8S相關(guān)信息查看
2.1 查看版本信息
kubectl version
2.2 查看節(jié)點(diǎn)信息
kubectl get nodes
2.3 查看資料對象簡寫
kubectl api-resources
2.4?查看集群信息
kubectl cluster-info
2.5?配置kubectl自動(dòng)補(bǔ)全
source <(kubectl completion bash)
可通過TAB鍵實(shí)現(xiàn)命令補(bǔ)全,建議將其寫入 /etc/profile或是~/.bashrc
2.6 查看日志
journalctl -u kubelet -f
三、 查看基本信息
##命令格式:
kubectl get [-o wide|json|yaml] [-n namespace]
獲取資源的相關(guān)信息,-n指定命名空間,-o指定輸出格式
resource可以是具體資源名稱,如"pod nhinx-xxx";也可以是資源類型,如“pod,node,svc,deploy”多種資源使用逗號間隔;或者all(僅展示幾種核心資源,并不完整)
- –all-namespaces或-A:表示顯示所有命名空間
- –show-labels:顯示所有標(biāo)簽
- -l app:僅顯示標(biāo)簽為app的資源
- -l app=nginx:僅顯示包含app標(biāo)簽,且值為nginx的資源
3.1、 查看master節(jié)點(diǎn)狀態(tài)
kubectl get componentstatuses#componentstatues可以縮寫成cs
kubectl get cs
3.2、 查看命名空間
kubectl get namespace#namespace可以縮寫成ns
kubectl get ns
獲取所有命名空間中的 Pod 列表
kubectl get pod --all-namespaces kubectl get pod -A#獲取所有命名空間中的 Pod 列表
3.3、 查看default命名空間的所有資源
kubectl get all [-n default]
由于deafult為缺省空間,當(dāng)不指定命名空間時(shí)默認(rèn)查看default命名空間
3.4、創(chuàng)建命名空間
kubectl create ns lyhdb
kubectl get ns
同一命名空間不能有相同的名字,不同命名空間可以有相同的名字
3.5、刪除命名空間
kubectl delete namespaces lyhdb
kubectl get ns
可以刪除,但是如果這個(gè)命名空間下面有資源,資源就都會(huì)被刪除,再三考慮哦
3.6、在命名空間kube-public 創(chuàng)建副本控制器(deployment)來啟動(dòng)Pod(nginx-ab)
kubectl create deployment nginx-ab --image=nginx -n kube-public#這個(gè)命令 kubectl create deployment nginx-ab --image=nginx -n kube-public 用于在命名空間 kube-public 中創(chuàng)建一個(gè)名為 nginx-ab 的 Deployment,并使用 nginx 鏡像作為 Deployment 中的容器。kubectl:Kubernetes 命令行工具,用于與 Kubernetes 集群進(jìn)行交互。
create deployment nginx-ab:創(chuàng)建一個(gè)名為 nginx-ab 的 Deployment。
--image=nginx:指定 Deployment 中要使用的容器鏡像為 nginx。
-n kube-public:指定要將 Deployment 創(chuàng)建在 kube-public 命名空間中。
kubectl create <pod控制器名> <pod名稱> --image=鏡像名
? ? ? ? ? ? ? ? ? ? ? ? ? Deployment:無狀態(tài)應(yīng)用部署
? ? ? ? ? ? ? ? ? ? ? ? ? Statefulset:有狀態(tài)應(yīng)用部署
? ? ? ? ? ? ? ? ? ? ? ? ? Replicaset:副本數(shù)量控制器
? ? ? ? ? ? ? ? ? ? ? ? ? Daemonset:確保所有節(jié)點(diǎn)運(yùn)行同一類 Pod
? ? ? ? ? ? ? ? ? ? ? ? ? Cronjob:計(jì)劃性任務(wù)
示例二
用kubectl create 創(chuàng)建
用于創(chuàng)建deployment 控制器管理的pod
?用run直接創(chuàng)建
run:用于創(chuàng)建一個(gè)自主式/靜態(tài) Pod
[root@master01 ~]#kubectl run qqq --image=nginx -n kube-public ##創(chuàng)建qqq
[root@master01 ~]#kubectl get pod -n kube-public
[root@master01 ~]#kubectl delete pod qqq -n kube-public ##刪除qqq
[root@master01 ~]#kubectl get pod -n kube-public
3.7、描述某個(gè)資源的詳細(xì)信息
kubectl describe deployment nginx-ab -n kube-publickubectl describe pod nginx-aa-66b8d4497f-cdj44 -n kube-public
3.8、查看命名空間kube-public中的pod信息
kubectl get pods -n kube-public
3.9、kubectl exec可以跨主機(jī)登錄容器,docker exec 只能在容器所在主機(jī)上登錄
[root@master01 ~]#kubectl exec -it nginx-ab-5f7467856-69mtq bash -n kube-public
示例二
[root@master01 ~]#kubectl get pods -n kube-public [root@master01 ~]#kubectl exec -it nginx-abc-64d49d89f5-lf8vc bash -n kube-public
kubectl get pods -n kube-public -owide#用于獲取在 kube-public 命名空間中運(yùn)行的所有 Pods 的詳細(xì)信息,包括它們的名稱、狀態(tài)、IP 地址等。 -n kube-public 參數(shù)指定了命名空間為 kube-public,而 -owide 參數(shù)指定了輸出的格式為 wide,這樣可以顯示更多的列。#將會(huì)列出在 kube-public 命名空間中運(yùn)行的所有 Pods,并顯示它們的詳細(xì)信息。
3.10、刪除(重啟)pod資源,由于存在deployment/rc之類的副本控制器,刪除pod也會(huì)重新拉起來
kubectl delete pod nginx-ab-5f7467856-69mtq -n kube-public
若pod無法刪除,總是處于terminate狀態(tài),則要強(qiáng)行刪除pod
kubectl delete pod <pod-name> -n <namespace> --force --grace-period=0
#grace-period表示過渡存活期,默認(rèn)30s,在刪除pod之前允許POD慢慢終止其上的容器進(jìn)程,從而優(yōu)雅退出,0表示立即終止pod
3.11、擴(kuò)縮容
?kubectl scale deployment nginx-bb --replicas=5 -n kube-public # 擴(kuò)容kubectl scale deployment nginx-bb --replicas=2 -n kube-public # 縮容kubectl scale pod控制器類型 資源名稱 --replicas=副本數(shù) -n 命名空間
##副本數(shù)決定擴(kuò)容還是縮容
3.11.1 擴(kuò)容
kubectl create deployment nginx-qw --image=nginx -n kube-public
kubectl get pods -n kube-public
kubectl scale deployment nginx-qw --replicas=5 -n kube-public ##擴(kuò)容5個(gè)副本
3.11.2縮容
##在擴(kuò)容的基礎(chǔ)上進(jìn)行縮容
kubectl scale deployment nginx-qw --replicas=2 -n kube-public
3.12、刪除副本控制器
kubectl get pods -n kube-public
kubectl delete deployments nginx-qw -n kube-public
kubectl get pods -n kube-public
kubectl delete deployment/nginx-ab -n kube-public
kubectl delete deployment/nginx-abc -n kube-public
kubectl delete deployment/abc -n kube-public
kubectl get pods -n kube-public
3.13、查看標(biāo)簽
kubectl get pod --show-labels #查看所有資源的標(biāo)簽
kubectl get pod -l app #指定標(biāo)簽的鍵查看,只顯示標(biāo)簽為app的資源
kubectl get pod -l app -A
kubectl get pod -l app=nginx-deployment #顯示包含app標(biāo)簽且值為nginx的資源
kubectl get pod -l app=nginx-deployment
kubectl get pod -l app=nginx-deployment -A