自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

K8S學(xué)習(xí),你需要掌握的知識!

運(yùn)維
通過kubectl命令可以操作和管理K8S資源,對于初學(xué)者可以在掌握K8S基礎(chǔ)命令的基礎(chǔ)上再去學(xué)習(xí)K8s的原理和架構(gòu),那么K8S常用的命令有哪些呢?來看一下吧。

1、K8S命令概述

在學(xué)習(xí)K8s基礎(chǔ)命令前,了解和學(xué)習(xí)docker命令是很有必要的,kubectl和docker很多命令都有相通之處。

docker ps #查看所有up狀態(tài)容器
docker ps -a#查看所有狀態(tài)的容器
docker inspect containerid#查看容器詳情
docker images #查看容器鏡像
docker start/stop/restart containerid #啟動/停止/重啟容器
docker exec -it containerid bash #進(jìn)入容器
docker exec containerid bash -c 'uptime' #容器外執(zhí)行命令
docker rmi imageid #刪除鏡像
docker rm containerid #刪除容器
  • K8S常用命令;

圖片

2、K8S集群資源操作

  • 集群資源查看
kubectl get cs  #集群健康情況
kubectl version #K8S集群版本查看
kubectl get node #查看集群節(jié)點(diǎn)
kubectl get pods -o wide -A #查看所有命命空間pod
-n #后跟指定命名空間
--all-namespaces #等同于-A
kubect get deployments -A
kubectl get svc,ep -A #查看svc和endpoints
  • 標(biāo)簽查看
kubectl get pod --show-labels #查看pod標(biāo)簽
kubectl get node --show-labels #查看node標(biāo)簽
  • 資源配置查看

查看配置

kubectl get deployments.apps nginxtest-xxx -oyaml #查看deployment資源
kubectl get pods nginxtest-xxx -oyaml #查看pod資源配置
  • 資源限制

查看是否有資源限制

kubectl describe node 192.168.1.2Capacity:
cpu: 16
ephemeral-storage: 524030980Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 82320508Ki
pods: 253
Allocatable:
cpu: 15100m
ephemeral-storage: 520373252Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 79101052Ki
pods: 253

capacity代表減去系統(tǒng)預(yù)留的資源總量。

Allocatable可分配給K8S資源的總量。

pod資源限制,防止單個服務(wù)占用資源過高影響其他pod,達(dá)到limits數(shù)值后會oom重啟。

kubectl get pods  nginx-test -oyaml  | grep -A 6   resources
resources:
limits:
cpu: "5"
memory: 5000Mi
requests:
cpu: 55m
memory: 100Mikubectl --help 多用help

3、K8S運(yùn)維場景

  • 副本擴(kuò)容

通過副本擴(kuò)容實(shí)現(xiàn)流量分?jǐn)?,避免單個節(jié)點(diǎn)負(fù)載過高,建議資源中增加反親和性,達(dá)到不同副本調(diào)度到不同node

kubectl scale deployment nginx-test --replicas=2   #副本擴(kuò)容
kubectl edit deployment nginx-test #直接編輯修改spec.replicas標(biāo)簽擴(kuò)容
  • 進(jìn)入pod
kubectl exec -it podname bash  #或者sh
-n 指定名字空間
kubectl exec nginx-965048598-jt28d -n test uptime #不進(jìn)入容器,只獲取命令輸出
  • pod刪除操作
kubectl delete  pods nginx-test-6fc6d8666b-mhl48 #常規(guī)刪除
kubectl delete pod -l app=test #基于標(biāo)簽刪除,批量操作效率高
kubectl delete pods nginx-test -n dev --grace-period=0 --force #強(qiáng)制刪除,沒有terminationGracePeriodSeconds 30s的時間

還可以通過kubectl scale命令將副本縮為0的方式刪除pod

  • pod污點(diǎn)

對于設(shè)置了污點(diǎn)的服務(wù),普通pod無法調(diào)用到此節(jié)點(diǎn),只有增加了Tolerations容忍配置才可以。

[root@wpseco-node-1 log]# kubectl describe node 192.168.0.1  | grep Taints
Taints: <none>
kubectl taint node 192.168.0.1 test-access-node=:NoSchedule --overwrite=true #污點(diǎn)添加
kubectl taint node 192.168.0.1 test-access-node:NoSchedule- #污點(diǎn)刪除

其中[effect] 可取值: 

    NoSchedule :一定不能被調(diào)度(新來的不要來,在這的就別動了)

    PreferNoSchedule:盡量不要調(diào)度(盡量不要來,除非沒辦法) 

    NoExecute:不僅不會調(diào)度,還會驅(qū)逐Node上已有的Pod

  • pod文件拷貝
