色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳解kubectl常用命令

馬哥Linux運維 ? 來源:博客園海布里Simple ? 2024-11-05 15:39 ? 次閱讀

一、查看

1、查看集群狀態

# 查看客戶端及服務端程序版本信息

kubectl version --short=true

54c178c4-9b2f-11ef-a511-92fbcf53809c.jpg

# 查看集群信息

kubectl cluster-info

2、查看資源對象

# 查看命名空間

kubectl get namespace

# 查看所有 pod 列表, -n 后跟 namespace, 查看指定的命名空間,-o wide 查看詳細信息

kubectlget pod

kubectlget pod -n kube

kubectlget pod -o wide

54e075e4-9b2f-11ef-a511-92fbcf53809c.jpg

# -l 標簽選擇器(多個的話是與邏輯)

kubectl get pods -l app=example

# -w 監視資源變動信息

kubectl get pod-w

# 以yaml格式查看Pod詳細信息

kubectlgetpod -o yaml

54fd2022-9b2f-11ef-a511-92fbcf53809c.jpg

# 以json格式查看Pod詳細信息

kubectlgetpod -o json

# 查看deployment下pod列表

kubectl get pod -n xxx | grep ${deploymentName}

通用格式:kubectl get {$sourceType} --all-namespaces

常用的資源類型({$resourceType})有:

node (節點)

po(pod)

ns(命名空間namespace)

instance(實例)

svc(service服務):定義了一個 Pod 的邏輯分組,一種可以訪問它們的策略(微服務)

551a06b0-9b2f-11ef-a511-92fbcf53809c.jpg

cm(configMap):存儲全局配置變量的,將分布式系統中不同模塊的環境變量統一到一個對象中管理

ds(deamonSet):在每臺計算節點上運行一個守護進程(如日志采集等),有時pod處于pending可能是因為某個deamonSet沒起來

deploy(deployment):用于啟動(上線/部署)一個Pod或者ReplicaSet。這個如果有問題,那么其他依賴它來部署的資源就肯定不會正常了

ingress : 通過http或https暴露集群內部service,給service提供外部URL、負載均衡、SSL/TLS能力以及基于host的方向代理

# 查看 endpoint 列表 kubectlget endpoints

pv:存儲卷

pvc:存儲卷消費者

552f4fac-9b2f-11ef-a511-92fbcf53809c.jpg

3、查看詳情

describe類似于get,同樣用于獲取resource的相關信息。不同的是,get獲得的是更詳細的resource個性的詳細信息,describe獲得的是resource集群相關的信息。

describe命令同get類似,但是describe不支持-o選項,對于同一類型resource,describe輸出的信息格式,內容域相同。

注:如果發現是查詢某個resource的信息,使用get命令能夠獲取更加詳盡的信息。但是如果想要查詢某個resource的狀態,

如某個pod并不是在running狀態,這時需要獲取更詳盡的狀態信息時,就應該使用describe命令。

# 顯示 Pod 的詳細信息, 特別是查看 Pod 無法創建的時候的日志、Pod的運行事件,比如鏡像有沒有拉取,容器有沒有創建

kubectl describe pod

kubectl describe deployment

kubectl describe service

# 顯示 Node 的詳細信息

kubectldescribe node [node ip]

# 顯示由deployment管理的Pod的信息

kubectl describe pods

# 查看pod中所有容器的信息

kubectl describe pod/{pod_name} -n {namespace}

554958ac-9b2f-11ef-a511-92fbcf53809c.jpg

4、查看日志

# 實時查看日志

kubectl logs -f

# 若 pod 有多個容器,加 -c 指定容器

kubectl logs-f -c

556d1cba-9b2f-11ef-a511-92fbcf53809c.jpg

# kubectl attach -c

類似于docker attach的功能,用于取得實時的類似于kubectl logs的信息

5、查看kubernetes配置

5591b1b0-9b2f-11ef-a511-92fbcf53809c.jpg

6、查看資源對象擁有的字段

kubectlexplain pod

kubectlexplain pod.apiVersion

55b8d34e-9b2f-11ef-a511-92fbcf53809c.jpg

7、查看節點標簽

