国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

kubernetes | 常用命令-縮容擴容回滾

superw / 1949人閱讀

摘要:查看版本查看節點部署說明提供名稱和鏡像地址鏡像地址再如查看測試獲取名字測試使用進行故障排除主要使用如下命令列出資源顯示資源詳情打印中的日志在中的上執行命令獲取應用配置查看應用是否在運行查看中有哪些結

查看版本
kubectl version
查看節點
kubectl get nodes
部署app

說明: 提供deployment名稱和app鏡像地址(docker鏡像地址)

kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080

再如:

run test --image=preparedman/mytomcat:tagname --port=8088
查看app
kubectl proxy

測試:curl http://localhost:8001/version

{
  "major": "1",
  "minor": "13",
  "gitVersion": "v1.13.3",
  "gitCommit": "721bfa751924da8d1680787490c54b9179b1fed0",
  "gitTreeState": "clean",
  "buildDate": "2019-02-01T20:00:57Z",
  "goVersion": "go1.11.5",
  "compiler": "gc",
  "platform": "linux/amd64"
}

獲取pod名字

export POD_NAME=$(kubectl get pods -o go-template --template "{{range .items}}{{.metadata.name}}{{"
"}}{{end}}")

測試:echo Name of the Pod: $POD_NAME

使用kubectl進行故障排除

主要使用如下命令

kubectl get - list resources 列出資源
kubectl describe - show detailed information about a resource 顯示資源詳情
kubectl logs - print the logs from a container in a pod 打印`pod` 中container的日志
kubectl exec - execute a command on a container in a pod 在`pod`中的container上執行命令

獲取應用配置

查看應用是否在運行

kubectl get pods

查看pod 中有哪些container

kubectl describe pods

結果如下:

Name:               kubernetes-bootcamp-6bf84cb898-jk4jc
Namespace:          default
Priority:           0
PriorityClassName:  
Node:               minikube/172.17.0.72
Start Time:         Wed, 24 Apr 2019 13:21:58 +0000
Labels:             pod-template-hash=6bf84cb898
                    run=kubernetes-bootcamp
Annotations:        
Status:             Running
IP:                 172.18.0.4
Controlled By:      ReplicaSet/kubernetes-bootcamp-6bf84cb898
Containers:
  kubernetes-bootcamp:
    Container ID:   docker://55491b363d26b62e432cd4841ed4f65cc5b98e645d172c6ed88feaebcb4ec06c
    Image:          gcr.io/google-samples/kubernetes-bootcamp:v1
    Image ID:       docker-pullable://jocatalin/kubernetes-bootcamp@sha256:0d6b8ee63bb57c5f5b6156f446b3bc3b3c143d233037f3a2f00e279c8fcc64af
    Port:           8080/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Wed, 24 Apr 2019 13:22:00 +0000
    Ready:          True
    Restart Count:  0
    Environment:    
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-l7v8b (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  default-token-l7v8b:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-l7v8b
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  3m6s  default-scheduler  Successfully assigned default/kubernetes-bootcamp-6bf84cb898-jk4jc to minikube
  Normal  Pulled     3m4s  kubelet, minikube  Container image "gcr.io/google-samples/kubernetes-bootcamp:v1" already present on machine
  Normal  Created    3m4s  kubelet, minikube  Created container
  Normal  Started    3m4s  kubelet, minikube  Started container

打印container日志
kubectl logs $POD_NAME
container中直接執行命令

比如:獲取pod名字是kubernetes-bootcamp-6bf84cb898-jk4jc的日期,默認使用第一個container container by default

kubectl exec kubernetes-bootcamp-6bf84cb898-jk4jc date  

再入:進入container的命令行環境

kubectl exec kubernetes-bootcamp-6bf84cb898-jk4jc bash

退出使用

exit

暴露你的應用service 列出當前集群中的service
kubectl get services
創建一個新的service并暴露給外部流量
kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
查看service詳情
$ kubectl describe services/kubernetes-bootcamp

結果:

Name:                     kubernetes-bootcamp
Namespace:                default
Labels:                   run=kubernetes-bootcamp
Annotations:              
Selector:                 run=kubernetes-bootcamp
Type:                     NodePort
IP:                       10.105.231.53
Port:                       8080/TCP
TargetPort:               8080/TCP
NodePort:                   32400/TCP
Endpoints:                172.18.0.4:8080
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   
創建一個環境變量NODE_PORT,它的值等于service暴露的端口
export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template="{{(index .spec.ports 0).nodePort}}")

