k8s-應(yīng)用部署和組件及常用命令(2)
1、相關(guān)組件介紹:
node是k8s的集群節(jié)點(diǎn),和實(shí)際的機(jī)器對(duì)應(yīng)
pod是應(yīng)用容器,不同的應(yīng)用部署在不同的pod中,k8s協(xié)調(diào)資源,將pod部署到集群中的node節(jié)點(diǎn)上(非master節(jié)點(diǎn))。
同時(shí)pod又是掛在namespace下面的,命名空間之間互相隔離。
pause 管理多個(gè)應(yīng)用容器:搭建k8s集群的時(shí)候有一個(gè)鏡像名字就是 registry.k8s.io/pause:3.9
label 大規(guī)模管理pod
volume: 掛載應(yīng)用數(shù)據(jù),應(yīng)用產(chǎn)生的數(shù)據(jù)(如日志)和應(yīng)用配置數(shù)據(jù)(如configMap)
deployment : 應(yīng)用部署管理:rs副本管理
service/ingress: 應(yīng)用訪問,對(duì)外開放tcp、http、https
flannel: 節(jié)點(diǎn)間的網(wǎng)絡(luò)訪問的解決方案。我們部署時(shí)采用的這個(gè),也有其他的
2、常用操作指令
kubectl -h 查看命令信息:

具體命令的使用和參數(shù)也可以使用 kubectl 命令 -h 查看
2.1 get 查看
kubectl get -h
查看資源:get
查看node:
kubectl get nodes
查看命名空間:
kubectl get ns
查看pod:
kubectl get pods -A 查看所有命名空間的pod
kubectl get pods -n 命名空間 查看指定命名空間的pod
kubectl get pods -n kube-system 查看kube-system命名空間的pod
2.2、創(chuàng)建pod的方式
1.命令模式 run
kubectl run -h` 查看命令使用
kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client] [--overrides=inline-json]
[--command] -- [COMMAND] [args...] [options]
我們使用之前自己做的那個(gè)nginx鏡像來創(chuàng)建一個(gè)nginx。
kubectl run my-nginx --image=k8s-harbor.taoyao.com/nijunyang/my-nginx:1.29.1

kubectl describe pod my-nginx 查看my-nginx 詳細(xì)信息
kubectl logs my-nginx 查看my-nginx 日志
kubectl exec -it my-nginx -- bin/bash 進(jìn)入容器內(nèi)部進(jìn)行交互操作 進(jìn)入容器之后curl localhost 可以看到nginx的頁面內(nèi)容 exit 退出容器內(nèi)部交互
kubectl get pods 不指定命名空間,默認(rèn)使用是default
kubectl get pods -o wide 輸出一些擴(kuò)展信息

這里有個(gè)ip,這個(gè)ip就是這個(gè)pod在k8s中的ip,去到k8s的其他節(jié)點(diǎn)都能訪問:curl 10.244.1.2

2.yaml資源清單方式
kubectl get pod my-nginx -o yaml 以yaml方式查看資源信息,,這個(gè)是一個(gè)實(shí)際的狀態(tài)而k8s就是負(fù)責(zé)資源預(yù)期狀態(tài)到實(shí)際狀態(tài)。
kubectl run my-nginx --image=k8s-harbor.taoyao.com/nijunyang/my-nginx:1.29.1 --dry-run=client -o yaml 獲取這個(gè)資源創(chuàng)建的預(yù)期狀態(tài),--dry-run 不會(huì)實(shí)際執(zhí)行。

kind: Pod:說明這個(gè) YAML 文件定義的是一個(gè) Pod 資源
kubectl run my-nginx --image=k8s-harbor.taoyao.com/nijunyang/my-nginx:1.29.1 --dry-run=client -o yaml > nginx.yaml 把內(nèi)容寫到資源清單文件中去,用這個(gè)文件來創(chuàng)建資源
kubectl apply -f nginx.yaml 以資源清單方式創(chuàng)建資源
2.3 deployment 應(yīng)用部署管理器
deployment 應(yīng)用部署管理器,讓應(yīng)用向預(yù)期狀態(tài)靠近,比如 RS 副本管理,pod數(shù)量少了,就會(huì)自動(dòng)幫你啟動(dòng)到設(shè)置數(shù)量。
創(chuàng)建 deployment
命令方式:kubectl create deployment
kubectl create deployment NAME --image=image -- [COMMAND] [args...] [options]
kubectl create deployment my-nginx-deploment --image=k8s-harbor.taoyao.com/nijunyang/my-nginx:1.29.1

pod和deployment 還有rs 都創(chuàng)建好了
名字也有層級(jí)關(guān)系:deployment名字-RS名字-pod名字
資源清單方式:
kubectl create deployment my-nginx-deploment --image=k8s-harbor.taoyao.com/nijunyang/my-nginx:1.29.1 --dry-run=client -o yaml > my-nginx-deploment.yaml 把內(nèi)容寫到資源清單文件中去,用這個(gè)文件來創(chuàng)建資源

replicas 副本數(shù)改成2
kubectl apply -f my-nginx-deploment.yaml
直接就啟動(dòng)了兩個(gè)pod

2.4 資源對(duì)象擴(kuò)縮容:
edit:直接在現(xiàn)有的資源上修改屬性
scale:直接動(dòng)態(tài)調(diào)整數(shù)量
kubectl edit deployments.apps my-nginx-deploment 和vim操作一樣 i 編輯模式 :wq 退出保存

修改為三個(gè),保存之后k8s自動(dòng)給我們調(diào)整為了三個(gè)

kubectl scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT (-f FILENAME | TYPE NAME)
[options]
kubectl scale deployment my-nginx-deploment --replicas 5 設(shè)置為5個(gè)

基本也就差不多了,其他資源的創(chuàng)建方式也差不多,命令和yaml文件清單,推薦用文件方式。多使用幫助信息看看,再加上問AI,就差不多了

浙公網(wǎng)安備 33010602011771號(hào)