Kubernetes(K8s) kubectl 常用命令

文章目錄

      • 一、常用命令
        • 1.1 kubectl describe 命令
      • 二、kubectl 命令中的簡寫
      • 三、Helm
        • 3.1 常用命令:
        • 3.2 遇到的問題
          • 3.2.1 cannot re-use a name that is still in use
      • 四、Containerd

一、常用命令

??檢查 k8s 各節點狀態,確保k8s集群各節點狀態正常:

[root@k8s-master ~]# kubectl get nodes 
NAME         STATUS   ROLES                  AGE    VERSION
k8s-master   Ready    control-plane,master   130d   v1.23.1
k8s-node01   Ready    <none>                 130d   v1.23.1
k8s-node02   Ready    <none>                 130d   v1.23.1

??查看k8s的版本:

[root@k8s-master ~]# kubectl version
Client Version: v1.23.1
Server Version: v1.23.1

??kubectl 進入容器:

kubectl exec -it mysql-master-0 -n mysql -- /bin/bash
# 或者
kubectl exec -itn mysql pod/mysql-master-0 -- mysql -uroot -proot

??檢查 k8s 集群的系統 pod 狀態:

[root@k8s-master ~]# kubectl get pods -n kube-system 
NAME                                       READY   STATUS    RESTARTS     AGE
calico-kube-controllers-7bc6547ffb-2nf66   1/1     Running   1 (8d ago)   130d
calico-node-8c4pn                          1/1     Running   1 (8d ago)   130d
calico-node-f28qq                          1/1     Running   1 (8d ago)   130d
calico-node-wmc2j                          1/1     Running   1 (8d ago)   130d
coredns-6d8c4cb4d-6gm4x                    1/1     Running   1 (8d ago)   130d
coredns-6d8c4cb4d-7vxlz                    1/1     Running   1 (8d ago)   130d
etcd-k8s-master                            1/1     Running   1 (8d ago)   130d
kube-apiserver-k8s-master                  1/1     Running   1 (8d ago)   130d
kube-controller-manager-k8s-master         1/1     Running   1 (8d ago)   130d
kube-proxy-8dfw8                           1/1     Running   1 (8d ago)   130d
kube-proxy-ghzrv                           1/1     Running   1 (8d ago)   130d
kube-proxy-j867z                           1/1     Running   1 (8d ago)   130d
kube-scheduler-k8s-master                  1/1     Running   1 (8d ago)   130d

??檢查 k8s 集群的服務 servic 狀態:kubectl get svc -A

??檢查 k8s 集群控制器狀態:kubectl get deploy -Akubectl get statefulsets -Akubectl get daemonsets -A

??StatefulSet、Deployment 和 DaemonSet 是 Kubernetes 中常用的控制器,用于管理不同類型的應用。它們之間有以下幾點區別:

StatefulSet:

  • 用于管理有狀態應用程序,如數據庫。
  • 每個Pod都有一個唯一的穩定標識符,可以持久化地保留在Pod的整個生命周期中。
  • 可以按照指定的順序部署、擴展和終止Pod,以確保有狀態應用程序的穩定性。
  • 可以為每個Pod提供獨立的持久化存儲。

Deployment:

  • 用于管理無狀態應用程序,如Web服務。
  • 負責確保指定數量的Pod副本運行在集群中,無需關注Pod的順序或標識符。
  • 可以進行滾動更新,快速部署新版本的應用程序,并確保不中斷服務。
  • 適用于需要水平擴展的應用程序,例如負載均衡的Web服務。

DaemonSet:

  • 用于在集群中的每個節點上運行一個副本的Pod,通常用于運行后臺任務或監控代理。
  • 與Deployment不同,DaemonSet確保每個節點都有一個Pod副本運行,而不管節點的數量如何變化。
  • 可以用于部署一些與節點相關的服務,例如日志收集器或網絡代理。
1.1 kubectl describe 命令

??describe 獲得的是 resource 集群相關的信息,如某個 pod 并不是在 running 狀態,這時需要獲取更詳盡的狀態信息時,查相關日志信息,就應該使用 describe 命令。describe 常用的命令如下:

??查看某個 pod 的詳細信息:

kubectl describe pod hadoop-hadoop-yarn-rm-0 -n hadoop

??顯示所有 Node 的詳細信息:

kubectl describe nodes

??顯示所有 Pod 的詳細信息:

kubectl describe pods

??顯示一個 node 的詳細信息:

kubectl describe nodes k8s-minion

??顯示一個pod的詳細信息:

kubectl describe pods/nginx

??顯示 pod.json 中的資源類型和名稱指定的 pod:

kubectl describe -f pod.json

??顯示所有包含 label name=myLabel 的 pod:

kubectl describe po -l name=myLabel

??顯示所有被 replication controller “frontend” 管理的 pod(rc創建的 pod 都以 rc 的名字作為前綴):

kubectl describe pods frontend

注意:不同命令之間的選項都是相通,可以靈活使用。describe 命令同 get 類似,但是 describe 不支持 -o 選項。

參考:Kubernetes(K8s) kubectl describe常用命令

二、kubectl 命令中的簡寫

??kubectl 命令中可以使用的縮寫,具體如下:

certificatesigningrequests (縮寫 csr)
componentstatuses (縮寫 cs)
configmaps (縮寫 cm)
customresourcedefinition (縮寫 crd)
daemonsets (縮寫 ds)
deployments (縮寫 deploy)
endpoints (縮寫 ep)
events (縮寫 ev)
horizontalpodautoscalers (縮寫 hpa)
ingresses (縮寫 ing)
limitranges (縮寫 limits)
namespaces (縮寫 ns)
networkpolicies (縮寫 netpol)
nodes (縮寫 no)
persistentvolumeclaims (縮寫 pvc)
persistentvolumes (縮寫 pv)
poddisruptionbudgets (縮寫 pdb)
pods (縮寫 po)
podsecuritypolicies (縮寫 psp)
replicasets (縮寫 rs)
replicationcontrollers (縮寫 rc)
resourcequotas (縮寫 quota)
serviceaccounts (縮寫 sa)
services (縮寫 svc)
statefulsets (縮寫 sts)
storageclasses (縮寫 sc)

參考:
Kubernetes(K8s) kubectl replace常用命令

三、Helm

3.1 常用命令:

??列舉 chart 倉庫:

$ helm repo list
NAME       URL
stable     https://kubernetes-charts.storage.googleapis.com/
local      http://127.0.0.1:8879/charts

??卸載 release:

helm uninstall hbase-hdfs-ha -n hbase-hdfs-ha

??強制刪除 release:

kubectl delete ns hbase-hdfs-ha --force

??語法檢查:

helm lint ./hbase-hdfs-ha

??開始安裝:

helm install hbase-hdfs-ha ./hbase-hdfs-ha -n hbase-hdfs-ha --create-namespace

??上述命令可以寫入一個腳本中:

$ vim reinstall.sh
helm uninstall hbase-hdfs-ha -n hbase-hdfs-ha
# delete ns
kubectl delete ns hbase-hdfs-ha --forcehelm lint ./hbase-hdfs-ha# 開始安裝
helm install hbase-hdfs-ha ./hbase-hdfs-ha -n hbase-hdfs-ha --create-namespace
3.2 遇到的問題
3.2.1 cannot re-use a name that is still in use
root@k8s-bigdata01:/home/xiaoqiang# helm install hadoop ./hadoop -n hadoop --create-namespace
Error: INSTALLATION FAILED: cannot re-use a name that is still in useroot@k8s-bigdata01:/home/xiaoqiang# kubectl get pods -n hadoop
NAMESPACE              NAME                                                READY   STATUS             RESTARTS        AGE
hadoop                 hadoop-hadoop-hdfs-dn-0                             0/1     Pending            0               19h
hadoop                 hadoop-hadoop-hdfs-nn-0                             0/1     Pending            0               19h
hadoop                 hadoop-hadoop-yarn-nm-0                             0/1     ImagePullBackOff   0               19h
hadoop                 hadoop-hadoop-yarn-rm-0                             0/1     ImagePullBackOff   0               19h
root@k8s-bigdata01:/home/xiaoqiang# kubectl get svc -n hadoop
NAMESPACE              NAME                                               TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                               AGE
hadoop                 hadoop-hadoop-hdfs-dn                              ClusterIP   None             <none>        9000/TCP                              19h
hadoop                 hadoop-hadoop-hdfs-nn                              ClusterIP   None             <none>        9000/TCP,9870/TCP                     19h
hadoop                 hadoop-hadoop-yarn-nm                              ClusterIP   None             <none>        8088/TCP,8082/TCP,8042/TCP            19h
hadoop                 hadoop-hadoop-yarn-rm                              ClusterIP   None             <none>        8088/TCP                              19hroot@k8s-bigdata01:/home/xiaoqiang# helm -n hadoop ls -a
NAME  	NAMESPACE	REVISION	UPDATED                                	STATUS	CHART       	APP VERSION
hadoop	hadoop   	1       	2024-07-03 06:11:31.785366015 +0000 UTC	failed	hadoop-1.2.0	3.3.2      
root@k8s-bigdata01:/home/xiaoqiang# helm -n hadoop delete hadoop
release "hadoop" uninstalledroot@k8s-bigdata01:/home/xiaoqiang# kubectl get pods -n hadoop
No resources found in hadoop namespace.
root@k8s-bigdata01:/home/xiaoqiang# kubectl get svc -n hadoop
No resources found in hadoop namespace.

參考:
helm Error: INSTALLATION FAILED: cannot re-use a name that is still in use

四、Containerd

??主流容器運行時:

  • Docker:早期最流行的容器運行時,以其易用性和豐富的生態系統而聞名。Docker Engine實現了完整的容器生命周期管理,并提供了自己的鏡像分發倉庫和工具鏈。雖然Kubernetes已不再直接依賴Docker Engine,但許多集群仍使用Docker作為底層容器運行時。

  • containerd:由Docker公司開發,后成為CNCF項目。containerd專注于容器的生命周期管理,提供了一套輕量級、低層級的API,用于處理鏡像下載、容器運行等核心功能。它通常與cri-containerd(實現了CRI的插件)一起使用,作為Kubernetes的容器運行時。

  • CRI-O:紅帽主導的開源項目,專為Kubernetes設計,僅實現CRI接口,沒有額外的API或CLI工具。CRI-O直接與OCI(Open Container Initiative)兼容的運行時(如runc)交互,管理容器生命周期。相比Docker和containerd,CRI-O更輕量、簡潔。

??查看版本:

$ containerd --version
containerd github.com/containerd/containerd 1.7.12

??ctr 是一個用于管理 containerd 的命令行工具,可以用它來打包、拉取、上傳鏡像。以下是具體操作步驟:

??查看鏡像:

ctr images list
# 或者
crictl images list命令介紹:
ctr:是containerd本身的CLI
crictl:是Kubernetes社區定義的專門CLI工具

??通過 docker 或者其他方式構建好一個鏡像之后,可以使用 ctr 命令來打包該鏡像:

#ctr images import [image_file]
#例如:
ctr images import /path/to/myimage.tar

??刪除鏡像

ctr images rm docker.io/library/ubuntu:latest

??可以使用 ctr 命令來拉取一個鏡像:

#ctr images pull [image_name]
#例如:
ctr images pull docker.io/library/ubuntu:latest

??可以使用 ctr 命令來上傳一個本地鏡像到鏡像倉庫:

#ctr images push [image_name]
#例如:
ctr images push docker.io/myrepo/myimage:latest

??需要注意的是,需要先登錄到倉庫并獲取授權,才能上傳鏡像。可以使用 ctr 命令的 login 子命令來登錄倉庫,例如:

ctr login docker.io -u myusername -p mypassword

參考:containerd容器ctr命令打包、拉取、上傳鏡像

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41286.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41286.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41286.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

概率基礎——矩陣正態分布matrix normal distribution

矩陣正態分布-matrix normal distribution 定義性質應用 最近碰到了這個概念&#xff0c;記錄一下 矩陣正態分布是一種推廣的正態分布&#xff0c;它應用于矩陣形式的數據。矩陣正態分布在多維數據分析、貝葉斯統計和機器學習中有廣泛的應用。其定義和性質如下&#xff1a; 定…

