亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

彈性計算基于k8s的chart改造的最佳實踐

2023-10-13 07:12:09
23
0

1. helm 基本介紹

1.1 helm 項目

Helm 幫助您管理 Kubernetes 應用—— Helm Chart,即使是最復雜的 Kubernetes 應用程序,都可以幫助您定義,安裝和升級。Helm Chart 易于創建、發版、分享和發布,所以停止復制粘貼,開始使用 Helm 吧。Helm 是 CNCF 的畢業項目,由 Helm 社區維護。

優勢:

復雜性管理

即使是最復雜的應用,Helm Chart 依然可以描述, 提供使用單點授權的可重復安裝應用程序。

易于升級

隨時隨地升級和自定義的鉤子消除您升級的痛苦。

分發簡單

Helm Chart 很容易在公共或私有化服務器上發版,分發和部署站點。

回滾

使用 helm rollback 可以輕松回滾到之前的發布版本。

1.2 helm 基本原理

  • helm cli: 一個命令行工具,用于本地開發及管理chart,chart倉庫管理等
  • tiller:  是 Helm 的服務端。Tiller 負責接收 Helm 的請求,與 k8s 的 apiserver 交互,根據chart 來生成一個 release 并管理 release. helm V3 版本已廢棄
  • chart: Helm的打包格式叫做chart,所謂chart就是一系列文件, 它描述了一組相關的 k8s 集群資源
  • release : 使用 helm install 命令在 Kubernetes 集群中部署的 Chart 稱為 Release.

?

Helm3 可以支持所有的 Kubernetes 認證及鑒權等全部安全特性。Helm和本地的 kubeconfig flie 中的配置使用一致的權限。管理員可以按照自己認為合適的粒度來管理用戶權限,下圖可詳細看出helm2到helm3的改變

 

2. helm 安裝和使用

安裝須知:

【1】 保證你的helm 和 k8s/k3s 在一臺機器上,或helm 在機器或者容器能夠直接調用kubectl命令

【2】安裝k8sHelm與您的集群兼容

 

2.1.  使用二進制文件安裝

#1.本人機器是mac m1, m1 

cd /home/

tar zxvf helm-v3.10.0-linux-arm64.tar.gz

cp linux-arm64/helm /usr/local/bin/helm

# 源配置,使用國內源

helm repo add aliyun

helm repo add stable 

helm repo update

root@master:~# helm repo list

NAME    URL                                                  

stable          

aliyun  

 

2.2  helm 常用使用命令

#查看環境信息

helm env

#查看版本信息

helm version

#查找軟件

helm search repo nginx

helm search hub  nginx

#查看已有倉庫列表

helm repo list

#更新倉庫資源

helm repo update

#刪除一個倉庫

helm repo remove bitnami

#創建倉庫索引

helm repo index /root/helm/repo

#部署chart

helm install  centos-nginx bitnami/nginx

#chart狀態查看

helm status centos-nginx

#卸載chart

helm uninstall centos-nginx

#查看chart列表    -A 表所有namespace

helm list -A

#chart部署記錄

helm history centos-nginx

#chart更新

helm upgrade --set image.tag=nginx.18 centos-nginx bitnami/nginx

#chart回滾

helm rollback centos-nginx 1

3. helm chart 包快速構建和調試

root@master:~/helm# tree -L 2 airflow

airflow

├── Chart.yaml

├── README.md

├── charts

│   ├── postgresql

│   └── redis

├── requirements.lock

├── requirements.yaml

├── templates

│   ├── NOTES.txt

│   ├── _helpers.tpl

│   ├── config

│   ├── extra-manifests.yaml

│   ├── flower

│   ├── pvc-logs.yaml

│   ├── pvc.yaml

│   ├── rbac

│   ├── scheduler

│   ├── webserver

│   └── worker

└── values.yaml

# ------------------------------------ #

 

# Chart.yaml:用于描述這個 Chart 的基本信息,包括名字、描述信息以及版本等。

# values.yaml:用于存儲 templates 目錄中模板文件中用到變量的值。

# Templates:目錄里面存放所有 yaml 模板文件, 。

# charts:目錄里存放這個 chart 依賴的所有子 chart。

# requirements.lock, requirements.yaml helm v2 將模塊依賴注冊在這里,V3 版本部署以來注冊在Charts.yaml

# NOTES.txt:用于介紹 Chart 幫助信息,helm install 部署后展示給用戶。例如:如何使用這個 Chart、列出缺省的設置等。

# _helpers.tpl:放置模板助手的地方,可以在整個 chart 中重復使用。

3.1 快速開始,hello world demo

  • 快速構建一個 簡單實例

 

helm create mychart

