最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

學(xué)習(xí)日志 21-12-15 k8s入門 擴(kuò)容等

2021-12-15 18:02 作者:mayoiwill  | 我要投稿

# pod運(yùn)維


## proxy到pod的服務(wù)

- pod 的名字格式 deployment名 + ID

- app標(biāo)簽 - deployment名?

- pod自己的ip 172.17.0.2

- 使用如下方式直接訪問pod的實(shí)際應(yīng)用服務(wù)(80端口)

? ```

? http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/

? ```

? - 參數(shù)解釋

? - api v1 ?

? - namespaces default

? - pods $POD_NAME

? - /proxy 表示代理到pod上的端口


## 看日志

- 看日志 `kubectl logs $POD_NAME`

? - 日志是具體pod哪個目錄的日志 這個是看的應(yīng)用的標(biāo)準(zhǔn)輸出

? - pod默認(rèn)啟動/監(jiān)聽的是哪個進(jìn)程?


## 登錄pod

- bash這個pod

? ```

? .\kubectl.exe exec -ti kubernetes-bootcamp-565f8cdbd6-mh4xt -- bash

? ```

## Q&A

- Q: pod默認(rèn)啟動/監(jiān)聽的是哪個進(jìn)程

- A: ??

- Q: kubectl proxy 形式如何訪問pod的非標(biāo)端口8080

- A: 查API文檔

? - https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/

? - ??


# Service


## 創(chuàng)建service

- 查看當(dāng)前service `kubectl get services`

? - 已有一個minikube創(chuàng)建的默認(rèn)service叫kubernetes 不用管它

- 創(chuàng)建新的

? - `kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080`

? - 操作 - expose

? - 資源類型 - 無

? - 資源名 - deployment/kubernetes-bootcamp

? - 細(xì)節(jié)參數(shù) - --type="NodePort" --port 8080

- 再次 get services 查看結(jié)果

- 查看service細(xì)節(jié)

? - `kubectl describe services/kubernetes-bootcamp`

? - 操作 - describe

? - 資源類型 - 無

? - 資源名 - services/kubernetes-bootcamp

? - expose 用的是 deployment/{部署名}

? - 創(chuàng)建好service后, 做describe時 用的是 services/{部署名}

? - deployment和services 之間 是不是 1:1 的關(guān)系?

? ? - 不一定, 但label是一樣的, 通過label一樣可以查service外部端口

? ? - 比如同一個pod, 可以暴露一個443服務(wù)端口 + 一個java debug調(diào)試端口

? - 目的是找service的外部端口, 我們指定了內(nèi)部端口是8080

? - 但是外部端口是隨機(jī)的

? - 根據(jù) NodePort 一行 (我們這個服務(wù)的類型就是NodePort)

? - 這個就是服務(wù)的外部暴露端口

? - IP用的是minikube的IP (不是kubectl proxy的localhost)

- service用minikube的ip, 但kubectl proxy用localhost 原因?

? - 因?yàn)閟ervice最終是要開發(fā)給用戶的, 它是公開的

? - 但是kubectl proxy是管理面, 是管理員自己用的, 是不公開的

? - 所以無法用minikube ip去訪問管理面, 必須用kubectl proxy

? - kubectl proxy用了 .kube 下的配置, 這些配置里包括一個密鑰

? - 這個密鑰是最終外部用戶不知道的

? - kubectl proxy只能從本機(jī)訪問


## labels

- 查看 deployment

? - `kubectl describe deployment`

? - 得到label是 `app=kubernetes-bootcamp`

- 根據(jù)label查pods (根據(jù)deployment查pods)

? - `kubectl get pods -l app=kubernetes-bootcamp`

- 根據(jù)label查service (根據(jù)deployment查service)

? - `kubectl get services -l app=kubernetes-bootcamp`

- 給pod打個新的label

? - `kubectl label pods $POD_NAME version=v1`

? - 根據(jù)新label `version=v1` 查pods

? - `kubectl get pods -l version=v1`


## 刪除service

- 刪除指令

? - `kubectl delete service -l app=kubernetes-bootcamp`

? - 根據(jù)label刪除


# 擴(kuò)容


## 檢查 replicaset(rs)

- 命令

? `kubectl get rs`


## 擴(kuò)容

- 命令

? - `kubectl scale deployments/kubernetes-bootcamp --replicas=4`

? - 操作 - scale

? - 資源類型 - 按第二類在資源名字段體現(xiàn)

? - 資源名 - deployments/{部署名}

? - 細(xì)節(jié)參數(shù) - `--replicas=4`

- 檢查擴(kuò)容結(jié)果

? - `kubectl get deployments`

? - `kubectl get pods -o wide`

? - `kubectl describe deployments/kubernetes-bootcamp`