echo NODE_PORT=$NODE_PORT

測試:

curl $(minikube ip):$NODE_PORT

使用labels 查看label
kubectl describe deployment

你能看到這樣一行:

Labels:                 run=kubernetes-bootcamp
通過label查詢pod
kubectl get pods -l run=kubernetes-bootcamp
通過label查詢service
kubectl get services -l run=kubernetes-bootcamp
獲取pod名字,并保存到環境變量POD_NAME
export POD_NAME=$(kubectl get pods -o go-template --template "{{range .items}}{{.metadata.name}}{{"
"}}{{end}}")

echo name of the pod: $POD_NAME
添加新的lebel

使用label命令

kubectl label pod $POD_NAME app=v1

查看:

kubectl describe pods $POD_NAME
刪除service 通過label刪除service
kubectl delete service -l run=kubernetes-bootcamp

確認刪除:

kubectl get services

確認沒有暴露給集群外部:

curl $(minikube ip):$NODE_PORT

確認集群內部還可以訪問:

kubectl exec -ti $POD_NAME curl localhost:8080

擴容 設置deploymentsreplica數量為4
kubectl scale deployments/kubernetes-bootcamp --replicas=4

查看結果:

可以看到修改replica設置生效

NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   4/4     4            4           3m17s

pod數量已經改變,查看詳情

kubectl get pods -o wide

結果:

NAME                                   READY   STATUS    RESTARTS   AGE     IP           NODE       NOMINATED NODE   READINESS GATES
kubernetes-bootcamp-6bf84cb898-7tbrg   1/1     Running   0          2m50s   172.18.0.5   minikube              
kubernetes-bootcamp-6bf84cb898-fx68f   1/1     Running   0          3m52s   172.18.0.4   minikube              
kubernetes-bootcamp-6bf84cb898-prgsc   1/1     Running   0          2m50s   172.18.0.6   minikube              
kubernetes-bootcamp-6bf84cb898-qv4gc   1/1     Running   0          2m50s   172.18.0.7   minikube              

查看4個pod

kubectl describe deployments/kubernetes-bootcamp

結果:

Replicas:               4 desired | 4 updated | 4 total | 4 available | 0 unavailable
查看service是否是負載均衡的 查看具體IP
kubectl describe services/kubernetes-bootcamp

結果:

Endpoints:                172.18.0.2:8080,172.18.0.4:8080,172.18.0.6:8080 + 1 more...
創建環境變量NODE_PORT
export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template="{{(index .spec.ports 0).nodePort}}")

echo NODE_PORT=$NODE_PORT
調用請求

可以看到,每次請求的都是不同的pod

curl $(minikube ip):$NODE_PORT

結果:

Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6bf84cb898-2l975 | v=1
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6bf84cb898-zbmj4 | v=1
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6bf84cb898-qg5xh | v=1
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6bf84cb898-zbmj4 | v=1
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6bf84cb898-bn98t | v=1
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6bf84cb898-zbmj4 | v=1
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6bf84cb898-zbmj4 | v=1
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6bf84cb898-zbmj4 | v=1
縮容
kubectl scale deployments/kubernetes-bootcamp --replicas=2

## 更新到版本2

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2

驗證更新

查看暴露出來的ip和端口

kubectl describe services/kubernetes-bootcamp

結果:

Name:                     kubernetes-bootcamp
Namespace:                default
Labels:                   run=kubernetes-bootcamp
Annotations:              
Selector:                 run=kubernetes-bootcamp
Type:                     NodePort
IP:                       10.98.28.235
Port:                       8080/TCP
TargetPort:               8080/TCP
NodePort:                   31419/TCP
Endpoints:                172.18.0.10:8080,172.18.0.11:8080,172.18.0.8:8080 + 1 more...
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   