rm -rf mychart/templates/*

 

 

創建一個名為 mychart/templates/configmap.yaml的文件開始,模板命令 {{ .Release.Name }} 將發布名稱注入了模板。值作為一個 命名空間對象 傳給了模板,用點(.)分隔每個命名空間的元素。

Release前面的點表示從作用域最頂層的命名空間開始(稍后會談作用域)。這樣.Release.Name就可解讀為“通頂層命名空間開始查找 Release對象,然后在其中找Name對象.

  • Chart.yaml 定義

 

核心關注參數: 

  • version: chart 包版本,必需要參數
  • apiVersion: helm api server 調用的版本,必需要參數
  • name: 包名稱, 必需要參數
  • appVersion: 應用版本,非必需參數

從開發維護角度來說,可添加如下參數:

  • maintainers: 開發和維護者信息
  • description: 包的用途和描述說明

 

  • Vayaml 定義

 

主要定義參數:

  • 副本集定義
  • 鏡像 :倉庫地址和版本tag 定義
  • service 定義
  • 服務探活: readiness, liveness
  • 資源限制:resouce
  • 機器標簽: nodeSelector
  • 資源親和:Affinity

3.2 chart 快速調試

  • 可以使用 helm install --debug --dry-run <helm-release-name>  <helm-chart-path>

 

 

  • 現在安裝資源,可以立即看到模板命令的結果

 

4. helm + chart的最佳實踐(gostack-api)

4.1  命名規范

類型

定義格式

示例

node label

region級別:

${svc_name}.ctyun.io/${region_group}: ${region_group}

AZ級別:

${svc_name}.ctyun.io/${az_group}: ${az_group}

region:

haproxy.ctyun.io/region-control: region-control

az:

gostack.ctyun.io/group-control: {{ .Release.Namespace }}-control-group

sevice label

io.kompose.service: ${service_name}

labels:

    io.kompose.service: gostack-api

  name: gostack-api

svc

region級別:

${svc_name}.default.svc.cluster.netaz級別:

${svc_name}.${az_namespace}.svc.cluster.net

 

 

4.2  chart 模版快速創建

  • 快速構建chart包模版

 

 

 

 

 

 

 

4.3  chart 編寫

  • configmap 定義:對應模版文件  {{xx}}-configmap.yaml

 

  • service 定義:對應模版文件  {{xx}}-service.yaml

 

  • deployment定義:對應模版文件  {{xx}}-deployment.yaml

 

 

 

  • values定義:對應模版文件 yaml

 

  • chart 包調試(dryrun 模式)

 

調試結束后,可以下發真是的安裝

0條評論
作者已關閉評論
小梅
19文章數
1粉絲數
小梅
19 文章 | 1 粉絲
原創

彈性計算基于k8s的chart改造的最佳實踐

2023-10-13 07:12:09
23
0

1. helm 基本介紹

1.1 helm 項目

Helm 幫助您管理 Kubernetes 應用—— Helm Chart,即使是最復雜的 Kubernetes 應用程序,都可以幫助您定義,安裝和升級。Helm Chart 易于創建、發版、分享和發布,所以停止復制粘貼,開始使用 Helm 吧。Helm 是 CNCF 的畢業項目,由 Helm 社區維護。

優勢:

復雜性管理

即使是最復雜的應用,Helm Chart 依然可以描述, 提供使用單點授權的可重復安裝應用程序。

易于升級

隨時隨地升級和自定義的鉤子消除您升級的痛苦。

分發簡單

Helm Chart 很容易在公共或私有化服務器上發版,分發和部署站點。

回滾

使用 helm rollback 可以輕松回滾到之前的發布版本。

1.2 helm 基本原理

  • helm cli: 一個命令行工具,用于本地開發及管理chart,chart倉庫管理等
  • tiller:  是 Helm 的服務端。Tiller 負責接收 Helm 的請求,與 k8s 的 apiserver 交互,根據chart 來生成一個 release 并管理 release. helm V3 版本已廢棄
  • chart: Helm的打包格式叫做chart,所謂chart就是一系列文件, 它描述了一組相關的 k8s 集群資源
  • release : 使用 helm install 命令在 Kubernetes 集群中部署的 Chart 稱為 Release.

?

Helm3 可以支持所有的 Kubernetes 認證及鑒權等全部安全特性。Helm和本地的 kubeconfig flie 中的配置使用一致的權限。管理員可以按照自己認為合適的粒度來管理用戶權限,下圖可詳細看出helm2到helm3的改變

 

2. helm 安裝和使用

安裝須知:

【1】 保證你的helm 和 k8s/k3s 在一臺機器上,或helm 在機器或者容器能夠直接調用kubectl命令

【2】安裝k8sHelm與您的集群兼容

 

2.1.  使用二進制文件安裝

#1.本人機器是mac m1, m1 

cd /home/

tar zxvf helm-v3.10.0-linux-arm64.tar.gz

cp linux-arm64/helm /usr/local/bin/helm

# 源配置,使用國內源

helm repo add aliyun

helm repo add stable 

helm repo update

root@master:~# helm repo list

NAME    URL                                                  

stable          

aliyun  

 

2.2  helm 常用使用命令

#查看環境信息

helm env

#查看版本信息

helm version

#查找軟件

helm search repo nginx

helm search hub  nginx

#查看已有倉庫列表

helm repo list

#更新倉庫資源

helm repo update

#刪除一個倉庫

helm repo remove bitnami

#創建倉庫索引

helm repo index /root/helm/repo

#部署chart

helm install  centos-nginx bitnami/nginx

#chart狀態查看

helm status centos-nginx

#卸載chart

helm uninstall centos-nginx

#查看chart列表    -A 表所有namespace

helm list -A

#chart部署記錄

helm history centos-nginx

#chart更新

helm upgrade --set image.tag=nginx.18 centos-nginx bitnami/nginx

#chart回滾

helm rollback centos-nginx 1

3. helm chart 包快速構建和調試

root@master:~/helm# tree -L 2 airflow

airflow

├── Chart.yaml

├── README.md

├── charts

│   ├── postgresql

│   └── redis

├── requirements.lock

├── requirements.yaml

├── templates

│   ├── NOTES.txt

│   ├── _helpers.tpl

│   ├── config

│   ├── extra-manifests.yaml

│   ├── flower

│   ├── pvc-logs.yaml

│   ├── pvc.yaml

│   ├── rbac

│   ├── scheduler

│   ├── webserver

│   └── worker

└── values.yaml

# ------------------------------------ #

 

# Chart.yaml:用于描述這個 Chart 的基本信息,包括名字、描述信息以及版本等。

# values.yaml:用于存儲 templates 目錄中模板文件中用到變量的值。

# Templates:目錄里面存放所有 yaml 模板文件, 。

# charts:目錄里存放這個 chart 依賴的所有子 chart。

# requirements.lock, requirements.yaml helm v2 將模塊依賴注冊在這里,V3 版本部署以來注冊在Charts.yaml

# NOTES.txt:用于介紹 Chart 幫助信息,helm install 部署后展示給用戶。例如:如何使用這個 Chart、列出缺省的設置等。

# _helpers.tpl:放置模板助手的地方,可以在整個 chart 中重復使用。

3.1 快速開始,hello world demo

  • 快速構建一個 簡單實例

 

helm create mychart

rm -rf mychart/templates/*

 

 

創建一個名為 mychart/templates/configmap.yaml的文件開始,模板命令 {{ .Release.Name }} 將發布名稱注入了模板。值作為一個 命名空間對象 傳給了模板,用點(.)分隔每個命名空間的元素。

Release前面的點表示從作用域最頂層的命名空間開始(稍后會談作用域)。這樣.Release.Name就可解讀為“通頂層命名空間開始查找 Release對象,然后在其中找Name對象.

  • Chart.yaml 定義

 

核心關注參數: 

  • version: chart 包版本,必需要參數
  • apiVersion: helm api server 調用的版本,必需要參數
  • name: 包名稱, 必需要參數
  • appVersion: 應用版本,非必需參數

從開發維護角度來說,可添加如下參數:

  • maintainers: 開發和維護者信息
  • description: 包的用途和描述說明

 

  • Vayaml 定義

 

主要定義參數:

  • 副本集定義
  • 鏡像 :倉庫地址和版本tag 定義
  • service 定義
  • 服務探活: readiness, liveness
  • 資源限制:resouce
  • 機器標簽: nodeSelector
  • 資源親和:Affinity

3.2 chart 快速調試

  • 可以使用 helm install --debug --dry-run <helm-release-name>  <helm-chart-path>

 

 

  • 現在安裝資源,可以立即看到模板命令的結果

 

4. helm + chart的最佳實踐(gostack-api)

4.1  命名規范

類型

定義格式

示例

node label

region級別:

${svc_name}.ctyun.io/${region_group}: ${region_group}

AZ級別:

${svc_name}.ctyun.io/${az_group}: ${az_group}

region:

haproxy.ctyun.io/region-control: region-control

az:

gostack.ctyun.io/group-control: {{ .Release.Namespace }}-control-group

sevice label

io.kompose.service: ${service_name}

labels:

    io.kompose.service: gostack-api

  name: gostack-api

svc

region級別:

${svc_name}.default.svc.cluster.netaz級別:

${svc_name}.${az_namespace}.svc.cluster.net

 

 

4.2  chart 模版快速創建

  • 快速構建chart包模版

 

 

 

 

 

 

 

4.3  chart 編寫

  • configmap 定義:對應模版文件  {{xx}}-configmap.yaml

 

  • service 定義:對應模版文件  {{xx}}-service.yaml

 

  • deployment定義:對應模版文件  {{xx}}-deployment.yaml

 

 

 

  • values定義:對應模版文件 yaml

 

  • chart 包調試(dryrun 模式)

 

調試結束后,可以下發真是的安裝

文章來自個人專欄
文章 | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
0
0