国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s-kubectl命令詳解、Pod創(chuàng)建過(guò)程、Pod的生命周期、定制Pod、資源對(duì)象文件

這篇具有很好參考價(jià)值的文章主要介紹了k8s-kubectl命令詳解、Pod創(chuàng)建過(guò)程、Pod的生命周期、定制Pod、資源對(duì)象文件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

集群管理

一、如何管理集群

kubectl是用于管理Kubernetes集群的命令行工具

二、語(yǔ)法格式:

kubectl [command] [TYPE] [NAME] [flags]

command:子命令,如create,get,describe,delete

type:資源類型,可以表示為單數(shù),復(fù)數(shù)或縮寫形式

name:資源的名稱,如果省略,則顯示所有資源信息

flags:指定可選標(biāo)志,或附加的參數(shù)

三、集群管理命令

子命令 說(shuō)明
help 用于查看命令及子命令的幫助信息
cluster-info 顯示集群的相關(guān)配置信息
version 查看服務(wù)器及客戶端的版本信息
api-resources 查看當(dāng)前服務(wù)器上所有的資源對(duì)象
api-versions 查看當(dāng)前服務(wù)器上所有資源對(duì)象的版本
config 管理當(dāng)前節(jié)點(diǎn)上kubeconfig的認(rèn)證信息
# 查看當(dāng)前認(rèn)證使用的用戶及證書
[root@master ~]# kubectl config get-contexts 
CURRENT   NAME                          CLUSTER      AUTHINFO
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin
# 使用 view 查看詳細(xì)配置
[root@master ~]# kubectl config view 
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.1.50:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

四、管理主機(jī)授權(quán)

為其他主機(jī)添加管理權(quán)限

[root@harbor ~]# vim /etc/hosts
192.168.1.30    harbor
192.168.1.50    master
192.168.1.51    node-0001
192.168.1.52    node-0002
192.168.1.53    node-0003
192.168.1.54    node-0004
192.168.1.55    node-0005

# 安裝集群管理工具kubectl 
[root@harbor ~]# yum install -y kubectl
# 拷貝證書到目標(biāo)主機(jī)
# 證書默認(rèn)路徑:${HOME}/.kube/config
[root@harbor ~]# mkdir -p $HOME/.kube
[root@harbor ~]# rsync -av master:/etc/kubernetes/admin.conf $HOME/.kube/config
# 設(shè)置證書的所有者和所屬組
[root@harbor ~]# chown $(id -u):$(id -g) $HOME/.kube/config
# 驗(yàn)證管理授權(quán)
[root@harbor ~]# kubectl get nodes

五、資源對(duì)象概述

什么是資源對(duì)象

k8s?中把可以創(chuàng)建或配置的應(yīng)用和服務(wù)稱為資源對(duì)象

我們?cè)诩褐袆?chuàng)建的Pod、負(fù)載均衡、存儲(chǔ)、網(wǎng)絡(luò)服務(wù)等等都是資源對(duì)象

如何創(chuàng)建資源對(duì)象

簡(jiǎn)單資源對(duì)象可以使用“kubectl”直接創(chuàng)建

高級(jí)資源對(duì)象需要使用“資源對(duì)象文件”創(chuàng)建

查看私有倉(cāng)庫(kù)中的鏡像

[root@master ~]# curl -sku admin https://harbor:443/v2/library/myos/tags/list | python3 -m json.tool

# 也可以通過(guò)瀏覽器網(wǎng)頁(yè)查看

創(chuàng)建Pod

使用run創(chuàng)建一個(gè)Pod資源對(duì)象

kubectl run Pod名稱 [選項(xiàng)/參數(shù)] --image=鏡像名稱:標(biāo)簽

# 創(chuàng)建資源對(duì)象
[root@master ~]# kubectl run myweb --image=myos:nginx
pod/myweb created