創建環境變量

export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template="{{(index .spec.ports 0).nodePort}}")

echo NODE_PORT=$NODE_PORT

訪問:

curl $(minikube ip):$NODE_PORT

結果:

訪問版本2,且每次訪問不同的地址

Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-5bf4d5689b-tcxpf | v=2
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-5bf4d5689b-tcxpf | v=2
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-5bf4d5689b-86c8g | v=2
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-5bf4d5689b-fx9tf | v=2
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-5bf4d5689b-tcxpf | v=2
確認更新
kubectl rollout status deployments/kubernetes-bootcamp

回滾

更新到版本10

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=gcr.io/google-samples/kubernetes-bootcamp:v10

查看發現報錯,因為版本庫中沒有版本10

kubectl get deployments
kubectl get pods
kubectl describe pods

報錯

Warning  Failed     38s (x3 over 77s)  kubelet, minikube  Failed to pull image "gcr.io/google-samples/kubernetes-bootcamp:v10": rpc error: code = Unknown desc = Error response from daemon: manifest for gcr.io/google-samples/kubernetes-bootcamp:v10 not found

執行會滾

kubectl rollout undo deployments/kubernetes-bootcamp

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/33009.html

相關文章

  • kubernetes | 常用命令-縮容擴容回滾

    摘要:查看版本查看節點部署說明提供名稱和鏡像地址鏡像地址再如查看測試獲取名字測試使用進行故障排除主要使用如下命令列出資源顯示資源詳情打印中的日志在中的上執行命令獲取應用配置查看應用是否在運行查看中有哪些結 查看版本 kubectl version 查看節點 kubectl get nodes 部署app 說明: 提供deployment名稱和app鏡像地址(docker鏡像地址) kub...

    idealcn 評論0 收藏0
  • 數人云|當K8S遇上微服務-京東金融PaaS平臺思考與實踐

    摘要:平臺上的微服務架構應用再來看一下我眼中的基于當前最流行的微服務架構的設計是什么樣的,即我們平臺上要運行的典型應用是什么樣的。 showImg(https://segmentfault.com/img/remote/1460000010900878); 8月19日的數人云Container Meetup上,張龍老師做了《基于Kubernetes的PaaS平臺的設計和思考》的精彩分享,分別...

    Imfan 評論0 收藏0
  • Kubernetes概念與術語

    摘要:標識是與操作對象間的紐帶。集群為每個對象維護三類信息對象元數據期望狀態與實際狀態元數據指對象的基本信息,比如命名標簽注釋等等,用于識別對象期望狀態一般由用戶配置來描述的實際狀態是由集群各個組件上報的集群實際的運行情況。 綜述 學習Kubernetes時,發現它的概念和術語還是比較多的,光靠啃官方文檔比較晦澀。所以邊學習邊整理,對主要的概念和術語做一下分類及簡要說明。感覺把重要概念都理解...

    _Suqin 評論0 收藏0
  • Kubernetes 核心概念

    摘要:核心概念是最小的調度單元,可以由一個或者多個容器組成。該模式會跟云服務商有關,比如可以通過等創建一個外部的負載均衡器,將請求轉發到對應的服務組。而可以提供外部服務可訪問的負載均衡器等。 概述 Kubernetes 有各類資源對象來描述整個集群的運行狀態。這些對象都需要通過調用 kubernetes api 來進行創建、修改、刪除,可以通過 kubectl 命令工具,也可以直接調用 k8...

    Cobub 評論0 收藏0
  • kubernetes學習

    摘要:知識點核心組件保存整個集群的狀態信息,感覺相當于的數據庫提供對資源操作的唯一入口,并提供認證授權,訪問控制,注冊與發現等機制負責維護集群的狀態,故障檢測,自動擴展,滾動更新等負責對資源的調度,按著預定的調度策略將調度到相應的集群上負責維護容 kubernetes kubernetes 知識點 1. 核心組件 etcd 保存整個集群的狀態信息,感覺相當于k8s的數據庫 apiserve...

    lncwwn 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<