? ? - 有events紀(jì)錄

- 總結(jié)

? - 擴(kuò)容是針對deployment的

? - 可以從pods級看到擴(kuò)容的結(jié)果

? - pod的命名是 {部署名}-{rs名}-{pod名}

? - 其中rs名和pod名是系統(tǒng)隨機(jī)生成

? - 擴(kuò)容時, 目前看pods都屬于同一個rs

? - rs 和 deployment的區(qū)別是

? ? - 見下 rs跟著鏡像版本走 當(dāng)deployment的鏡像更新后 會產(chǎn)生新的rs

? - describe和get的參數(shù)差不多? describe給詳情信息


## 負(fù)載均衡?

- 檢查service

? - `kubectl describe services/kubernetes-bootcamp`

- 使用service訪問

? - `curl http://172.25.123.232:31092`

? - 其中31092是external port(nodeport)

- 實(shí)際訪問發(fā)現(xiàn)負(fù)載有sticky現(xiàn)象?? 原因?


## 縮容

- 命令 和擴(kuò)容一致 減少replicaset的數(shù)量

? - `kubectl scale deployments/kubernetes-bootcamp --replicas=2`


# 發(fā)布更新鏡像到deployment


## 檢查當(dāng)前deployment狀態(tài)

- 現(xiàn)有2, 要求4, 擴(kuò)容一下


## 更新

- 命令

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

? - 操作 - set

? - 資源類型 - image

? - 資源名 - deployments/kubernetes-bootcamp

? - 細(xì)節(jié)參數(shù) - `kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2`

? ? - 等號前面是container的名字, 需要通過describe pods確認(rèn)

? ? - 新版container名字是有隨機(jī)token后綴的

- 這個鏡像庫能否訪問?

? - 參考 配置k8s使用私有鏡像庫

? - https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

? - 直接瀏覽器訪問一下 jocatalin.com 能通

? ? - 鏡像庫省略.com 默認(rèn)應(yīng)該就是 .com

- 更新結(jié)果 通過 get pods確認(rèn)

? - pod第二段名字 rs 名字被改了

? - 可見 rs是跟著鏡像版本走的

? - 解釋了同一個deployment下有不同的rs的意義

- 看一下service的負(fù)載均衡

? - `kubectl describe services/kubernetes-bootcamp`

- 查看rollout status?

? - `kubectl rollout status deployments/kubernetes-bootcamp`

? - 當(dāng)前狀態(tài)是 successfully rolled out


### Q&A

- Q: 報(bào)錯 container不存在

- A: 通過describe pods查看正確的container名字 比如

? - google-samples-kubernetes-bootcamp-7jdm5

? - `kubectl set image deployments/kubernetes-bootcamp google-samples-kubernetes-bootcamp-7jdm5=jocatalin/kubernetes-bootcamp:v2`


## 回滾

- 創(chuàng)建一個錯誤的更新?

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

? - 注意替換container名字

? - 這個目標(biāo)鏡像是錯的

? ? - 沒有v10

? ? - 網(wǎng)也不通

? - 該命令立即返回 看不出成功/失敗

? ? - 異步處理 k8s設(shè)計(jì)特點(diǎn)

- 校驗(yàn)剛才錯誤的結(jié)果

? - `kubectl get deployments`

? - `kubectl get pods`

? - `kubectl describe pods`

? - `kubectl rollout status deployments/kubernetes-bootcamp`

? ? - 這個指令類似 tail -f 等著刷新

- 回滾

? - `kubectl rollout undo deployments/kubernetes-bootcamp`

? - 再次檢查 rollout status 結(jié)果 successfully rolled out

? - 和成功更新一樣 繼續(xù)查pods

? - `kubectl describe pods`


# Learn Kubernetes Basics 總結(jié)

- 6個小節(jié)都講完了


# Configuration 學(xué)習(xí)

- 缺少搭建k8s服務(wù)的基本知識, 先暫緩該主題


# 從零開始搭建k8s上的spring boot web服務(wù)

- TODO


學(xué)習(xí)日志 21-12-15 k8s入門 擴(kuò)容等的評論 (共 條)

分享到微博請遵守國家法律
吉首市| 柳江县| 大冶市| 和龙市| 天气| 奉贤区| 中方县| 修文县| 阿合奇县| 德安县| 青海省| 福建省| 延吉市| 扶沟县| 务川| 右玉县| 郓城县| 台中市| 周至县| 闽侯县| 伽师县| 焉耆| 宝鸡市| 乌恰县| 鄢陵县| 山阳县| 南和县| 沂水县| 田阳县| 临沂市| 扎赉特旗| 原平市| 封开县| 略阳县| 三河市| 西盟| 响水县| 桂平市| 大安市| 临猗县| 海淀区|