kubectlget node --show-labels

為kubernetes集群的resource打標簽,如前面實例中提到的為rc打標簽對rc分組。還可以對nodes打標簽,這樣在編排容器時,

可以為容器指定nodeSelector將容器調度到指定lable的機器上,如如果集群中有IO密集型,計算密集型的機器分組,可以將不同的機器打上不同標簽,

然后將不同特征的容器調度到不同分組上。在1.2之前的版本中,使用kubectl get nodes則可以列出所有節點的信息,包括節點標簽,

1.2版本中不再列出節點的標簽信息,如果需要查看節點被打了哪些標簽,需要使用describe查看節點的信息。

8、文件交換

kubectl cp 用于pod和外部的文件交換,比如如下示例了如何在進行內外文件交換

在pod中創建一個文件message.log

[[email protected] tmp]# kubectl exec -it mysql-478535978-1dnm2 sh
# pwd
/
# cd /tmp
# echo "this is a message from `hostname`" >message.log
# cat message.log
this is a message from mysql-478535978-1dnm2
# exit
拷貝出來并確認
[[email protected]-1 tmp]# kubectl cp mysql-478535978-1dnm2:/tmp/message.log message.log
tar: Removing leading `/' from member names
[[email protected]-1 tmp]# cat message.log
this is a message from mysql-478535978-1dnm2
更改message.log并拷貝回pod
[[email protected]-1 tmp]# echo "information added in `hostname`" >>message.log
[[email protected]-1 tmp]# cat message.log
this is a message from mysql-478535978-1dnm2
information added in ku8-1
[[email protected]-1 tmp]# kubectl cp message.log mysql-478535978-1dnm2:/tmp/message.log
確認更改后的信息
[[email protected]-1 tmp]# kubectl exec mysql-478535978-1dnm2 cat /tmp/message.log
this is a message from mysql-478535978-1dnm2
information added in ku8-1

二、創建/修改資源

1、kubectl create/apply

# 以標準輸入創建資源

kubectl create deployment nginx --image=nginx:1.14

# 以文件創建資源

kubectl create -f my-nginx.yaml # create 創建一次

kubectlapply -f my-nginx.yaml # apply 可創建多次

2、kubectl replace/patch

用于對已有資源進行更新、替換。如前面create中創建的nginx,當我們需要更新resource的一些屬性的時候,

如修改副本數量,增加、修改label,更改image版本,修改端口等。都可以直接修改原yaml文件,然后執行replace命令(刪除原有資源然后重新構建資源)

kubectl replace -f

注意:yaml文件里的metadata的name不能修改(是按照name作為資源的唯一標識)

# 如對正在運行的容器的屬性進行在線修改(不刪除容器),比如修改pod的label等

kubectl patch pod rc-nginx-2-kpiqt -p '{"metadata":{"labels":{"app":"nginx-3"}}}'

3、kubectl edit

# edit提供了另一種更新resource源的操作,通過edit能夠靈活的在一個common的resource基礎上,發展出更過的significant resource。

例如,使用edit直接更新前面創建的pod的命令為:

[root@master1 ~]# kubectl edit po rc-nginx-btv4j

上面命令的效果等效于:

kubectl get po rc-nginx-btv4j -o yaml >> /tmp/nginx-tmp.yaml
vim /tmp/nginx-tmp.yaml
/*do some changes here */
kubectl replace -f /tmp/nginx-tmp.yaml

4、kubectl set

# kubectl set resources 用于設置資源的一些范圍限制

資源對象中的Pod可以指定計算資源需求(CPU-單位m、內存-單位Mi),即使用的最小資源請求(Requests),

限制(Limits)的最大資源需求,Pod將保證使用在設置的資源數量范圍。

對于每個Pod資源,如果指定了Limits(限制)值,并省略了Requests(請求),則Requests默認為Limits的值。

可用資源對象包括(支持大小寫):replicationcontroller、deployment、daemonset、job、replicaset。

例如:

# 將deployment的nginx容器cpu限制為“200m”,將內存設置為“512Mi”
$ kubectl set resources deployment nginx -c=nginx --limits=cpu=200m,memory=512Mi
# 設置所有nginx容器中 Requests和Limits
$ kubectl set resources deployment nginx --limits=cpu=200m,memory=512Mi --requests=cpu=100m,memory=256Mi
# 刪除nginx中容器的計算資源值
$ kubectl set resources deployment nginx --limits=cpu=0,memory=0 --requests=cpu=0,memory=0
# kubectl set image 用于更新現有資源的容器鏡像
# 將deployment中的nginx容器鏡像設置為“nginx:1.9.1”
$ kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1
# 所有deployment和rc的nginx容器鏡像更新為“nginx:1.9.1”
$ kubectl set image deployments,rc nginx=nginx:1.9.1 --all
# 將daemonset abc的所有容器鏡像更新為“nginx:1.9.1”
$ kubectl set image daemonset abc *=nginx:1.9.1
# 從本地文件中更新nginx容器鏡像
$ kubectl set image -f path/to/file.yaml nginx=nginx:1.9.1 --local -o yaml

5、kubectl label、annotate

label命令:用于更新(增加、修改或刪除)資源上的 label(標簽)

label 必須以字母或數字開頭,可以使用字母、數字、連字符、點和下劃線,最長63個字符。

如果 --overwrite 為 true,則可以覆蓋已有的label,否則嘗試覆蓋label將會報錯。

如果指定了--resource-version,則更新將使用此資源版本,否則將使用現有的資源版本。

語法:label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]

例:

# 給名為foo的Pod添加label unhealthy=true
$ kubectl label pods foo unhealthy=true
# 給名為foo的Pod修改label 為 'status' / value 'unhealthy',且覆蓋現有的value
$ kubectl label --overwrite pods foo status=unhealthy
# 給 namespace 中的所有 pod 添加 label
$ kubectl label pods --all status=unhealthy
# 僅當resource-version=1時才更新 名為foo的Pod上的label
$ kubectl label pods foo status=unhealthy --resource-version=1
# 刪除名為“bar”的label 。(使用“ - ”減號相連)
$ kubectl label pods foo bar-

annotate命令:更新一個或多個資源的Annotations信息。也就是注解信息,可以方便的查看做了哪些操作。

Annotations由key/value組成。

Annotations的目的是存儲輔助數據,特別是通過工具和系統擴展操作的數據,更多介紹在這里。

如果--overwrite為true,現有的annotations可以被覆蓋,否則試圖覆蓋annotations將會報錯。

如果設置了--resource-version,則更新將使用此resource version,否則將使用原有的resource version。

語法:annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]

例:

# 更新Pod“foo”,設置annotation “description”的value “my frontend”,如果同一個annotation多次設置,則只使用最后設置的value值
$ kubectl annotate pods foo description='my frontend'
# 根據“pod.json”中的type和name更新pod的annotation
$ kubectl annotate -f pod.json description='my frontend'
# 更新Pod"foo",設置annotation“description”的value“my frontend running nginx”,覆蓋現有的值
$ kubectl annotate --overwrite pods foo description='my frontend running nginx'
# 更新 namespace中的所有pod
$ kubectl annotate pods --all description='my frontend running nginx'
# 只有當resource-version為1時,才更新pod 'foo'
$ kubectl annotate pods foo description='my frontend running nginx' --resource-version=1
# 通過刪除名為“description”的annotations來更新pod 'foo'。
# 不需要 -overwrite flag。
$ kubectl annotate pods foo description-

三、啟動Pod

# 在集群中創建、啟動一個指定的鏡像

[root@ku8-1 tmp] # kubectl run nginx --image=nginx:1.16 --port=80 --replicas=1

deployment "nginx" created

[root@ku8-1 tmp] #

從提示看到創建了一個deployment

kubernetes將鏡像運行在pod中以方便實施卷和網絡共享等管理,使用get pods可以清楚的看到生成了一個pod

[root@ku8-1 tmp] # kubectl get pods

NAME READY STATUS RESTARTS AGE

sonarqube-1880671902-s3fdq 1/1 Running 0 6m

[root@ku8-1 tmp] #

鏈接:https://www.cnblogs.com/ailiailan/p/14565429.html

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序
    +關注

    關注

    117

    文章

    3787

    瀏覽量

    81069
  • 命令
    +關注

    關注

    5

    文章

    684

    瀏覽量

    22031
  • 客戶端
    +關注

    關注

    1

    文章

    290

    瀏覽量

    16693

原文標題:kubectl常用命令

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    windowsxp常用命令

    windowsxp常用命令   winver---------檢查windows版本 wmimgmt.msc----打開windows管理體系結構(wmi) wupdmgr-------
    發表于 01-10 09:05 ?1284次閱讀

    Ubuntu常用命令大全

    Ubuntu常用命令大全,包括常用管理目錄,系統命令,硬盤相關,內存相關,查看進程等命令
    發表于 01-06 11:16 ?0次下載

    Linux終端常用命令大全

    Linux終端常用命令大全,通俗易懂,容易上手。包含所有命令,方便查找各個指令功能。
    發表于 04-28 16:30 ?15次下載

    DOS常用命令寶典

    DOS常用命令寶典,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-10 18:24 ?0次下載

    04-shell的常用命令匯總與vim

    shell的常用命令匯總
    發表于 12-17 16:04 ?0次下載

    vim常用命令

    vim常用命令
    發表于 01-08 15:59 ?3次下載

    redis常用命令總結

    本文是對redis常用命令總結。
    發表于 02-09 11:25 ?1609次閱讀

    Linux常用命令的全拼整理

    本文整理了常用命令的全拼,好像混進了什么奇怪的東西。
    的頭像 發表于 10-10 17:19 ?4679次閱讀

    Linux教程之Linux常用命令大全

    Linux教程之Linux常用命令大全
    的頭像 發表于 03-30 10:34 ?5693次閱讀

    linux常用命令手冊

    linux常用命令手冊免費下載。
    發表于 06-01 14:59 ?68次下載

    Memcache系統常用命令講解

    Memcache系統常用命令講解(無線電源技術商業計劃書)-該文檔為Memcache系統常用命令講解文檔,是一份還算不錯的參考文檔,感興趣的可以下載看看,,,,,,,,,,,,,,,,
    發表于 09-28 11:27 ?5次下載
    Memcache系統<b class='flag-5'>常用命令</b>講解

    linux常用命令大全

    linux常用命令大全,一些常用命令都可以找到
    發表于 03-03 09:20 ?0次下載

    DOS系統常用命令

    介紹了DOS系統的常用命令
    發表于 03-21 14:59 ?0次下載

    Linux常用命令

    Linux常用命令
    的頭像 發表于 01-12 11:19 ?1158次閱讀

    Linux常用命令手冊分享

    linux常用命令合集
    發表于 04-26 11:46 ?1次下載
    主站蜘蛛池模板: 无码成A毛片免费| 国产AV国片精品无套内谢无码 | beeg日本老师按摩| 我与恶魔的h生活ova| 久久综合久久鬼色| 第一次处破女完整版电影| 亚洲日韩有码无线免费| 内射爽无广熟女亚洲| 国产品无码一区二区三区在线| 中文字幕精品无码一区二区| 少妇性饥渴BBBBBBBBB| 久久三级视频| 国产精品亚洲污污网站入口| 6080yy亚洲久久无码| 香港成人社区| 超碰97人人做人人爱少妇| 亚洲精品无码不卡| 秋霞伦理机在线看片| 久久久欧美国产精品人妻噜噜| 国产AV精品久久久免费看| 5G在线观看免费年龄确认| 亚洲国产成人一区二区在线| 日本高清二区| 老司机亚洲精品影院| 国产在线不卡| 别停好爽好深好大好舒服视频| 伊人久久艹| 男女AA片免费| 狠狠色在在线视频观看| 大胸美女脱内衣黄网站| 97人妻AV天天澡夜夜爽| 亚洲欧美日韩精品自拍| 色窝窝亚洲AV在线观看| 妞干网手机免费视频| 久久精品国产亚洲AV未满十八 | 暖暖视频免费观看视频| 久久a级片| 韩国黄电影| 国产三级91| 国产成人免费a在线资源| 超碰免费视频公开观看|