<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Kubernetes 如何輕松管理資源

      資源管理介紹

      在kubernetes中,所有的內容都抽象為資源,用戶需要通過操作資源來管理kubernetes。

      kubernetes的本質上就是一個集群系統,用戶可以在集群中部署各種服務,所謂的部署服務,其實就是在kubernetes集群中運行一個個的容器,并將指定的程序跑在容器中。

      kubernetes的最小管理單元是pod而不是容器,所以只能將容器放在Pod中,而kubernetes一般也不會直接管理Pod,而是通過Pod控制器來管理Pod的。

      Pod可以提供服務之后,就要考慮如何訪問Pod中服務,kubernetes提供了Service資源實現這個功能。

      當然,如果Pod中程序的數據需要持久化,kubernetes還提供了各種存儲系統。

      學習kubernetes的核心,就是學習如何對集群上的Pod、Pod控制器、Service、存儲等各種資源進行操作

      YAML語言介紹

      YAML是一個類似 XML、JSON 的標記性語言。它強調以數據為中心,并不是以標識語言為重點。因而YAML本身的定義比較簡單,號稱"一種人性化的數據格式語言"。

      <wenc>
          <age>15</age>
          <address>Beijing</address>
      </wenc>
      
      wenc:
        age: 15
        address: Beijing
      

      YAML的語法比較簡單,主要有下面幾個:

      • 大小寫敏感
      • 使用縮進表示層級關系
      • 縮進不允許使用tab,只允許空格( 低版本限制 )
      • 縮進的空格數不重要,只要相同層級的元素左對齊即可
      • '#'表示注釋

      YAML支持以下幾種數據類型:

      • 純量:單個的、不可再分的值
      • 對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hash) / 字典(dictionary)
      • 數組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
      # 純量, 就是指的一個簡單的值,字符串、布爾值、整數、浮點數、Null、時間、日期
      # 1 布爾類型
      c1: true (或者True)
      # 2 整型
      c2: 234
      # 3 浮點型
      c3: 3.14
      # 4 null類型 
      c4: ~  # 使用~表示null
      # 5 日期類型
      c5: 2018-02-17    # 日期必須使用ISO 8601格式,即yyyy-MM-dd
      # 6 時間類型
      c6: 2018-02-17T15:02:31+08:00  # 時間使用ISO 8601格式,時間和日期之間使用T連接,最后使用+代表時區
      # 7 字符串類型
      c7: wenc     # 簡單寫法,直接寫值 , 如果字符串中間有特殊字符,必須使用雙引號或者單引號包裹 
      c8: line1
          line2     # 字符串過多的情況可以拆成多行,每一行會被轉化成一個空格
      
      # 對象
      # 形式一(推薦):
      wenc:
        age: 15
        address: Beijing
      # 形式二(了解):
      wenc: {age: 15,address: Beijing}
      
      # 數組
      # 形式一(推薦):
      address:
        - 順義
        - 昌平  
      # 形式二(了解):
      address: [順義,昌平]
      

      小提示:

      1 書寫yaml切記: 后面要加一個空格

      2 如果需要將多段yaml配置放在一個文件中,中間要使用---分隔

      3 下面是一個yaml轉json的網站,可以通過它驗證yaml是否書寫正確

      https://www.json2yaml.com/convert-yaml-to-json

      資源管理方式

      • 命令式對象管理:直接使用命令去操作kubernetes資源

        kubectl run nginx-pod --image=nginx:1.18.0 --port=80

      • 命令式對象配置:通過命令配置和配置文件去操作kubernetes資源

        kubectl create/patch -f nginx-pod.yaml

      • 聲明式對象配置:通過apply命令和配置文件去操作kubernetes資源

        kubectl apply -f nginx-pod.yaml

      類型 操作對象 適用環境 優點 缺點
      命令式對象管理 對象 測試 簡單 只能操作活動對象,無法審計、跟蹤
      命令式對象配置 文件 開發 可以審計、跟蹤 項目大時,配置文件多,操作麻煩
      聲明式對象配置 目錄 開發 支持目錄操作 意外情況下難以調試

      命令式對象管理

      kubectl命令

      kubectl是kubernetes集群的命令行工具,通過它能夠對集群本身進行管理,并能夠在集群上進行容器化應用的安裝部署。kubectl命令的語法如下:

      kubectl [command] [type] [name] [flags]
      

      comand:指定要對資源執行的操作,例如create、get、delete

      type:指定資源類型,比如deployment、pod、service

      name:指定資源的名稱,名稱大小寫敏感

      flags:指定額外的可選參數

      # 查看所有pod
      kubectl get pod 
      
      # 查看某個pod
      kubectl get pod pod_name
      
      # 查看某個pod,以yaml格式展示結果
      kubectl get pod pod_name -o yaml
      

      資源類型

      kubernetes中所有的內容都抽象為資源,可以通過下面的命令進行查看:

      kubectl api-resources
      

      經常使用的資源有下面這些:

      資源分類 資源名稱 縮寫 資源作用
      集群級別資源 nodes no 集群組成部分
      namespaces ns 隔離Pod
      pod資源 pods po 裝載容器
      pod資源控制器 replicationcontrollers rc 控制pod資源
      replicasets rs 控制pod資源
      deployments deploy 控制pod資源
      daemonsets ds 控制pod資源
      jobs 控制pod資源
      cronjobs cj 控制pod資源
      horizontalpodautoscalers hpa 控制pod資源
      statefulsets sts 控制pod資源
      服務發現資源 services svc 統一pod對外接口
      ingress ing 統一pod對外接口
      存儲資源 volumeattachments 存儲
      persistentvolumes pv 存儲
      persistentvolumeclaims pvc 存儲
      配置資源 configmaps cm 配置
      secrets 配置

      操作

      kubernetes允許對資源進行多種操作,可以通過--help查看詳細的操作命令

      kubectl --help
      

      經常使用的操作有下面這些:

      命令分類 命令 翻譯 命令作用
      基本命令 create 創建 創建一個資源
      edit 編輯 編輯一個資源
      get 獲取 獲取一個資源
      patch 更新 更新一個資源
      delete 刪除 刪除一個資源
      explain 解釋 展示資源文檔
      運行和調試 run 運行 在集群中運行一個指定的鏡像
      expose 暴露 暴露資源為Service
      describe 描述 顯示資源內部信息
      logs 日志輸出容器在 pod 中的日志 輸出容器在 pod 中的日志
      attach 纏繞進入運行中的容器 進入運行中的容器
      exec 執行容器中的一個命令 執行容器中的一個命令
      cp 復制 在Pod內外復制文件
      rollout 首次展示 管理資源的發布
      scale 規模 擴(縮)容Pod的數量
      autoscale 自動調整 自動調整Pod的數量
      高級命令 apply rc 通過文件對資源進行配置
      label 標簽 更新資源上的標簽
      其他命令 cluster-info 集群信息 顯示集群信息
      version 版本 顯示當前Server和Client的版本

      下面以一個namespace / pod的創建和刪除簡單演示下命令的使用:

      # 創建一個namespace
      [root@master ~]# kubectl create namespace dev
      namespace/dev created
      
      # 獲取namespace
      [root@master ~]# kubectl get ns
      NAME              STATUS   AGE
      default           Active   21h
      dev               Active   21s
      kube-node-lease   Active   21h
      kube-public       Active   21h
      kube-system       Active   21h
      
      # 在此namespace下創建并運行一個nginx的Pod
      [root@master ~]# kubectl run pod --image=nginx:latest -n dev
      kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
      deployment.apps/pod created
      
      # 查看新創建的pod
      [root@master ~]# kubectl get pod -n dev
      NAME  READY   STATUS    RESTARTS   AGE
      pod   1/1     Running   0          21s
      
      # 刪除指定的pod
      [root@master ~]# kubectl delete pod pod-864f9875b9-pcw7x
      pod "pod" deleted
      
      # 刪除指定的namespace
      [root@master ~]# kubectl delete ns dev
      namespace "dev" deleted
      

      命令式對象配置

      命令式對象配置就是使用命令配合配置文件一起來操作kubernetes資源。

      1) 創建一個nginxpod.yaml,內容如下:

      apiVersion: v1
      kind: Namespace
      metadata:
        name: dev
      
      ---
      
      apiVersion: v1
      kind: Pod
      metadata:
        name: nginxpod
        namespace: dev
      spec:
        containers:
        - name: nginx-containers
          image: nginx:latest
      

      2)執行create命令,創建資源:

      [root@master ~]# kubectl create -f nginxpod.yaml
      namespace/dev created
      pod/nginxpod created
      

      此時發現創建了兩個資源對象,分別是namespace和pod

      3)執行get命令,查看資源:

      [root@master ~]#  kubectl get -f nginxpod.yaml
      NAME            STATUS   AGE
      namespace/dev   Active   18s
      
      NAME            READY   STATUS    RESTARTS   AGE
      pod/nginxpod    1/1     Running   0          17s
      

      這樣就顯示了兩個資源對象的信息

      4)執行delete命令,刪除資源:

      [root@master ~]# kubectl delete -f nginxpod.yaml
      namespace "dev" deleted
      pod "nginxpod" deleted
      

      此時發現兩個資源對象被刪除了

      總結:
          命令式對象配置的方式操作資源,可以簡單的認為:命令  +  yaml配置文件(里面是命令需要的各種參數)
      

      聲明式對象配置

      聲明式對象配置跟命令式對象配置很相似,但是它只有一個命令apply。

      # 首先執行一次kubectl apply -f yaml文件,發現創建了資源
      [root@master ~]#  kubectl apply -f nginxpod.yaml
      namespace/dev created
      pod/nginxpod created
      
      # 再次執行一次kubectl apply -f yaml文件,發現說資源沒有變動
      [root@master ~]#  kubectl apply -f nginxpod.yaml
      namespace/dev unchanged
      pod/nginxpod unchanged
      
      總結:
          其實聲明式對象配置就是使用apply描述一個資源最終的狀態(在yaml中定義狀態)
          使用apply操作資源:
              如果資源不存在,就創建,相當于 kubectl create
              如果資源已存在,就更新,相當于 kubectl patch
      

      擴展:kubectl可以在node節點上運行嗎 ?

      kubectl的運行是需要進行配置的,它的配置文件是$HOME/.kube,如果想要在node節點運行此命令,需要將master上的.kube文件復制到node節點上,即在master節點上執行下面操作:

      scp  -r  HOME/.kube   node1: HOME/
      

      使用推薦: 三種方式應該怎么用 ?

      創建/更新資源 使用聲明式對象配置 kubectl apply -f XXX.yaml

      刪除資源 使用命令式對象配置 kubectl delete -f XXX.yaml

      查詢資源 使用命令式對象管理 kubectl get(describe) 資源名稱

      posted @ 2025-02-06 10:26  講文張字  閱讀(661)  評論(1)    收藏  舉報
      返回頂部
      主站蜘蛛池模板: 老司机午夜免费精品视频| 国语精品一区二区三区| 免费国产拍久久受拍久久| √天堂资源地址在线官网| 国产黄色精品一区二区三区| 18禁成人免费无码网站| 四虎精品永久在线视频| 亚洲狠狠婷婷综合久久久| 亚洲色欲色欲www在线看| 蜜桃成熟色综合久久av| 精品国产AV无码一区二区三区| 人人爽人人爽人人片a免费| 日韩欧美亚洲综合久久| 日韩精品一卡二卡在线观看| 少妇被黑人到高潮喷出白浆| 欧洲一区二区中文字幕| 亚洲中文字幕日韩精品| 国产精品亚洲mnbav网站| 国产亚洲精品第一综合| 九九热在线精品视频免费| 亚洲av片在线免费观看| 亚洲欧美日韩在线不卡| 日本熟妇XXXX潮喷视频| 日本熟妇浓毛hdsex| 亚洲永久精品免费在线看| 中文字幕国产精品二区| 亚洲国产成人精品福利无码| 亚洲熟妇熟女久久精品综合 | 国产毛片精品av一区二区| 中文字幕不卡在线播放| 国产精品综合av一区二区| 亚洲中文字幕av天堂| 亚洲国产成人久久综合人| 日本人妻巨大乳挤奶水免费| 国产欧美综合在线观看第十页| 你懂的一区二区福利视频| 亚洲色欲在线播放一区| 丰满岳乱妇久久久| 在线涩涩免费观看国产精品| 龙口市| 在线精品国精品国产尤物|