【云原生】K8s管理工具--Kubectl詳解(一)

一、陳述式管理

1.1、陳述式資源管理方法

  1. kubernetes 集群管理集群資源的唯一入口是通過相應的方法調用 apiserver 的接口
  2. kubectl 是官方的 CLI 命令行工具,用于與 apiserver 進行通信,將用戶在命令行輸入的命令,組織并轉化為apiserver 能識別的信息,進而實現管理 k8s 各種資源的一種有效途徑
  3. kubectl 的命令大全
  4. kubectl --help
  5. k8s官方中文文檔:http://docs.kubernetes.org.cn/683.html
  6. 對資源的增、刪、查操作比較容易,但對改的操作就不容易了

二、K8S相關信息查看

2.1 查看版本信息

kubectl version

2.2 查看節點信息

kubectl get nodes

2.3 查看資料對象簡寫

kubectl api-resources

2.4?查看集群信息

kubectl cluster-info

2.5?配置kubectl自動補全

source <(kubectl completion bash)

可通過TAB鍵實現命令補全,建議將其寫入 /etc/profile或是~/.bashrc

2.6 查看日志

journalctl -u kubelet -f

三、 查看基本信息

##命令格式:
kubectl get [-o wide|json|yaml] [-n namespace]

獲取資源的相關信息,-n指定命名空間,-o指定輸出格式
resource可以是具體資源名稱,如"pod nhinx-xxx";也可以是資源類型,如“pod,node,svc,deploy”多種資源使用逗號間隔;或者all(僅展示幾種核心資源,并不完整)

  1. –all-namespaces或-A:表示顯示所有命名空間
  2. –show-labels:顯示所有標簽
  3. -l app:僅顯示標簽為app的資源
  4. -l app=nginx:僅顯示包含app標簽,且值為nginx的資源

3.1、 查看master節點狀態

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為缺省空間,當不指定命名空間時默認查看default命名空間

3.4、創建命名空間

kubectl create ns lyhdb
kubectl get ns

同一命名空間不能有相同的名字,不同命名空間可以有相同的名字

3.5、刪除命名空間

kubectl delete namespaces lyhdb
kubectl get ns

可以刪除,但是如果這個命名空間下面有資源,資源就都會被刪除,再三考慮哦

3.6、在命名空間kube-public 創建副本控制器(deployment)來啟動Pod(nginx-ab)

 kubectl create deployment nginx-ab --image=nginx -n kube-public#這個命令 kubectl create deployment nginx-ab --image=nginx -n kube-public 用于在命名空間 kube-public 中創建一個名為 nginx-ab 的 Deployment,并使用 nginx 鏡像作為 Deployment 中的容器。kubectl:Kubernetes 命令行工具,用于與 Kubernetes 集群進行交互。
create deployment nginx-ab:創建一個名為 nginx-ab 的 Deployment。
--image=nginx:指定 Deployment 中要使用的容器鏡像為 nginx。
-n kube-public:指定要將 Deployment 創建在 kube-public 命名空間中。

kubectl create <pod控制器名> <pod名稱> --image=鏡像名

? ? ? ? ? ? ? ? ? ? ? ? ? Deployment:無狀態應用部署

? ? ? ? ? ? ? ? ? ? ? ? ? Statefulset:有狀態應用部署

? ? ? ? ? ? ? ? ? ? ? ? ? Replicaset:副本數量控制器

? ? ? ? ? ? ? ? ? ? ? ? ? Daemonset:確保所有節點運行同一類 Pod

? ? ? ? ? ? ? ? ? ? ? ? ? Cronjob:計劃性任務

示例二

用kubectl create 創建

用于創建deployment 控制器管理的pod

?用run直接創建

run:用于創建一個自主式/靜態 Pod

[root@master01 ~]#kubectl run qqq --image=nginx -n kube-public   ##創建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、描述某個資源的詳細信息

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可以跨主機登錄容器,docker exec 只能在容器所在主機上登錄