# 查詢資源對(duì)象
[root@master ~]# kubectl get pods -o wide
NAME    READY   STATUS    RESTARTS   AGE   IP           NODE
myweb   1/1     Running   0          3s    10.244.1.3   node-0001

[root@master ~]# curl http://10.244.1.3
Nginx is running !

六、Pod概述

  • Pod由一個(gè)或多個(gè)容器組成
  • Pod是Kubernetes中最小的管理元素
  • 同一個(gè)Pod共享網(wǎng)絡(luò)IP及權(quán)限
  • 同一個(gè)Pod共享主機(jī)名稱
  • 同一個(gè)Pod共享存儲(chǔ)設(shè)備

Pod創(chuàng)建過(guò)程

k8s-kubectl命令詳解、Pod創(chuàng)建過(guò)程、Pod的生命周期、定制Pod、資源對(duì)象文件,kubernetes,容器,云原生

為什么要使用Pod

  • 服務(wù)之間有相關(guān)性
  • 啟動(dòng)容器的時(shí)候需要初始化或進(jìn)行相關(guān)配置

Pod的生命周期

  • Pod對(duì)象自從創(chuàng)建開始至終止的時(shí)間范圍稱為其生命周期
  • 在這段時(shí)間中,Pod處在多種不同的狀態(tài),并執(zhí)行相關(guān)操作
  • 創(chuàng)建主容器為必需的操作,其它為可選操作(初始化容器、啟動(dòng)后鉤子、存活性探測(cè)、就緒性探測(cè)以及終止前鉤子等)

k8s-kubectl命令詳解、Pod創(chuàng)建過(guò)程、Pod的生命周期、定制Pod、資源對(duì)象文件,kubernetes,容器,云原生

Pod相位狀態(tài)

Pod的status字段是一個(gè)PodStatus的對(duì)象,Pod對(duì)象總是應(yīng)該處于其生命進(jìn)程中以下幾個(gè)相位(phase)之一:

Pending? ? ? ? Pod創(chuàng)建過(guò)程中,但他尚未被調(diào)度成功

Running? ? ? ? Pod中所有容器都已經(jīng)被創(chuàng)建成功

Completed? ? ? ? Pod所有容器都已經(jīng)成功終止,并不會(huì)被重啟

Failed? ? ? ? Pod中的所有容器中至少有一個(gè)容器退出是非0狀態(tài)

Unknow? ? ? ? 無(wú)法正常獲取到Pod對(duì)象的狀態(tài)信息

k8s-kubectl命令詳解、Pod創(chuàng)建過(guò)程、Pod的生命周期、定制Pod、資源對(duì)象文件,kubernetes,容器,云原生

Pod管理命令

核心管理命令

系統(tǒng)中的核心服務(wù)都是運(yùn)行在Pod中

子命令 說(shuō)明 備注
run/create 創(chuàng)建資源對(duì)象 可輸出資源文件模板
get 查看資源對(duì)象的狀態(tài)信息 可選參數(shù):-o 顯示格式
describe 查詢資源對(duì)象的屬性信息
logs 查看容器的報(bào)錯(cuò)信息 可選參數(shù):-c 容器名稱
kubectl get 語(yǔ)法格式:

kebectl get 資源對(duì)象 [資源名稱] [選項(xiàng)/參數(shù)]

常用參數(shù):

-o name 只顯示名字

-o wide 顯示更加的詳細(xì)信息

-o yaml 以yaml語(yǔ)法格式顯示資源對(duì)象

-o json 以json語(yǔ)法格式顯示資源對(duì)象

