最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

K8s創(chuàng)建資源的兩種方法實(shí)例

 更新時(shí)間:2022年05月07日 11:44:41   作者:子沐愛掃地(譯)  
而在我看來,在學(xué)習(xí)K8S之前,有必要對(duì)K8S的資源對(duì)象有個(gè)全局的概念,下面這篇文章主要給大家介紹了關(guān)于K8s創(chuàng)建資源的兩種方法,需要的朋友可以參考下

前言

在 K8s 中,創(chuàng)建資源有兩種方式:

  • 直接使用 kubectl run 命令創(chuàng)建
  • 使用 kubectl create/apply 命令從 YAML 文件創(chuàng)建

在本文中,我將通過示例解釋這兩種方法,以及它們分別應(yīng)該在何時(shí)使用。

kubectl run

kubectl run 命令在 pod 中創(chuàng)建并運(yùn)行特定的鏡像。例如:

$ kubectl run nginx --image=nginx --port 80
pod/nginx created
$ kubectl get po nginx
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          25s

如果您對(duì)這個(gè)新 pod 執(zhí)行 kubectl describe 命令,您將看到:

$ kubectl describe po nginx
Name:         nginx
Namespace:    default
Priority:     0
Node:         ip-10-0-0-146.ec2.internal/10.0.0.146
Start Time:   Sat, 09 Apr 2022 16:56:29 -0400
Labels:       run=nginx
Annotations:  kubernetes.io/psp: eks.privileged
Status:       Running
IP:           10.0.0.69
IPs:
  IP:  10.0.0.69

請(qǐng)注意,Labels 是 run=nginx。

您還可以在 run 命令中指定環(huán)境變量,例如:

$ kubectl run nginx --image=nginx --port 80 --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default"

如果您現(xiàn)在執(zhí)行 kubectl describe nginx,就可以看到我們剛剛提供的新環(huán)境變量:

$ kubectl describe po nginx | grep "Env" -A2
    Environment:
      DNS_DOMAIN:     cluster
      POD_NAMESPACE:  default

通常,kubectl run 命令用于一些簡單、直觀和快速的任務(wù),它適用于 ad-hoc(點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)模式)的測(cè)試或?qū)嶒?yàn)。

kubectl kubectl create/apply

kubectl create/apply 命令基于給定的配置文件。該配置文件具有以下特點(diǎn):

  1. 配置文件描述了應(yīng)用程序最終將達(dá)到的 Whatstate。
  2. 配置文件提供創(chuàng)建資源的模板,可以重復(fù)部署。
  3. 部署可以像代碼一樣進(jìn)行管理。
  4. 適用于正式的、跨環(huán)境的、大規(guī)模的部署。
  5. 需要熟悉配置文件的語法才能使用此方法。

讓我們?cè)倏匆粋€(gè)例子。我們將創(chuàng)建相同的 nginx pod,這一次,讓我們通過 YAML 文件來完成:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx
          ports:
        - containerPort: 80

不用在意 Deployment 文件語法,我將在另一篇文章中討論 K8s Deployment。

讓我們使用 kubectl create 命令來創(chuàng)建資源:

$ kubectl create -f nginx-deployment.yaml
deployment.apps/nginx created
$ kubectl get po
NAME                     READY   STATUS    RESTARTS   AGE
nginx-6799fc88d8-k7tfl   1/1     Running   0          5s
$ kubectl delete -f nginx-deployment.yaml
deployment.apps "nginx" deleted

您還可以使用 kubectl apply 命令:

$ kubectl apply -f nginx-deployment.yaml
deployment.apps/nginx created
$ kubectl get po
NAME                     READY   STATUS    RESTARTS   AGE
nginx-6799fc88d8-2fsxk   1/1     Running   0          17s
$ kubectl delete -f nginx-deployment.yaml
deployment.apps "nginx" deleted

可以看到,create 和 apply 命令都可以用來創(chuàng)建資源,但是二者有什么區(qū)別呢?

kubectl create 與 kubectl apply

讓我們談?wù)?create 和 apply 之間的區(qū)別。

create

此命令將告訴 K8s API 服務(wù)器,您要?jiǎng)?chuàng)建、刪除或替換一個(gè)或多個(gè)資源。以更簡化的方式,這意味著您可以從頭開始創(chuàng)建一個(gè)全新的對(duì)象。或者,它通過定義需求對(duì)任何現(xiàn)有對(duì)象進(jìn)行一些更改。

apply

此命令意味著通過在給定的 YAML 文件中聲明您確切需要的內(nèi)容來更改已經(jīng)存在的對(duì)象。

為了演示,讓我們使用 nginx Deployment 文件。首先,讓我們創(chuàng)建資源:

$ kubectl create -f nginx-deployment.yaml
deployment.apps/nginx created

現(xiàn)在,假設(shè)我們要向 pod 添加一個(gè) label,將 label 更新為:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
    env: prod
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
        env: prod
    spec:
      containers:
        - name: nginx
          image: nginx

如果再次運(yùn)行 create 命令:

$ kubectl create -f nginx-deployment.yaml
Error from server (AlreadyExists): error when creating "nginx-deployment.yaml": deployments.apps "nginx" already exists

即使 YAML 文件略有不同,您也會(huì)收到 “nginx” 已存在的錯(cuò)誤。

那如果你運(yùn)行 kubectl apply 呢?讓我們?cè)囈辉嚕?/p>

$ kubectl apply -f nginx-deployment.yaml
deployment.apps/nginx configured

現(xiàn)在讓我們描述一下資源:

