日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 一、資源管理辦法
    • 1.1 陳述式資源管理方法
      • 查看版本信息
      • 查看資源對象簡寫
      • 查看集群信息
      • 配置kubectl自動補全
      • node 節(jié)點查看日志
    • 1.2基本信息查看
      • 查看master 節(jié)點狀態(tài)
      • 查看命令空間
      • 查看default命名空間的所有資源
      • create 創(chuàng)建命名空間 (app)
      • delete 刪除命名空間(app)
      • 在命名空間創(chuàng)建副本控制器啟動Pod
      • 查看命名空間kube-public中的pod信息
      • kubectl exec 登錄容器
      • 重啟(刪除)pod資源
      • 擴容縮容
      • 刪除副本控制器
  • 二、項目的生命周期
    • 2.1 創(chuàng)建kubectl run命令
      • 2.2 發(fā)布 kubectl expose 命令
        • 查看pod網(wǎng)絡(luò)狀態(tài)詳細信息和Service暴露的端口
        • 查看關(guān)聯(lián)后端的節(jié)點
        • 查看service 的描述信息
      • 2.3更新kubectlset
        • 獲取修改模板
        • 查看當(dāng)前nginx 的版本號
        • 將nginx 版本更新為1.15版本
        • 再看更新好后的Pod的ip會改變
        • 再看nginx 的版本號
      • 2.4回滾kubectlrollout
        • 對資源進行回滾管理
        • 查看歷史版本
        • 執(zhí)行回滾到上一個版本
        • 執(zhí)行回滾到指定版本
        • 檢查回滾狀態(tài)
      • 2.5 刪除kubectl delete
        • 2.6金絲雀發(fā)布(Canary Release)
        • 三、聲明式管理方法:YAML文件
          • 3.1 yaml 文件簡介
            • 3.2YAML語法格式
              • 3.3yaml文件組成部分
                • 3.4查看api資源版本標(biāo)簽
                  • 3.5 編寫 nginx-deployment.yaml 資源配置清單
                    • 創(chuàng)建資源對象
                    • 查看創(chuàng)建的pod資源
                  • 3.6 創(chuàng)建service服務(wù)對外提供訪問并測試
                  • 四、k8s中的port概述
                    • 4.1創(chuàng)建yaml文件模板
                      • 查看生成yaml格式
                      • 查看生成json格式
                      • 使用yaml格式導(dǎo)出生成模板,并進行修改以及刪除一些不必要的參數(shù)
                      • 生成鏡像并查看
                      • 將現(xiàn)有的資源生成模板導(dǎo)出
                      • 保存到文件中
                      • 查看字段幫助信息
                    • 4.2 怎樣更輕松的寫yaml
                      • 4.2.1 用run命令生成
                      • 4.2.2用get命令導(dǎo)出

                  一、資源管理辦法

                  K8S?中?kubectl?命令詳解

                  1.1 陳述式資源管理方法

                  kubernetes集群管理集群資源的唯一入口是通過相應(yīng)的方法調(diào)用apiserver的接口

                  kubectl 是官方的CLI命令行工具,用于與apiserver 進行通信,將用戶在命令行輸入的命令,組織并轉(zhuǎn)化為apiserver能識別的信息,進而實現(xiàn)管理k8s 各種資源的一種有效途徑

                  kubectl 的命令大全
                  kubectl –help
                  k8s中文文檔: http://docs.kubernetes.org.cn/683.html

                  對資源的增、刪、查操作比較方便,但對改的操作就不容易

                  查看版本信息

                  kubectl version

                  K8S?中?kubectl?命令詳解

                  查看資源對象簡寫

                  kubectl api-resources 

                  K8S?中?kubectl?命令詳解

                  查看集群信息

                  kubectl cluster-info

                  K8S?中?kubectl?命令詳解

                  配置kubectl自動補全

                  source <(kubectl completion bash)

                  注意:此時命令補全功能切換環(huán)境后是不生效的,如果要使切換環(huán)境后也生效需要配置全局環(huán)境變量

                  vim /etc/bashrc
                  .....
                  source <(kubectl completion bash)         #在底部添加

                  K8S?中?kubectl?命令詳解

                  node 節(jié)點查看日志

                  journalctl -u kubelet -f
                  
                  或者直接查看日志
                   
                  cat /var/log/messages

                  K8S?中?kubectl?命令詳解

                  1.2基本信息查看

                  kubectl get <resource> [-o wide | json | yaml] [-n namespace]

                  獲取資源的相關(guān)信息, -n指定命令空間, -o指定輸出格式

                  resource可以是具體資源名稱,如pod nginx -xxx;也可以是資源類型,如pod; 或者all (僅展示幾種核心資源,并不完整)

                  –all-namespaces 或-A :表示顯示所有命令空間,

                  –show-labels :顯示所有標(biāo)簽

                  -l app:僅顯示標(biāo)簽為app的資源

                  -l app=nginx :僅顯示包含app標(biāo)簽, 且值為nginx的資源

                  查看master 節(jié)點狀態(tài)

                  kubectl get componentstatuseskubectl get cs

                  K8S?中?kubectl?命令詳解

                  查看命令空間

                  命令空間的作用:用于允許不同 命令空間的相同類型的資源重名

                  kubectl get name space
                  kubectl get ns

                  K8S?中?kubectl?命令詳解

                  查看default命名空間的所有資源

                  kubectl get all [-n default]

                  K8S?中?kubectl?命令詳解

                  create 創(chuàng)建命名空間 (app)

                  kubectl create ns app
                  kubectl get ns

                  K8S?中?kubectl?命令詳解

                  delete 刪除命名空間(app)

                  kubectl delete namespace app
                  kubectl get ns

                  K8S?中?kubectl?命令詳解

                  在命名空間創(chuàng)建副本控制器啟動Pod

                  例:在命名空間kube-public 創(chuàng)建副本控制器( deployment) 來啟動Pod (nginx-cc)

                  kubectl create deployment nginx-cc --image=nginx -n kube-public
                  

                  描述某個資源的詳細信息

                  kubectl describe deployment nginx-cc -n kube-public
                  kubectl describe pod nginx-cc-5d7d5c6b54 -n kube-public

                  K8S?中?kubectl?命令詳解

                  K8S?中?kubectl?命令詳解

                  查看命名空間kube-public中的pod信息

                  kubectl get pods -n kube-public

                  K8S?中?kubectl?命令詳解

                  kubectl exec 登錄容器

                  kubectl exec可以跨主機登錄容器,docker exec 只能在容器所在主機上登錄

                  kubectl exec -it nginx-cc-df5946cf-6k8rf bash -n kube-public 

                  K8S?中?kubectl?命令詳解

                  重啟(刪除)pod資源

                  由于存在deployment/rc之類的副本控制器,刪除pod也會重新拉起來

                  kubectl delete pod nginx-cc-xxxxx -n kube-public

                  K8S?中?kubectl?命令詳解

                  若pod無法刪除,總是處于terminate狀態(tài), 則要強行刪除pod

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

                  擴容縮容

                  kubectl scale deployment nginx-cc --replicas=3 -n kube-public  #擴容
                  kubectl scale deployment nginx-cc --replicas=1 -n kube-public  #縮容

                  K8S?中?kubectl?命令詳解

                  K8S?中?kubectl?命令詳解

                  刪除副本控制器

                  kubectl delete deployment nginx-cc -n kube-public
                  kubectl delete deployment/nginx-cc -n kube-public

                  K8S?中?kubectl?命令詳解

                  二、項目的生命周期

                  創(chuàng)建–>發(fā)布–>更新–>回滾–>刪除

                  2.1 創(chuàng)建kubectl run命令

                  • 創(chuàng)建并運行一個或多個容器鏡像
                  • 創(chuàng)建一個 deployment 或 job 來管理容器
                  kubectl run --help
                  ##啟動 nginx 實例,暴露容器端口80,設(shè)置副本數(shù) 3
                  kubectl run nginx --image=nginx:1.14 --port=80 【--replicas=3】
                  注:【--replicas=3】 只是用老版本的k8s ,現(xiàn)在的新版本不能使用
                  kubectl get pods
                  kubectl get all

                  K8S?中?kubectl?命令詳解

                  K8S?中?kubectl?命令詳解

                  2.2 發(fā)布 kubectl expose 命令

                  將資源暴露為新的Service

                  kubectl expose --help

                  K8S?中?kubectl?命令詳解

                  為deployment(無狀態(tài)部署)的nginx創(chuàng)建service, 并通過Service的80端口轉(zhuǎn)發(fā)至容器的80端口上,Service的名稱為nginx-service, 類型為NodePort

                  kubectl expose pod nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort

                  Kubernetes之所以需要Service, 一方面是因為Pod的IP 不是固定的(Pod可能會重建),另一方面則是因為一組Pod實例之間總會有負載均衡的需求。
                  Service通過label Selector實現(xiàn)的對一組的Pod的訪問。
                  對于容器應(yīng)用而言,Kubernetes 提供了基于VIP (虛擬IP)的網(wǎng)橋的方式訪問 Service, 再由Service 重定向到相應(yīng)的Pod。
                  service的類型:

                  1、ClusterIP:提供一個集群內(nèi)部的虛擬IP以供Pod訪問( service默認(rèn)類型

                  2、NodePort:在每個Node.上打開一個端口以供外部訪問,Kubernetes將會在每個Node.上打開一個端口并且每個Node的端口都是一樣的,通過NodeIp:NodePort的方式Kubernetes集群外部的程序可以訪問Service。

                  注:每個端口只能是一種服務(wù),端口范圍只能是30000-32767

                  3、LoadBalancer:通過外部的負載均衡器來訪問,通常在云平臺部署LoadBalancer還需要額外的費用。

                  K8S?中?kubectl?命令詳解

                  查看pod網(wǎng)絡(luò)狀態(tài)詳細信息和Service暴露的端口

                  kubectl get pods,svc -o wide
                  

                  K8S?中?kubectl?命令詳解

                  查看關(guān)聯(lián)后端的節(jié)點

                  kubectl get endpoints

                  K8S?中?kubectl?命令詳解

                  查看service 的描述信息

                  kubect1 describe svc nginx

                  K8S?中?kubectl?命令詳解

                  2.3更新kubectlset

                  • 更改現(xiàn)有應(yīng)用資源一些信息
                  • kubectl set --help

                  K8S?中?kubectl?命令詳解

                  獲取修改模板

                  kubectl set image --help

                  K8S?中?kubectl?命令詳解

                  查看當(dāng)前nginx 的版本號

                  curl -I http://192.168.111.20:31828
                  curl -I http://192.168.111.30:31828

                  K8S?中?kubectl?命令詳解

                  K8S?中?kubectl?命令詳解

                  將nginx 版本更新為1.15版本

                  kubectl set image pod/nginx-deployment  nginx=nginx:1.15
                  

                  處于動態(tài)監(jiān)聽pod狀態(tài),由于使用的是滾動更新方式,所以會先生成–個新的pod,然后刪除–個舊的pod,往后依次類推(動態(tài)更新的)

                  K8S?中?kubectl?命令詳解

                  再看更新好后的Pod的ip會改變

                  kubectl get pods -o wide

                  K8S?中?kubectl?命令詳解

                  再看nginx 的版本號

                  K8S?中?kubectl?命令詳解

                  2.4回滾kubectlrollout

                  對資源進行回滾管理

                  kubectl rollout --help

                  K8S?中?kubectl?命令詳解

                  查看歷史版本

                  kubectl rollout history deployment/nginx-test01 -n app

                  K8S?中?kubectl?命令詳解

                  K8S?中?kubectl?命令詳解

                  執(zhí)行回滾到上一個版本

                  kubectl rollout undo deployment.apps/nginx-test01 -n app
                  

                  K8S?中?kubectl?命令詳解

                  K8S?中?kubectl?命令詳解

                  執(zhí)行回滾到指定版本

                  kubectl rollout undo deployment.apps/nginx-test01 --to-revision=3 -n app

                  K8S?中?kubectl?命令詳解

                  檢查回滾狀態(tài)

                  kubectl rollout status deployment/nginx

                  K8S?中?kubectl?命令詳解

                  2.5 刪除kubectl delete

                  //刪除副本控制器
                  [root@master ~]# kubectl delete deployment/nginx
                  deployment.extensions "nginx" deleted
                  //刪除service
                  [root@master ~]# kubectl delete svc/nginx-service
                  service "nginx-service" deleted
                  [root@master ~]# kubectl get all
                  NAME                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
                  service/kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP        15h
                  service/nginx        NodePort    10.96.59.53   <none>        80:31670/TCP   15h

                  2.6金絲雀發(fā)布(Canary Release)

                  Deployment控制器支持自定義控制更新過程中的滾動節(jié)奏,如“暫停(pause)”或“繼續(xù)(resume)”更新操作。比如等待第一批新的Pod資源創(chuàng)

                  建完成后立即暫停更新過程,此時,僅存在一部分新版本的應(yīng)用,主體部分還是舊的版本。然后,再篩選一小部分的用戶請求路由到新版本的Pod應(yīng)用,繼續(xù)觀察能否穩(wěn)定地按期望的方式運行。確定沒問題之后再繼續(xù)完成余下的Pod資源滾動更新,否則立即回滾更新操作。這就是所謂的金絲雀發(fā)布。

                  (1)更新deployment的版本,并配置暫停deployment
                  kubectl set image deployment/nginx nginx=nginx:1.14 && kubectl rollout pause deployment/nginx
                   
                  kubectl rollout status deployment/nginx
                  #觀察更新狀態(tài)
                   
                  (2)監(jiān)控更新的過程,可以看到已經(jīng)新增了一個資源,但是并未按照預(yù)期的狀態(tài)去刪除一個舊的資源, 就是因為使用了pause暫停命令
                  kubectl get pods -W
                   
                  curl [-I] 10.0.0.189
                  curl [-I] 192.168.111.20:44847
                   
                  (3)確保更新的pod沒問題了,繼續(xù)更新
                  kubectl rollout resume deployment/nginx
                   
                  (4)查看最后的更新情況
                  kubectl get pods -W
                   
                  curl [-I] 10.0.0.189
                  curl [-I] 192.168.111.20:44847

                  三、聲明式管理方法:YAML文件

                  • 適合于對資源的修改操作
                  • 聲明式資源管理方法依賴于資源配置清單文件對資源進行管理
                  • 資源配置清單文件有兩種格式: yaml(人性化,易讀),json(易于api接口解析)
                  • 對資源的管理,是通過事先定義在統(tǒng)一資源配置清單內(nèi),再通過陳述式命令應(yīng)用到k8s集群里
                  • 語法格式: kubectl create/apply/delete -f xxxx. yaml

                  3.1 yaml 文件簡介

                  YAML,即 YAML Ain’t a Markup Language(YAML 不是一種標(biāo)記語言)的遞歸縮寫。YAML 其實意思是 Yet Another Markup Language(仍是一種標(biāo)記語言)。它主要強度這種語言是以數(shù)據(jù)為中心,而不是以標(biāo)記為中心,而像 XML 語言就使用了大量的標(biāo)記。

                  YAML 可讀性高,易于理解,用來表達數(shù)據(jù)序列化的格式。它的語法和其他高級語言類似,還可以簡單表達數(shù)組、散列表,標(biāo)量等數(shù)據(jù)形態(tài)。它使用空白符號縮進和大量依賴外觀的特色,特別適合用來表達或編輯數(shù)據(jù)結(jié)構(gòu)、各種配置文件。

                  YAML 配置文件后綴為.yml,例如application.yml。

                  yaml 和 json 的主要區(qū)別:

                  • YAML 使用空格縮進,這是 Python 開發(fā)人員熟悉的領(lǐng)域。
                  • JavaScript 開發(fā)人員喜歡 JSON,因為它是 JavaScript 的一個子集,可以直接在 JavaScript 中解釋和編寫,同時使用簡寫方式聲明 JSON,在使用沒有空格的典型變量名時,不需要鍵中的雙引號。
                  • 有很多解析器在 YAML 和 JSON 的所有語言中都能很好地工作。
                  • 在許多情況下,YAML 的空白格式可以更容易查看,因為格式化需要更人性化的方法。
                  • 如果您的編輯器中沒有空格可見或縮進線指示符,那么 YAML 的空白雖然更緊湊,更容易查看,但可能難以手動編輯。
                  • JSON 的序列化和反序列化要快得多,因為要檢查的功能明顯少于 YAML,這使得更小更輕的代碼能夠處理 JSON。
                  • 一個常見的誤解是 YAML 需要較少的標(biāo)點符號并且比 JSON 更緊湊,但這完全是錯誤的。空格是不可見的,所以看起來字符較少,但是如果你計算實際的空格是必要的,以便正確解釋 YAML 以及正確的縮進,你會發(fā)現(xiàn) YAML 實際上需要比 JSON 更多的字符。JSON 不使用空格來表示層次結(jié)構(gòu)或分組,并且可以通過刪除不必要的空格來輕松展平,以實現(xiàn)更緊湊的傳輸。

                  3.2YAML語法格式

                  Kubernetes支持YAML和JSON 格式管理資源對象

                  JSON格式:主要用于api接口之間消息的傳遞

                  YAML格式:用于配置和管理,YAML的配置參數(shù)格式比較清晰

                  語法格式:

                  大小寫敏感

                  以空格的方式縮進標(biāo)識層級關(guān)系

                  通常開頭縮進兩個空格(統(tǒng)一層級對應(yīng)即可)
                  不支持制表符“tab”縮進,只使用空格縮進
                  關(guān)鍵詞字符后縮進一個空格,比如冒號,逗號后面需要縮進一個字符
                  “—”表示YAML格式,一個文件的開始

                  支持以“#”表示注釋

                  3.3yaml文件組成部分

                  • 控制器定義
                  • 被控制對象

                  K8S?中?kubectl?命令詳解

                  字段說明:

                  apiVersion API版本
                  kind 資源類型
                  metadata 資源元數(shù)據(jù)
                  spec 資源規(guī)格
                  replicas 副本數(shù)量
                  selector 標(biāo)簽選擇器
                  template Pod模板
                  metadata Pod元數(shù)據(jù)
                  spec Pod規(guī)格
                  container 容器配置

                  3.4查看api資源版本標(biāo)簽

                  K8S—apiVersion對照表:點擊這里

                  kubectl api-versions

                  K8S?中?kubectl?命令詳解

                  如果是業(yè)務(wù)場景,一般首選使用 apps/v1(apps/v1 從 v1.9 版本開始提供 API)。

                  在 k8s v1.16 版本之前使用的是 extensions/v1beta1,extensions/v1beta1 從 v1.20 版本開始不再提供 Ingress 資源。

                  帶有 beta 字樣的代表的是測試版本,不用在生產(chǎn)環(huán)境中。

                  3.5 編寫 nginx-deployment.yaml 資源配置清單

                  K8S?中?kubectl?命令詳解

                  mkdir /opt/demo
                  cd /opt/demo/
                  參考模板:
                  vim nginx-deployment.yaml
                  apiVersion: apps/v1   #指定api版本標(biāo)簽
                  kind: Deployment      #定義資源的類型/角色,deployment 為副本控制器,
                  此處資源類型可以是Deployment、Job、 Ingress、 Service等
                  metadata:             #定義資源的元數(shù)據(jù)信息,比如資源的名稱、namespace、標(biāo)簽等信息
                    name: nginx-deployment   #定義資源的名稱,在同一個namespace空間中必須是唯一的
                    labels:             #定義資源標(biāo)簽(Pod的標(biāo)簽)
                      app: nginx
                  spec:              #定義deployment資源需要的參數(shù)屬性,諸如是否在容器失敗時重新啟動容器的屬性
                   replicas: 3       #定義副本數(shù)量
                   selector :        #定義標(biāo)簽選擇器
                    matchLabels:     #定義匹配標(biāo)簽
                      app: nginx     #匹配上面的標(biāo)簽,需與上面的標(biāo)簽定義的app保持一致
                   template:         #定義業(yè)務(wù)模板,如果有多個副本,所有副本的屬性會按照模板的相關(guān)配置進行匹配
                    metadata:
                      labels:
                        app: nginx
                    spec:
                     containers:            #定義容器屬性
                     - name: nginx          #定義一個容器名,一個- name: 定義一個容器
                      image: nginx:1.15.4   #定義容器使用的鏡像以及版本
                      ports:
                      - containerPort: 80   #定義容器的對外的端口
                  實例:
                  vim nginx-deployment.yaml
                  apiVersion: apps/v1
                  kind: Deployment
                  metadata:
                    name: nginx-deployment
                    namespace: kube-public
                    labels:
                      name: nginx-deployment
                  spec:
                    replicas: 3
                    selector:
                      matchLabels:
                        app: nginx-demo1
                    template:
                      metadata:
                        labels:
                          app: nginx-demo1
                      spec:
                        containers:
                          - name: nginx
                            image: nginx:1.15.4
                            ports:
                              - name: http
                                containerPort: 80

                  K8S?中?kubectl?命令詳解

                  創(chuàng)建資源對象

                  kubectl create -f nginx-deployment.yaml
                  或者
                  kubectl apply -f nginx-deployment.yaml

                  K8S?中?kubectl?命令詳解

                  查看創(chuàng)建的pod資源

                  kubectl get pods -o wide -n kube-public
                  kubectl get deploy -n kube-public

                  K8S?中?kubectl?命令詳解

                  3.6 創(chuàng)建service服務(wù)對外提供訪問并測試

                  K8S?中?kubectl?命令詳解

                  apiVersion: v1
                  kind: Service
                  metadata:
                    name: nginx-demo1
                    namespace: kube-public
                    labels:
                      name: nginx-demo1
                  spec:
                    type: NodePort
                    ports:
                      - port: 8080
                        targetPort: 80
                        nodePort: 31333
                    selector:
                      app: nginx-demo1

                  K8S?中?kubectl?命令詳解

                  kubectl apply -f nginx-server.yaml
                  kubectl get svc -n kube-public

                  K8S?中?kubectl?命令詳解

                  在瀏覽器輸入 nodeIP: nodePort 即可訪問
                  http://192.168.111.20:31333
                  http://192.168.111.30:31333

                  K8S?中?kubectl?命令詳解

                  K8S?中?kubectl?命令詳解

                  四、k8s中的port概述

                  K8S?中?kubectl?命令詳解

                  ●port
                  port是k8s集群內(nèi)部訪問service的端口,即通過clusterIP: port可以從Pod所在的Node. 上訪問到service

                  ●nodePort
                  nodePort是外部訪問k8s集群中service的端口,通過nodeIP: nodePort 可以從外部訪問到某個service。

                  ●targetPort
                  targetPort是Pod的端口,從port或nodePort來的流量經(jīng)過kube-proxy 反向代理負載均衡轉(zhuǎn)發(fā)到后端Pod的targetPort上,最后進入容器。

                  ●containerPort
                  containerPort是Pod內(nèi)部容器的端口,targetPort 映射到containerPort

                  4.1創(chuàng)建yaml文件模板

                  kubectl run –dry-run 打印相應(yīng)的API 對象 而不執(zhí)行創(chuàng)建

                  --dry-run:試運行

                  kubectl run nginx-test --image=nginx --port=80 --replicas=3 --dry-run

                  K8S?中?kubectl?命令詳解

                  --dry-run表示試運行,不真正執(zhí)行命令(測試命令是否正確),即并不會真的創(chuàng)建出 pod 和 deployment 實例,去掉該參數(shù)后即可真正執(zhí)行命令。

                  查看生成yaml格式

                  使用--dry-run試運行可不觸發(fā)生成命令,然后通過-o yaml可實現(xiàn)對其 yaml 資源配置清單的查看

                  kubectl run nginx-test --image=nginx --port=80 --replicas=3 --dry-run -o yaml
                  

                  K8S?中?kubectl?命令詳解

                  查看生成json格式

                  可通過 -o json 查看該命令產(chǎn)生的 json 配置清單

                  kubectl run nginx-test --image=nginx --port=80 --replicas=3 --dry-run -o json 
                  

                  K8S?中?kubectl?命令詳解

                  使用yaml格式導(dǎo)出生成模板,并進行修改以及刪除一些不必要的參數(shù)

                  kubectl run nginx-test --image=nginx --port=80 --replicas=3 --dry-run -o yaml > nginx-test.yaml
                  

                  K8S?中?kubectl?命令詳解

                  模板:
                  vim nginx-test.yaml
                  apiVersion: apps/v1betal     #api 版本改成 api/v1
                  kind: Deployment
                  metadata:
                    creationTimestamp: null    #刪除
                    labels:
                      run: nginx-test
                    name: nginx-test
                  spec: 
                    replicas: 3
                    selector: 
                      matchLabels: 
                        run: nginx-test
                    strategy: {}                #刪除
                    template: 
                      metadata: 
                        creationTimestamp: null #刪除
                        labels: 
                          run: nginx-test
                      spec: 
                        containers: 
                        - image: nginx
                          name: nginx-test
                          ports: 
                          - containerPort: 80
                          resources: {}         #刪除
                  status: {}                    #刪除
                   
                  例:
                  apiVersion: v1
                  kind: Service
                  metadata:
                    labels:
                      name: nginx-demo2
                    name: nginx-demo2
                    namespace: kube-public
                  spec:
                    ports:
                    - port: 8044
                      protocol: TCP
                      targetPort: 80
                    selector:
                      run: nginx-demo2
                    type: NodePort

                  K8S?中?kubectl?命令詳解

                  生成鏡像并查看

                  kubectl apply -f nginx-test.yaml
                  kubectl get svc -n kube-public

                  K8S?中?kubectl?命令詳解

                  將現(xiàn)有的資源生成模板導(dǎo)出

                  kubectl get pod/nginx-deployment-6f9f6d866c-2w9gz  -o yaml -n kube-public
                  ###注現(xiàn)在最新版本的kubctl  get 不支持 --export 參數(shù) 

                  K8S?中?kubectl?命令詳解

                  保存到文件中

                  kubectl get deployment.apps/nginx-deployment -o yaml -n kube-public > my-deploy.yaml
                  

                  K8S?中?kubectl?命令詳解

                  K8S?中?kubectl?命令詳解

                  查看字段幫助信息

                  explain 可一層層的查看相關(guān)資源對象的幫助信息

                  kubectl explain deployments.spec.template.spec.containers
                  或
                  kubectl explain pods.spec.containers

                  K8S?中?kubectl?命令詳解

                  4.2 怎樣更輕松的寫yaml

                  4.2.1 用run命令生成

                  沒有相關(guān)資源,使用run或者create命令--dry-run選項,后期可以修改yaml文件。

                  kubectl run my-deploy --image=nginx --dry-run -o yaml > my-deploy.yaml

                  4.2.2用get命令導(dǎo)出

                  已有相關(guān)資源,使用get命令 【--export選項 :適用老版本的kubectl】

                  kubectl get deploy/nginx-deployment  -o=yaml -n kube-public > new.yaml
                  

                  yaml文件的學(xué)習(xí)方法

                  (1)多看別人(官方)寫的,能讀懂
                  (2)能照著現(xiàn)場的文件改著用
                  (3)遇到不懂的,善用kubectl explain …命令查

                  分享到:
                  標(biāo)簽:K8S kubectl 命令 服務(wù)器 詳解
                  用戶無頭像

                  網(wǎng)友整理

                  注冊時間:

                  網(wǎng)站:5 個   小程序:0 個  文章:12 篇

                  • 51998

                    網(wǎng)站

                  • 12

                    小程序

                  • 1030137

                    文章

                  • 747

                    會員

                  趕快注冊賬號,推廣您的網(wǎng)站吧!
                  最新入駐小程序

                  數(shù)獨大挑戰(zhàn)2018-06-03

                  數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

                  答題星2018-06-03

                  您可以通過答題星輕松地創(chuàng)建試卷

                  全階人生考試2018-06-03

                  各種考試題,題庫,初中,高中,大學(xué)四六

                  運動步數(shù)有氧達人2018-06-03

                  記錄運動步數(shù),積累氧氣值。還可偷

                  每日養(yǎng)生app2018-06-03

                  每日養(yǎng)生,天天健康

                  體育訓(xùn)練成績評定2018-06-03

                  通用課目體育訓(xùn)練成績評定