查看命名空間
[root@master ~]# kubectl get namespaces 
NAME              STATUS   AGE
default           Active   39h
kube-node-lease   Active   39h
kube-public       Active   39h
kube-system       Active   39h
查看命名空間中的資源對(duì)象
[root@master ~]# kubectl -n kube-system get pods
NAME                             READY   STATUS    RESTARTS      AGE
etcd-master                      1/1     Running   0             39h
kube-apiserver-master            1/1     Running   0             39h
kube-controller-manager-master   1/1     Running   0             39h
kube-scheduler-master            1/1     Running   0             39h
... ...
系統(tǒng)命名空間
  • default默認(rèn)的命名空間,不聲明命名空間的Pod都在這里
  • kube-node-lease為高可用提供心跳監(jiān)視的命名空間
  • kube-public公共數(shù)據(jù),所有用戶都可以讀取它
  • kube-system系統(tǒng)服務(wù)對(duì)象所使用的命名空間

k8s系統(tǒng)核心服務(wù)都運(yùn)行在kube-system名稱空間中

kubectl describe語(yǔ)法格式:

kubectl describe 資源類型 [資源名稱] [選項(xiàng)/參數(shù)]

Events下是事務(wù)日志,常用于排錯(cuò)

常用管理命令
exec 在某一個(gè)容器內(nèi)執(zhí)行特定的命令 可選參數(shù):-c 容器名稱
cp 在容器和宿主機(jī)之間拷貝文件或目錄

可選參數(shù):-c 容器名稱

delete 刪除資源對(duì)象 可選參數(shù):-f 文件名稱
kubectl exec

在容器內(nèi)執(zhí)行命令

kubectl? exec?[選項(xiàng)/參數(shù)] Pod名稱?-- 操作命令

常用參數(shù)

-it 分配交互式終端

# 執(zhí)行非交互命令
[root@master ~]# kubectl exec myweb -- ls

# 執(zhí)行交互命令
[root@master ~]# kubectl exec -it myweb -- /bin/bash
[root@myweb html]#  # 這里可以交互式操作Pod了
kubectl cp

拷貝文件/目錄

kubectl cp [選項(xiàng)/參數(shù)] 原文件 目標(biāo)文件

路徑格式:[Pod名稱:絕對(duì)路徑]