Emacs之解決:java-mode占用C-c C-c問題(一百四十六)

簡介&#xff1a; CSDN博客專家&#xff0c;專注Android/Linux系統&#xff0c;分享多mic語音方案、音視頻、編解碼等技術&#xff0c;與大家一起成長&#xff01; 優質專欄&#xff1a;Audio工程師進階系列【原創干貨持續更新中……】&#x1f680; 優質專欄&#xff1a;多媒…

【django項目使用easycython編譯】Cannot convert Unicode string to ‘str‘ implicitly.

django項目編譯遇到的問題 報錯條件 需要編譯的python源碼里面的函數寫了type hint&#xff0c;尤其是return的type hint&#xff0c; 當type hint是str時&#xff0c;但是變量確實f-string格式化后得到的&#xff0c;編譯時會報錯 報錯原因 easycython會檢查變量類型&…

軟件開發中的原型開發與需求文檔開發:哪個更優?

1. 引言 在軟件開發過程中&#xff0c;選擇合適的開發方法對于項目的成功至關重要。基于原型開發和基于需求文檔開發是兩種常見的開發方法&#xff0c;各自有其優點和缺點。在項目復雜性、客戶需求和資源限制等因素的影響下&#xff0c;開發團隊需要慎重選擇適合的開發方法。 …

C++語言相關的常見面試題目(二)

1.vector底層實現原理 以下是 std::vector 的一般底層實現原理&#xff1a; 內存分配&#xff1a;當創建一個 std::vector 對象時&#xff0c;會分配一塊初始大小的連續內存空間來存儲元素。這個大小通常會隨著 push_back() 操作而動態增加。 容量和大小&#xff1a;std::vec…

element-plus 的form表單組件之el-radio(單選按鈕組件)

單選按鈕組件適用于同一組類型的選項只能互斥選擇的場景&#xff0c;就是支持單選。單選組件包含以下3個組件 組件名作用el-radio-group單選組組件&#xff0c;子元素可以是el-radio或el-radio-button&#xff0c;v-mode綁定單選組的響應式屬性el-radio單選組件&#xff0c;la…

階段三:項目開發---搭建項目前后端系統基礎架構:任務9:導入空管基礎數據

任務描述 本階段任務是導入項目的基礎數據&#xff0c;包括空管基礎數據和離線的實時飛行數據&#xff08;已經脫敏&#xff09;。 任務指導 本階段任務需要導入兩種數據&#xff1a; 1、在MySQL中導入空管基礎數據 kongguan.sql空管基礎數據表說明&#xff1a; 1告警信息…

OpenCV直方圖計算函數calcHist的使用

操作系統&#xff1a;ubuntu22.04OpenCV版本&#xff1a;OpenCV4.9IDE:Visual Studio Code編程語言&#xff1a;C11 功能描述 圖像的直方圖是一種統計表示方法&#xff0c;用于展示圖像中不同像素強度&#xff08;通常是灰度值或色彩強度&#xff09;出現的頻率分布。具體來說…

對MsgPack與JSON進行序列化的效率比較

序列化是將對象轉換為字節流的過程&#xff0c;以便在內存或磁盤上存儲。常見的序列化方法包括MsgPack和JSON。以下將詳細探討MsgPack和JSON在序列化效率方面的差異。 1. MsgPack的效率&#xff1a; 優點&#xff1a; 高壓縮率&#xff1a; MsgPack采用高效的二進制編碼格式&…

Embedding理解