$ kubectl get po
NAME                     READY   STATUS    RESTARTS   AGE
nginx-595f565474-zkl4t   1/1     Running   0          3m39s
$ kubectl describe po nginx-595f565474-zkl4t
Name:         nginx-595f565474-zkl4t
Namespace:    default
Priority:     0
Node:         ip-10-0-0-146.ec2.internal/10.0.0.146
Start Time:   Sat, 09 Apr 2022 17:20:04 -0400
Labels:       app=nginx
              env=prod
              pod-template-hash=595f565474

您可以看到應(yīng)用了新的 labels 是 env=prod。

現(xiàn)在我們了解了 kubectl create 和 kubectl apply 之間的區(qū)別,您可能想知道應(yīng)該使用哪一個(gè)?

在 kubectl create 命令中,我們指定了一個(gè)特定行為,也就是 create,因此它是一種更具命令式的方法。在 kubectl apply 命令中,我們指定系統(tǒng)的目標(biāo)狀態(tài),而不指定一個(gè)特定的行為,因此它是更具聲明性的方法。我們讓系統(tǒng)決定采取什么行動(dòng)。如果資源不存在,它將創(chuàng)建它,如果資源存在,則它將配置應(yīng)用于現(xiàn)有資源。

簡單來說,如果對(duì)單個(gè)文件運(yùn)行一個(gè)操作來創(chuàng)建資源,create 和 apply 基本是相同的。但是,apply 允許您在一個(gè)目錄中的多個(gè)文件上同時(shí)創(chuàng)建和修補(bǔ)。

總結(jié)

到此這篇關(guān)于K8s創(chuàng)建資源的文章就介紹到這了,更多相關(guān)K8s創(chuàng)建資源內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Kubernetes(K8S)徹底卸載詳細(xì)教程

    Kubernetes(K8S)徹底卸載詳細(xì)教程

    網(wǎng)絡(luò)上有很多的K8S安裝安裝教程,但是唯獨(dú)很少有卸載教程,有也講得不清不楚,下面這篇文章主要給大家介紹了關(guān)于Kubernetes(K8S)徹底卸載的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 一文詳解基于Kubescape進(jìn)行Kubernetes安全加固

    一文詳解基于Kubescape進(jìn)行Kubernetes安全加固

    這篇文章主要為大家介紹了基于Kubescape進(jìn)行Kubernetes安全加固詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 云原生要素配置分離ConfigMap創(chuàng)建方式

    云原生要素配置分離ConfigMap創(chuàng)建方式

    這篇文章主要為大家介紹了云原生要素配置分離ConfigMap以及多種創(chuàng)建方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-03-03
  • 常見Kubernetes kubectl命令使用詳解

    常見Kubernetes kubectl命令使用詳解

    這篇文章主要為大家介紹了常見Kubernetes kubectl命令使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • k8s自動(dòng)化安裝腳本(二進(jìn)制)的操作步驟

    k8s自動(dòng)化安裝腳本(二進(jìn)制)的操作步驟

    Kubernetes?k8s安裝腳本,非常好用,下面這篇文章主要給大家介紹了關(guān)于k8s自動(dòng)化安裝腳本(二進(jìn)制)的操作步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Rainbond應(yīng)用分享與發(fā)布官方文檔說明

    Rainbond應(yīng)用分享與發(fā)布官方文檔說明

    這篇文章主要為大家介紹了Rainbond應(yīng)用分享與發(fā)布的官方文檔說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • 帶你學(xué)會(huì)k8s?更高級(jí)的對(duì)象Deployment

    帶你學(xué)會(huì)k8s?更高級(jí)的對(duì)象Deployment

    這篇文章主要為大家介紹了k8s還有更高級(jí)的"對(duì)象"Deployment使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 如何給k8s集群里的資源打標(biāo)簽

    如何給k8s集群里的資源打標(biāo)簽

    k8s集群,節(jié)點(diǎn)如果有多個(gè)角色,需要標(biāo)記出來,可以給對(duì)應(yīng)的節(jié)點(diǎn)打上標(biāo)簽,方便后續(xù)了解節(jié)點(diǎn)的功能,這篇文章主要介紹了如何給k8s集群里的資源打標(biāo)簽,需要的朋友可以參考下
    2023-02-02
  • kubernetes k8s常用問題排查方法

    kubernetes k8s常用問題排查方法

    新手學(xué)習(xí)K8s最大的難度感覺是在起步動(dòng)手實(shí)踐的時(shí)候,Pod沒有正常啟動(dòng)起來,或者運(yùn)行了一段時(shí)間Pod自己崩潰了。是什么問題導(dǎo)致了它沒運(yùn)行起來,或是什么因素導(dǎo)致了它的崩潰,本文來學(xué)習(xí)總結(jié)幾個(gè)使用 K8s時(shí)常見的錯(cuò)誤現(xiàn)象以及排查這些現(xiàn)象背后問題的方法
    2022-06-06
  • k8s安裝CICD?devtron過程詳解

    k8s安裝CICD?devtron過程詳解

    這篇文章主要為大家介紹了k8s安裝CICD?devtron過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11

最新評(píng)論

炉霍县| 台安县| 策勒县| 孝义市| 报价| 宁德市| 遵化市| 丹凤县| 罗城| 获嘉县| 娄底市| 三台县| 宜章县| 田东县| 洪江市| 梁山县| 浦东新区| 尼玛县| 延边| 嫩江县| 长治县| 阿鲁科尔沁旗| 荃湾区| 额敏县| 右玉县| 双桥区| 沙洋县| 托里县| 分宜县| 桦甸市| 阳江市| 修水县| 大英县| 文化| 全南县| 陇川县| 东光县| 南充市| 伽师县| 巴马| 土默特左旗|