# 與容器進(jìn)行文件或目錄傳輸
[root@master ~]# kubectl cp myweb:/etc/yum.repos.d /root/aaa
tar: Removing leading `/' from member names
[root@master ~]# tree /root/aaa
/root/aaa
├── local.repo
├── Rocky-AppStream.repo
├── Rocky-BaseOS.repo
......

[root@master ~]# kubectl -n work cp /etc/passwd myhttp:/root/mima
[root@master ~]# kubectl -n work exec myweb -- ls /root/
mima
kubectl delete

集群中所有資源均可使用 delete 命令刪除

kubectl delete [選項(xiàng)/參數(shù)] 資源類型 資源名稱

# 刪除一個(gè)Pod
[root@master ~]# kubectl delete pods myweb 
pod "myweb" deleted

# 刪除 work 名稱空間下所有 Pod 對(duì)象
[root@master ~]# kubectl -n work delete pods --all
pod "myhttp" deleted

# 刪除名稱空間
[root@master ~]# kubectl delete namespaces work 
namespace "work" deleted

資源對(duì)象管理

一、資源對(duì)象文件

什么是資源對(duì)象

  • Kubernetes對(duì)象是“目標(biāo)性記錄”
  • Kubernetes使用這些對(duì)象去表示整個(gè)集群的狀態(tài)

什么是資源對(duì)象文件

創(chuàng)建kubernetes對(duì)象時(shí),必須提供資源對(duì)象的一些基本信息(例如:資源的對(duì)象的名字),以及描述描述描述該對(duì)象的期望狀態(tài)特征(規(guī)約),如果我們?cè)谖募惺褂肶aml的語(yǔ)法格式描述了上面的信息,這個(gè)文件就是資源對(duì)象文件

為什么要使用資源對(duì)象文件

  • 命令無(wú)法持久化,沒(méi)有歷史記錄,不方便重現(xiàn)
  • 服務(wù)眾多,多個(gè)容器之間有關(guān)聯(lián)性,管理不方便
  • 很多高級(jí)的復(fù)雜的功能靠簡(jiǎn)單的命令方式無(wú)法實(shí)現(xiàn),這些都需要使用資源文件描述

資源對(duì)象文件可以做什么

可以創(chuàng)建、刪除、變更、管理資源對(duì)象

示例:

---                        # Yaml文件起始標(biāo)志
kind: Pod                  # 創(chuàng)建資源的類型
apiVersion: v1             # 資源對(duì)應(yīng)的版本
metadata:                  # 屬性信息,元數(shù)據(jù)
  name: myweb              # 屬性信息,資源的名稱
spec:                      # 資源的特性描述(規(guī)約)
  containers:              # 容器資源特征描述
  - name: webserver    
    image: myos:nginx
status: {}                 # 資源狀態(tài),運(yùn)行后自動(dòng)生成

命名規(guī)范

  • 當(dāng)你與指定的 API 對(duì)象進(jìn)行交互時(shí),使用大寫駝峰式命名法,也被稱為帕斯卡拼寫法(PascalCase)
  • 不要將 API 對(duì)象的名稱切分成多個(gè)單詞

數(shù)組嵌套:

Json數(shù)據(jù):

{

? ? ? ? "ports":

? ? ? ? ? ? ? ? [ {"name":"xx","Port":80}, {"name":"hh","Port":443} ]? ? ? ? ?

}

# Yaml語(yǔ)法格式文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-842355.html

ports:
- name: xx
  Port: 80
- name: hh
  Port: 443

什么是靜態(tài)Pod

  • 靜態(tài)Pod是由kubelet守護(hù)進(jìn)程直接管理的Pod,不需要API服務(wù)器監(jiān)管。與由控制面管理的POd不同
  • kubelet監(jiān)視每個(gè)靜態(tài)Pod(在它崩潰之后重新啟動(dòng))
  • 靜態(tài)Pod永遠(yuǎn)都會(huì)綁定到一個(gè)指定節(jié)點(diǎn)上的kubelet
  • 靜態(tài)Pod的spec不能引用其它API對(duì)象
  • 靜態(tài)Pod配置路徑:/var/lib/kubelet/config.yaml
  • staticPodPath:/etc/kubernetes/mainfests
# 創(chuàng)建靜態(tài)Pod
[root@node-0003 ~]# vim /etc/kubernetes/mainfests/myweb.yaml
---                        
kind: Pod                  
apiVersion: v1             
metadata:                  
  name: myweb             
spec:                     
  containers:              
  - name: webserver    
    image: myos:nginx
# 在master查看
[root@master ~]# kubectl get pods -o wide
......

# 刪除靜態(tài)Pod
在master上使用kubectl delete pod
kubelet會(huì)自動(dòng)重建Pod
刪除資源文件才能徹底刪除Pod
rm -f /etc/kubernetes/mainfests/myweb.yaml

二、管理資源對(duì)象

子命令 說(shuō)明 備注
create 創(chuàng)建文件中定義的資源 支持指令式和資源對(duì)象文件配置
apply 創(chuàng)建(更新)文件中定義的資源 只支持資源對(duì)象文件(聲明式)
delete 刪除文件中定義的資源 可支持指令式和資源對(duì)象文件配置
# 創(chuàng)建資源對(duì)象
[root@master ~]# kubectl create -f myweb.yaml 
pod/myweb created
# 不能更新,重復(fù)執(zhí)行會(huì)報(bào)錯(cuò)
[root@master ~]# kubectl create -f myweb.yaml 
Error from server (AlreadyExists): error when creating "myweb.yaml": pods "myweb" already exists
# 使用資源對(duì)象文件刪除
[root@master ~]# kubectl delete -f myhttp.yaml
pod "myhttp" deleted
[root@master ~]# kubectl get pods
No resources found in default namespace.
# 創(chuàng)建資源對(duì)象
[root@master ~]# kubectl apply -f myweb.yaml 
pod/myweb created
# 更新資源對(duì)象
[root@master ~]# kubectl apply -f myweb.yaml 
pod/myweb configured
# 刪除資源對(duì)象
[root@master ~]# kubectl delete -f myweb.yaml 
pod "myweb" deleted

# 拓展提高
# 與 kubectl apply -f myweb.yaml 功能相同
[root@master ~]# cat myweb.yaml |kubectl apply -f -  

到了這里,關(guān)于k8s-kubectl命令詳解、Pod創(chuàng)建過(guò)程、Pod的生命周期、定制Pod、資源對(duì)象文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 玩轉(zhuǎn)k8s:kubectl命令行工具用法詳解

    玩轉(zhuǎn)k8s:kubectl命令行工具用法詳解

    Kubectl 是管理kubernetes的命令行工具,kubectl在$HOME/.kube目錄下查找config配置文件。可以通過(guò)設(shè)置KUBECONFIG環(huán)境變量或設(shè)置--kubeconfig參數(shù)指定其他kubeconfig文件。 本文介紹kubectl語(yǔ)法和命令操作描述,并提供常見示例。包括支持的參數(shù)和子命令。 kubectl使用以下語(yǔ)法,在終端運(yùn)行命令

    2024年02月07日
    瀏覽(30)
  • k8s之Pod常用命令詳解、鏡像拉取策略(imagePullPolicy)

    imagePullPolicy 有三個(gè)取值: Always 每次都下載最新鏡像 Never 不會(huì)嘗試獲取鏡像,如果鏡像已經(jīng)以某種方式存在本地,kubelet 會(huì)嘗試啟動(dòng)容器;否則,會(huì)啟動(dòng)失敗 IfNotPresent 只有當(dāng)鏡像在本地不存在時(shí)才會(huì)拉取 默認(rèn)鏡像拉取策略: 當(dāng)你(或控制器)向 API 服務(wù)器提交一個(gè)新的 Po

    2024年02月04日
    瀏覽(58)
  • 【云原生-k8s】kubectl top pod 報(bào)錯(cuò):error: Metrics API not available

    ?? 博主簡(jiǎn)介 ????云計(jì)算領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 ????華為云開發(fā)者社區(qū)專家博主 ????阿里云開發(fā)者社區(qū)專家博主 ?? 交流社區(qū): 運(yùn)維交流社區(qū) 歡迎大家的加入!

    2023年04月09日
    瀏覽(25)
  • k8s kubectl常用命令

    kubectl 是 Kubernetes 的一個(gè)命令行管理工具,可用于 Kubernetes 上的應(yīng)用部署和日常管理。本文列舉了 9 個(gè)常見的 kubectl 命令,并總結(jié)了一些使用技巧,希望可以幫助系統(tǒng)管理員簡(jiǎn)化管理工作。 對(duì)于剛開始使用命令行工具的開發(fā)者,最保險(xiǎn)的方法是提出問(wèn)題(讀取操作),而不是

    2024年02月11日
    瀏覽(27)
  • k8s集群node節(jié)點(diǎn)運(yùn)行kubectl命令

    k8s集群node節(jié)點(diǎn)運(yùn)行kubectl命令

    ? ? ? ? 在容器化項(xiàng)目部署中,某些應(yīng)用需要部署到指定的機(jī)器上(涉及機(jī)器信息收集,然后生成license,機(jī)器授權(quán)等),所以需要在k8s集群的node節(jié)點(diǎn)上,手動(dòng)執(zhí)行kubectl命令。 ? ? ? ? 具體的操作步驟如下: (1)在node節(jié)點(diǎn)執(zhí)行任意kubectl命令,例如:kubectl get nodes,可以看到

    2024年02月14日
    瀏覽(29)
  • Kubernetes技術(shù)--k8s核心技術(shù)kubectl命令行工具

    (1).概述 ? ? ? ?kubectl是Kubernetes集群的 命令行工具 , 通過(guò) kubectl 能夠?qū)罕旧磉M(jìn)行管理 ,并能夠在集群上進(jìn)行容器化應(yīng)用的安裝部署。 (2).語(yǔ)法 ?? Kubectl [command] [type] [name] [flags] ??語(yǔ)法參數(shù)說(shuō)明: ??command: 指定要對(duì)資源執(zhí)行的操作 ,例如 create、get、describe 和 delete ??

    2024年02月10日
    瀏覽(49)
  • k8s:kubectl 命令設(shè)置簡(jiǎn)寫&啟用自動(dòng)補(bǔ)全功能

    k8s:kubectl 命令設(shè)置簡(jiǎn)寫&啟用自動(dòng)補(bǔ)全功能

    ??The Begin??點(diǎn)點(diǎn)關(guān)注,收藏不迷路?? Kubernetes(K8s)是一個(gè)強(qiáng)大的容器編排平臺(tái),而kubectl則是與之交互的命令行工具。盡管Kubernetes提供了強(qiáng)大的功能,但有時(shí)候頻繁輸入長(zhǎng)長(zhǎng)的kubectl命令可能會(huì)降低效率。為了提高工作效率,我們可以通過(guò)設(shè)置別名來(lái)簡(jiǎn)化kubectl命令。 在本文

    2024年04月16日
    瀏覽(22)
  • k8s pod獲取ip地址過(guò)程

    k8s pod獲取ip地址過(guò)程

    在學(xué)習(xí) Kubernetes 網(wǎng)絡(luò)模型的過(guò)程中,了解各種網(wǎng)絡(luò)組件的作用以及如何交互非常重要。本文就介紹了各種網(wǎng)絡(luò)組件在 Kubernetes 集群中是如何交互的,以及如何幫助每個(gè) Pod 都能獲取 IP 地址。 Kubernetes 網(wǎng)絡(luò)模型的核心要求之一是每個(gè) Pod 都擁有自己的 IP 地址并可以使用該 IP 地址

    2024年02月08日
    瀏覽(20)
  • 創(chuàng)建K8s pod Webhook

    創(chuàng)建K8s pod Webhook

    目錄 1.前提條件 2.開始創(chuàng)建核心組件Pod的Webhook 2.1.什么是Webhook ?2.2.在本地k8s集群安裝cert-manager 2.3.創(chuàng)建一個(gè)空的文件夾 2.4. 生成工程框架 2.5.?生成核心組件Pod的API 2.6.生成Webhook 2.7.開始實(shí)現(xiàn)Webhook相關(guān)代碼 2.7.1.修改相關(guān)配置 2.7.2.修改代碼 2.7.3.按照最新配置更新yaml 2.7.4.集群運(yùn)

    2024年02月11日
    瀏覽(17)
  • K8s(一)Pod資源——Pod介紹、創(chuàng)建Pod、Pod簡(jiǎn)單資源配額

    K8s(一)Pod資源——Pod介紹、創(chuàng)建Pod、Pod簡(jiǎn)單資源配額

    目錄 Pod概述 pod網(wǎng)絡(luò) pod存儲(chǔ) pod和容器對(duì)比 創(chuàng)建pod的方式 pod運(yùn)行方式分類 Pod的創(chuàng)建 Pod的創(chuàng)建過(guò)程 通過(guò)kubectl run來(lái)創(chuàng)建pod 通過(guò)yaml文件創(chuàng)建,yaml文件簡(jiǎn)單寫法 Pod簡(jiǎn)單操作 Pod的標(biāo)簽labels Pod的資源配額resource 測(cè)試 Kubernetes Pod | Kubernetes Pod是Kubernetes中的最小調(diào)度單元,k8s都是以p

    2024年01月18日
    瀏覽(52)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包