[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 命名空間中運行的所有 Pods 的詳細信息,包括它們的名稱、狀態、IP 地址等。 -n kube-public 參數指定了命名空間為 kube-public,而 -owide 參數指定了輸出的格式為 wide,這樣可以顯示更多的列。#將會列出在 kube-public 命名空間中運行的所有 Pods,并顯示它們的詳細信息。

3.10、刪除(重啟)pod資源,由于存在deployment/rc之類的副本控制器,刪除pod也會重新拉起來

kubectl delete pod nginx-ab-5f7467856-69mtq -n kube-public

若pod無法刪除,總是處于terminate狀態,則要強行刪除pod

kubectl delete pod <pod-name> -n <namespace> --force --grace-period=0
#grace-period表示過渡存活期,默認30s,在刪除pod之前允許POD慢慢終止其上的容器進程,從而優雅退出,0表示立即終止pod

3.11、擴縮容

?kubectl scale deployment nginx-bb --replicas=5 -n kube-public   # 擴容kubectl scale deployment nginx-bb --replicas=2 -n kube-public   # 縮容kubectl  scale pod控制器類型 資源名稱 --replicas=副本數  -n 命名空間
##副本數決定擴容還是縮容

3.11.1 擴容

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      ##擴容5個副本

3.11.2縮容

##在擴容的基礎上進行縮容
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、查看標簽

kubectl get pod --show-labels  #查看所有資源的標簽
kubectl get pod -l app         #指定標簽的鍵查看,只顯示標簽為app的資源
kubectl get pod -l app -A
kubectl get pod -l app=nginx-deployment #顯示包含app標簽且值為nginx的資源

kubectl get pod -l app=nginx-deployment
kubectl get pod -l app=nginx-deployment -A

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

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

相關文章

Elasticsearch集群和Logstash、Kibana部署

1、 Elasticsearch集群部署 服務器 安裝軟件主機名IP地址系統版本配置ElasticsearchElk10.3.145.14centos7.5.18042核4GElasticsearchEs110.3.145.56centos7.5.18042核3GElasticsearchEs210.3.145.57centos7.5.18042核3G 軟件版本&#xff1a;elasticsearch-7.13.2.tar.gz 示…

ubuntu18 安裝python3.8

在Ubuntu 18.04上安裝Python 3.8可以通過以下步驟完成&#xff1a; 1.更新包列表和已安裝的包&#xff1a; sudo apt update sudo apt upgrade 2.安裝依賴項&#xff1a; sudo apt install -y software-properties-common 3.添加Python 3.8的PPA&#xff08;個人包歸檔&am…

【Docker系列】 Docker容器具體信息查詢

&#x1f49d;&#x1f49d;&#x1f49d;歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

Python函數進階:四大高階函數、匿名函數、枚舉、拉鏈與遞歸詳解

系列文章目錄 Python數據類型&#xff1a;編程新手的必修課深入探索Python字符串&#xff1a;技巧、方法與實戰Python 函數基礎詳解Python正則表達式詳解&#xff1a;掌握文本匹配的魔法Python文件操作寶典&#xff1a;一步步教你玩轉文件讀寫Python面向對象基礎與魔法方法詳解…

databricks~Unity Catalog

Unity Catalog hierarchy 包含了用戶授權管理信息和元數據信息 workspace with unity catalog hierarchy unity metastore Ref: https://www.youtube.com/playlist?listPLY-V_O-O7h4fwcHcXgkR_zTLvddvE_GfC

[力扣題解] 494. 目標和

題目&#xff1a;494. 目標和 思路 01背包 轉換為01背包問題 難點在于看出可以用背包問題解決本題&#xff1b; 題目字面意思是劃分出一堆再減去另一堆&#xff0c;得到的結果想要等于target&#xff0c;設定一堆為正&#xff0c;記為left&#xff0c;另一堆為負&#xff0…

ChatGPT類大模型應用入門了解與使用

一 前言 ChatGPT大眾熱情逐漸褪去&#xff0c;但在后臺技術人的探索還處于熱火朝天狀態。如果我們生活的世界是一杯清水&#xff0c; 那類似ChatGPT的語言大模型技術的橫空出世就如滴入水杯的一滴墨汁&#xff0c;第一滴很顯眼&#xff0c;但實際上是后續墨汁慢慢擴散滲透才是…

Windows11下使用Qt5.14.2編譯QtXlsx驅動詳細步驟

原有&#xff1a;由于系統需要將QTableWidget表格中的數據導出、在Windows下最開始使用Excel.Application組件實現了導出功能&#xff0c;后面將代碼轉換到Ubuntu20.04下進行編譯&#xff0c;發現項目.pro文件中的QT axcontainer和代碼.h文件中的#include <QAxObject>跟…

基于圖鳥UI的資訊名片模版開發與應用

一、引言 在前端技術日新月異的今天&#xff0c;快速、高效、美觀的UI組件庫和模板成為了開發者們關注的焦點。圖鳥UI作為一款集成了基礎布局元素、配色體系、圖標icon和精選組件的UI框架&#xff0c;為前端開發者提供了極大的便利。本文將以圖鳥UI為基礎&#xff0c;探討基于…

接口測試工具有哪些,哪些比較火

接口測試工具可以幫助開發人員和測試人員更高效地進行接口測試&#xff0c;以下是一些常用的接口測試工具&#xff1a; 1. **Postman** Postman 是一款廣受歡迎的接口測試工具&#xff0c;它提供了豐富的功能和直觀的用戶界面&#xff0c;幫助開發人員和測試人員輕松進行 API…

如何讓外網訪問內網服務?

隨著互聯網的快速發展&#xff0c;越來越多的企業和個人需要將內網服務暴露給外網用戶訪問。由于安全和隱私等因素的考慮&#xff0c;直接將內網服務暴露在外網是非常不安全的做法。如何讓外網用戶安全訪問內網服務成為了一個重要的問題。 在這個問題上&#xff0c;天聯公司提供…

golang rune類型解析,與byte,string對比,以及應用

Golang中的rune類型是一個32位的整數類型(int32)&#xff0c;它是用來表示Unicode碼點的。rune類型的值可以是任何合法的Unicode碼點&#xff0c;它通常用來處理字符串中的單個字符。 在Golang中&#xff0c;字符常量使用單引號來表示&#xff0c;例如 a。使用單引號表示的字符…

rust - 使用 cargo-nextest 替代 cargo test

cargo-nextest 是新一代的rust測試程序&#xff0c;能夠極大提升測試性能&#xff0c;可以完全替代 cargo test 命令。 1. 安裝 cargo install cargo-nextest2. 執行測試 project ├── Cargo.toml ├── LICENSE ├── README.md ├── build.rs ├── core_utils │ …

K-means聚類模型

目錄 1.定義 2.K-means聚類模型的優點 3.K-means聚類模型的缺點 4.K-means聚類模型的應用場景 5.對K-means聚類模型未來的展望 6.小結 1.定義 什么是 K-means 聚類模型&#xff1f;K-means 聚類模型是一種無監督學習算法&#xff0c;用于將數據劃分為不同的組或簇&#…

Lumines推出RGBL彩色混合LED

Luminus Devices傾心打造了一款嶄新的4合1 RGBL&#xff08;紅綠藍綠石灰&#xff09;LED系列&#xff0c;專為舞臺與建筑照明領域量身打造&#xff0c;滿足對高顯色指數&#xff08;CRI&#xff09;與高輸出顏色混合的苛刻需求。這一創新之舉&#xff0c;無疑是照明技術的一次…

使用HiBurn燒錄鴻蒙.bin文件到Hi3861開發板

鴻蒙官方文檔的“Hi3861開發板第一個示例程序”中描述了——如何使用DevEco Device Tool工具燒錄二進制文件到Hi3861開發板&#xff1b; 本文將介紹如何使用HiBurn工具燒錄鴻蒙的.bin文件到Hi3861開發板。 獲取HiBurn工具 通過鴻蒙官方文檔我們知道DevEco Device Tool是一個V…

SAP--ABAP踩坑日志---日期函數的踩坑-----FIMA_DATE_CREATE

當你需要動態生成日期列的時候,出現了奇怪的BUG怎么辦? 用函數循環循環產生獲取下一個日期,結果出現了5.30 直接到6.1了 …我的5.31呢??? 解決方案:用這個,不要瞎用函數啊! day_col day_col 1.

Mybatis 與 MybatisPlus 打印sql日志配置

Mybatis 與 MybatisPlus 打印sql日志配置 方法一&#xff1a; Mybatis 配置&#xff1a; mybatis:configuration: ### 開啟打印sql配置log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ### 開啟駝峰配置 map-underscore-to-camel-case&#xff1a;trueMyb…

docker所在磁盤空間不足 遷移數據

1.查看原始目錄docker info | grep "Docker Root Dir" 一般在/var/lib/docker 2.停止docker service docekr stop 3.移動數據 注意 移動前不要創建docker目錄&#xff01; mv /var/lib/docker /home/docker 4.進入目錄查看是否與原始目錄相同&#xff0c;確認一…

LeetCode 題解:112. 路徑總和,遞歸,JavaScript,詳細注釋

原題鏈接&#xff1a; 112. 路徑總和 解題思路&#xff1a; 如果求根節點到葉子節點的路徑上的節點值之和&#xff0c;假設共有3個節點&#xff0c;那么寫成計算式是val1 val2 val3 sum那么將計算式轉換就可以得到val3 sum - val1 - val2也就是說&#xff0c;問題可以從…