一、概念 Embedding 可以理解為一種將概念、物體或信息轉換為數字序列的數值表示方法。它是溝通兩個不同世界或領域的橋梁,能夠把各種類型的數據(如文本、圖像、視頻等)映射到一個向量空間中。 在這個向量空間里,相似的項目(例如語義上相近的單詞、相似的圖像或相關的視…

cs231n作業1——SVM

參考文章&#xff1a;cs231n assignment1——SVM SVM 訓練階段&#xff0c;我們的目的是為了得到合適的 &#x1d44a; 和 &#x1d44f; &#xff0c;為實現這一目的&#xff0c;我們需要引進損失函數&#xff0c;然后再通過梯度下降來訓練模型。 def svm_loss_naive(W, …

【Qt】Qt概述

目錄 一. 什么是Qt 二. Qt的優勢 三. Qt的應用場景 四. Qt行業發展方向 一. 什么是Qt Qt是一個跨平臺的C圖形用戶界面應用程序框架&#xff0c;為應用程序開發者提供了建立藝術級圖形界面所需的所有功能。 Qt是完全面向對象的&#xff0c;很容易擴展&#xff0c;同時Qt為開發…

從打印到監測:納米生物墨水助力3D生物打印與組織監測平臺?

從打印到監測&#xff1a;納米生物墨水助力3D生物打印與組織監測平臺&#xff1f; 在 3D 組織工程中&#xff0c;納米生物墨水是將納米材料與 ECM 水凝膠結合&#xff0c;以提高其打印性和功能性的重要策略。納米生物墨水可以增強水凝膠的機械性能、導電性、生物活性&#xff…

汽車報價資訊app小程序模板源碼

藍色實用的汽車報價&#xff0c;汽車新聞資訊&#xff0c;最新上市汽車資訊類小程序前端模板。包含&#xff1a;選車、資訊列表、榜單、我的主頁、報價詳情、資訊詳情、詢底價、登錄、注冊、車貸&#xff0c;油耗、意見反饋、關于我們等等。這是一款非常全的汽車報價小程序模板…

MNIST 數據集 ubyte 格式介紹

train-images-idx1-ubyte 文件是用于存儲 MNIST 數據集中手寫數字圖像數據的文件。與標簽文件類似&#xff0c;這個文件使用的是一種簡單而緊湊的二進制格式。具體的文件格式如下&#xff1a; 文件頭&#xff08;Header&#xff09;&#xff1a; 文件頭部分包含了一些描述文件內…

Ubuntu 20版本安裝Redis教程,以及登陸

第一步 切換到root用戶&#xff0c;使用su命令&#xff0c;進行切換。 輸入&#xff1a; su - 第二步 使用apt命令來搜索redis的軟件包&#xff0c;輸入命令&#xff1a;apt search redis 第三步 選擇需要的redis版本進行安裝&#xff0c;本次選擇默認版本&#xff0c;redis5.…

Emacs 的優點及與 DE 的比較

一、引言 在編程領域&#xff0c;對于工具的選擇一直是開發者們熱議的話題。今天&#xff0c;我們來探討一下 Emacs 及其所具有的優點&#xff0c;并思考使用 Emacs 寫程序是否真的比使用集成開發環境&#xff08;IDE&#xff09;更方便。 二、Emacs 的優點 高度可定制性 可以…

mac如何安裝nvm

? vue項目開發&#xff0c;熱更新&#xff0c;webpack&#xff0c;前輩造的輪子&#xff1a;各類的工具&#xff0c;庫&#xff0c;像axios,qs,cookie等輪子在npm上可以拿來直接用&#xff0c;需要node作為環境支撐。 開發時同時有好幾個項目&#xff0c;每個項目的需求不同…

Tornado:高性能異步Web框架詳解

文章目錄 引言官網鏈接Tornado 原理1. 非阻塞I/O2. 異步編程3. 事件循環4. 輕量級 使用方法安裝Tornado創建一個簡單的Web服務器 優缺點優點缺點 結論 引言 在Web開發的廣闊領域中&#xff0c;處理高并發和實時性需求一直是開發者們面臨的挑戰。Tornado&#xff0c;作為一個由…

威綸通創建項目創建(輸入,輸出,畫面切換使用)

創建一個項目 1&#xff0c;打開軟件 2&#xff0c;創建項目&#xff0c;設置系統參數 增加設備&#xff0c;選擇好對應型號&#xff08;有市面上80%設備&#xff09; 3&#xff0c;修改頁面&#xff0c;選擇參數 4&#xff0c;創建新頁面 不能在已經編輯的頁面進行新增 5&a…