kubectl cp my_item.tar.gz redis-6c98cb5b5f-nxb59:/tmp/   #宿主機(jī)拷貝到容器內(nèi)
kubectl cp redis-6c98cb5b5f-nxb59:/tmp/start.sh ./start.sh #pod內(nèi)文件拷貝到宿主機(jī)
  • 靜態(tài)pod

靜態(tài)pod 是由 kubelet 管理的,只在特定node上存在的pod;靜態(tài)pod總是由kubelet創(chuàng)建的,并且只在kubelet所在的Node上運(yùn)行。靜態(tài)pod 不能通過 api-server來管理,無法和 RC,RS,Deployment或者 DaemonSet進(jìn)行關(guān)聯(lián);并且 kubelet無法對靜態(tài)pod 進(jìn)行健康檢查。

靜態(tài)pod資源文件默認(rèn)存放路徑/etc/kubernetes/manifests,也可以直接查看kubelet啟動參數(shù)staticPodPath: /etc/kubernetes/manifests配置確定。?

kubectl exec -it  kafka-1-192.168.0.1 -c kafka sh #進(jìn)入靜態(tài)pod
-c #po有多個容器要加-c指定
kubectl logs kafka-1-192.168.0.1 -c kafka

4、K8S問題定位

處理K8S環(huán)境問題,首先要了解pod的生命周期和pod的狀態(tài)

圖片

常見狀態(tài)原因

  • ImagePullBackOff    鏡像拉取失敗,網(wǎng)絡(luò)不通,鏡像名稱有誤或者鏡像倉庫認(rèn)證失敗都可能有這個報(bào)錯。
  • CrashLoopBackOff  探針檢測失敗,服務(wù)對網(wǎng)絡(luò)或者其他pod服務(wù)有依賴等,此外宿主機(jī)上的安全軟件可能也會導(dǎo)致容器無法正常啟動。
  • Pending    一般是調(diào)度失敗,pod沒有可調(diào)度的節(jié)點(diǎn),常見原因:節(jié)點(diǎn)有污點(diǎn),不滿足節(jié)點(diǎn)親和性,或者節(jié)點(diǎn)處于notready狀態(tài)。
  • Evicted  當(dāng)節(jié)點(diǎn)內(nèi)存、磁盤或者cpu資源不足時,K8s 會按照 QoS 等級對節(jié)點(diǎn)上的某些 Pod 進(jìn)行驅(qū)逐,釋放資源保證節(jié)點(diǎn)可用性,kubelet可以配置內(nèi)存,cpu和磁盤的驅(qū)逐閾值。
  • Terminating  pod刪除后超過terminationGracePeriodSeconds參數(shù)時間還處于Terminating狀態(tài)可能是存在節(jié)點(diǎn)故障,和master節(jié)點(diǎn)失聯(lián),可以檢查節(jié)點(diǎn)狀態(tài)或者嘗試重啟kubelet
  • Completed 此狀態(tài)通常是job類的pod執(zhí)行完成了正常退出容器。
  • Init:Error pod初始化失敗,可以查看init pod的日志定位。

問題定位經(jīng)常需要使用如下命令:

kubectl logs -f   podname
kubectl logs -f -l app=nginx-test #多副本情況下,可以看到所有pod日志
kubectl describe pods podname #pod啟動日志
kubectl describe node 192.168.0.1 #節(jié)點(diǎn)狀態(tài)日志
kubectl get events #查看集群事件
系統(tǒng)服務(wù)查看
systemctl status kubelet/docker/etcd
系統(tǒng)服務(wù)日志查看
journalctl -xeu kubelet/docker
--since指定時間
  • K8S學(xué)習(xí)資料

??https://kubernetes.io/zh-cn/docs/home/???

責(zé)任編輯:龐桂玉 來源: 運(yùn)維之美
相關(guān)推薦

2022-12-07 17:33:50

K8Skubernetes

2022-08-15 09:49:28

K8s云原生

2022-04-22 13:32:01

K8s容器引擎架構(gòu)

2023-11-06 07:16:22

WasmK8s模塊

2025-02-27 08:09:52

2022-11-02 10:21:41

K8s pod運(yùn)維

2024-03-04 18:42:11

網(wǎng)絡(luò)策略k8s網(wǎng)絡(luò)通信

2023-10-27 08:39:50

KubernetesK8s

2023-12-05 18:16:59

LTS版本K8s

2025-01-07 14:36:12

2023-06-06 08:14:18

核心Docker應(yīng)用程序

2023-09-06 08:12:04

k8s云原生

2024-01-26 14:35:03

鑒權(quán)K8sNode

2024-07-03 08:33:08

2024-09-26 18:04:02

2020-04-16 09:00:00

機(jī)器學(xué)習(xí)Kubeflow人工智能

2025-01-03 09:07:51

2024-05-10 08:00:48

K8soperatorGitHub

2021-08-31 09:55:57

服務(wù)開發(fā)K8S

2020-05-12 10:20:39

K8s kubernetes中間件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號