曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Kubernetes Helm入門指南

馬哥Linux運(yùn)維 ? 來源:CSDN技術(shù)社區(qū) ? 2025-04-30 13:42 ? 次閱讀

一、概念

Helm是 Kubernetes 的包管理工具,它允許開發(fā)者和系統(tǒng)管理員通過定義、打包和部署應(yīng)用程序來簡(jiǎn)化 Kubernetes 應(yīng)用的管理工作。Helm 的出現(xiàn)是為了解決在 Kubernetes 環(huán)境中部署和管理復(fù)雜應(yīng)用的挑戰(zhàn)。Helm命令行客戶端工具,主要用于Kubernetes應(yīng)用中的Chart的創(chuàng)建、打包、發(fā)布和管理。

Helm 的官方網(wǎng)站是Helm,在這里可以找到 Helm 的安裝指南、文檔、Chart 倉(cāng)庫(kù)和社區(qū)貢獻(xiàn)信息。通過 Helm,用戶可以更高效地管理和部署 Kubernetes 應(yīng)用,實(shí)現(xiàn)快速迭代和持續(xù)集成。

1.Helm核心概念

?Chart:Helm 的 Chart 是一個(gè)軟件包,它包含了一組定義 Kubernetes 資源的 YAML 文件。Chart 可以看作是 Kubernetes 應(yīng)用的模板,它描述了如何部署一個(gè)應(yīng)用,包括所需的 Deployments、Services、ConfigMaps 等資源。

?Repository:Helm 的 Repository 是一個(gè)存儲(chǔ) Chart 的倉(cāng)庫(kù)。用戶可以從這些倉(cāng)庫(kù)中搜索、下載和安裝 Chart。每個(gè) Repository 都有一個(gè)索引文件,列出了可用的 Chart 和它們的版本。

?Release:當(dāng)使用 helm install 命令部署一個(gè) Chart 到 Kubernetes 集群時(shí),Helm 會(huì)創(chuàng)建一個(gè) Release。Release 是 Chart 在集群中的一個(gè)實(shí)例,它代表了特定版本的應(yīng)用部署;一個(gè)Chart被Helm運(yùn)行后將生成對(duì)應(yīng)的一個(gè)Release(將在K8S中創(chuàng)建出真實(shí)運(yùn)行的資源對(duì)象)。用戶可以對(duì)同一個(gè) Chart 創(chuàng)建多個(gè) Release,每個(gè) Release 都有自己的配置和狀態(tài)。

Chart:Helm程序包,一系列用于描述K8S資源和相關(guān)文件的集合,比方說我們部署Nginx,需要Deployment的Yaml,需要Service的Yaml,這兩個(gè)清單文件就是一個(gè)Helm程序包,在K8S中把這些Yaml清單文件叫做Chart圖表。

Vlues.yaml文件為模板中的文件賦值,可以實(shí)現(xiàn)我們自定義安裝

Chart---->通過Values.yaml文件賦值---->生成Release實(shí)例

總結(jié):Helm把Kubernetes資源打包到一個(gè)Chart中,制作并完成各個(gè)Chart和Chart 本身依賴關(guān)系并利用Chart倉(cāng)庫(kù)實(shí)現(xiàn)對(duì)外分發(fā),而Helm還可以通過Values.yaml文件完成可配置的發(fā)布,如果Chart版本更新了,Helm自動(dòng)支持滾動(dòng)更新機(jī)制,還可以一鍵回滾,但是不適合在生產(chǎn)環(huán)境使用,除非具有定義自制Chart的能力

2.Helm工作流程

?查找 Chart:用戶可以在 Helm 的 Repository 中查找所需的 Chart。

?安裝 Chart:使用 helm install 命令安裝 Chart 到 Kubernetes 集群,創(chuàng)建一個(gè) Release。

?管理 Release:用戶可以使用 helm upgrade、helm rollback、helm uninstall 等命令來管理 Release,包括更新、回滾或卸載應(yīng)用。

?維護(hù) Repository:用戶可以添加、更新和刪除 Helm Repository,以管理可用的 Chart。

3.Helm 3 與 Helm 2的區(qū)別

?Helm 2:在 Helm 2 中,采用了客戶端-服務(wù)器模型,其中客戶端是 Helm,服務(wù)器端是 Tiller。Tiller 作為 Kubernetes 集群中的一個(gè) Deployment 運(yùn)行,負(fù)責(zé)管理 Helm 的 Release 和執(zhí)行 Kubernetes 操作。

?Helm 3:Helm 3 移除了 Tiller,簡(jiǎn)化了架構(gòu)?,F(xiàn)在,Helm 客戶端直接與 Kubernetes API 服務(wù)器通信,執(zhí)行所有的 Kubernetes 操作。這減少了復(fù)雜性,并提高了安全性,因?yàn)椴辉傩枰诩褐羞\(yùn)行一個(gè)具有廣泛權(quán)限的 Tiller 服務(wù)。

4537a316-2292-11f0-9310-92fbcf53809c.png

架構(gòu)變化:

? Helm服務(wù)端Tiller被刪除

? Release名稱可以在不同命名空間重用

? 支持將Chart推送至Docker鏡像倉(cāng)庫(kù)中

? 使用JSONChema驗(yàn)證Chartvalues

Helm版本以及其對(duì)應(yīng)支持的Kubernetes版本

Helm版本 支持的Kubernetes版本
3.6.x 1.21.x - 1.18.x
3.5.x 1.20.x - 1.17.x
3.4.x 1.19.x - 1.16.x
3.3.x 1.18.x - 1.15.x
3.2.x 1.18.x - 1.15.x
3.1.x 1.17.x - 1.14.x
3.0.x 1.16.x - 1.13.x
2.16.x 1.16.x - 1.15.x

二、Helm部署

包括如何安裝 Helm 客戶端、添加和更新 Helm 倉(cāng)庫(kù)、搜索和查看 Chart 信息、安裝和卸載應(yīng)用

1.安裝Helm

1.1下載 Helm 客戶端

訪問 Helm 的 GitHub 標(biāo)簽頁面 https://github.com/helm/helm/releases 來下載適合操作系統(tǒng)的 Helm 版本。例如,如果使用的是 Linux 系統(tǒng),可以下載 helm-v3.6.0-linux-amd64.tar.gz。

1.2安裝Helm

解壓下載的 Helm 壓縮包,并將其移動(dòng)到系統(tǒng)的可執(zhí)行路徑中,例如/usr/local/bin。

tar -zxvf helm-v3.6.0-linux-amd64.tar.gz
mvlinux-amd64/helm /usr/local/bin/helm


45580c00-2292-11f0-9310-92fbcf53809c.png

1.3驗(yàn)證安裝

#運(yùn)行 helm version 來檢查 Helm 是否已成功安裝。
helm version


4576a5fc-2292-11f0-9310-92fbcf53809c.png

1.4命令補(bǔ)全

#為了提高使用 Helm 的效率,可以啟用命令補(bǔ)全功能
echo"source <(helm completion bash)"?>> ~/.bashrc


458f7d52-2292-11f0-9310-92fbcf53809c.png

2.使用Helm安裝Chart

2.1添加Helm倉(cāng)庫(kù)

#添加常用的 Helm 倉(cāng)庫(kù),以便可以搜索和安裝各種 Chart
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add incubator https://charts.helm.sh/incubator


45a1e08c-2292-11f0-9310-92fbcf53809c.png

2.2更新Helm倉(cāng)庫(kù)

#更新 Helm 倉(cāng)庫(kù)列表,以確保可以訪問最新的 Chart 版本
helm repo update


45bc395a-2292-11f0-9310-92fbcf53809c.png

2.3查看 Helm 倉(cāng)庫(kù)列表

#查看已添加的 Helm 倉(cāng)庫(kù)
helm repo list


45d00d72-2292-11f0-9310-92fbcf53809c.png

2.4刪除Helm倉(cāng)庫(kù)

#如果不再需要某個(gè) Helm 倉(cāng)庫(kù),可以將其從列表中刪除
helm repo remove incubator


2.5查看Chart信息

#查看特定 Chart 的基本信息或所有信息
helm show chart stable/mysql
# 查看基本信息
helm show all stable/mysql
# 獲取所有信息


4635155a-2292-11f0-9310-92fbcf53809c.png464c1f3e-2292-11f0-9310-92fbcf53809c.png

2.6安裝 Chart

#使用 helm install 命令安裝 Chart??梢灾付ㄒ粋€(gè) release 名稱,或者使用 --generate-name 讓 Helm 為生成一個(gè)隨機(jī)名稱
helm install my-redis bitnami/redis [-n default]
# 指定 release 名稱
helm install bitnami/redis --generate-name
# 自動(dòng)生成 release 名稱


2.7查看所有Release

#列出所有已安裝的 Helm release
helmls

#helm list 來獲取更詳細(xì)的信息
helm list


46643b8c-2292-11f0-9310-92fbcf53809c.png

2.8查看Release狀態(tài)

#查看特定 release 的狀態(tài)信息
helm status my-redis


467a3e6e-2292-11f0-9310-92fbcf53809c.png

2.9刪除Release

#使用 helm uninstall 命令刪除指定的 Helm release
helm uninstall my-redis


469228b2-2292-11f0-9310-92fbcf53809c.png

三、Helm Chart 自定義模板

1.查看Chart文件細(xì)節(jié)

charts 除了可以在 repo 中下載,還可以自己自定義,創(chuàng)建完成后通過 helm 部署到 k8s

Helm Chart 是 Helm 用來部署 Kubernetes 應(yīng)用的包。一個(gè) Chart 包含一系列的 Kubernetes 資源定義文件(YAML 格式),以及一個(gè)描述 Chart 的 Chart.yaml 文件和一個(gè)用于配置的 values.yaml 文件。自定義 Helm Chart 允許根據(jù)具體需求來創(chuàng)建和部署 Kubernetes 應(yīng)用。

2.拉取 Helm Chart

mkdir/opt/helm
cd/opt/helm

helm pull stable/mysql

ls
mysql-1.6.9.tgz


46a6687c-2292-11f0-9310-92fbcf53809c.png

3.查看Chart結(jié)構(gòu)

tar xf mysql-1.6.9.tgz

yum install -y tree

tree mysql
mysql
├── Chart.yaml                #包含 chart 的元數(shù)據(jù)
├── README.md                 #提供關(guān)于 chart 的信息和使用說明
├── templates                 #包含 chart 的模板文件
│  ├── configurationFiles-configmap.yaml   #配置文件的 ConfigMap 模板
│  ├── deployment.yaml            #Deployment 資源的模板
│  ├── _helpers.tpl             #輔助模板文件
│  ├── initializationFiles-configmap.yaml  #初始化文件的 ConfigMap 模板
│  ├── NOTES.txt               #安裝后的說明和注意事項(xiàng)
│  ├── pvc.yaml               #PersistentVolumeClaim 資源的模板
│  ├── secrets.yaml             #Secret 資源的模板
│  ├── serviceaccount.yaml          #ServiceAccount 資源的模板
│  ├── servicemonitor.yaml          #ServiceMonitor 資源的模板
│  ├── service.yaml             #Service 資源的模板
│  ├── ingress.yaml             #Ingress 資源的模板
│  └── tests                 #包含測(cè)試相關(guān)的模板文件
│    ├── test-configmap.yaml
│    └── test.yaml
└── values.yaml                #包含 chart 的默認(rèn)配置值

#通過這個(gè)結(jié)構(gòu),我們可以看到 Helm chart 是如何組織和管理 Kubernetes 應(yīng)用程序的部署配置的。用戶可以根據(jù)需要編輯這些文件,以自定義應(yīng)用程序的行為和配置。

46c460ac-2292-11f0-9310-92fbcf53809c.png

4.Helm Chart結(jié)構(gòu)

Helm chart 的關(guān)鍵組成部分的詳細(xì)說明

4.1Chart.yaml

? 這是 Helm chart 的自描述文件,它包含了 chart 的基本信息。

? 必須包含 name 字段,用于指定 chart 的名稱。

? 必須包含 version 字段,用于指定 chart 的版本號(hào)。

? 還可以包含其他元數(shù)據(jù),如描述、圖標(biāo)、維護(hù)者信息等。

4.2模板

? Helm chart 包含一個(gè)或多個(gè)模板,這些模板是 Kubernetes 資源清單文件的文本模板。

? 模板中可以包含 Go 模板 語法,用于動(dòng)態(tài)生成 Kubernetes 清單文件。

? 模板會(huì)根據(jù) values.yaml 文件中的值進(jìn)行填充和處理,生成最終的 Kubernetes 資源清單。

4.3具體模板文件

? NOTES.txt:這是一個(gè)文本文件,包含安裝 chart 后顯示給用戶的信息,通常包括配置提示、使用說明等。

? deployment.yaml:這個(gè)模板定義了一個(gè) Kubernetes Deployment 資源,用于指定如何部署應(yīng)用程序的副本。

? service.yaml:這個(gè)模板定義了一個(gè) Kubernetes Service 資源,通常用于提供對(duì) Deployment 的網(wǎng)絡(luò)訪問。

? ingress.yaml:這個(gè)模板定義了一個(gè) Kubernetes Ingress 資源,用于管理外部訪問到 Service 的路由。

? _helpers.tpl:這個(gè)文件包含可重用的模板助手函數(shù),可以在 chart 的其他模板中調(diào)用。

通過這些組件,Helm charts 為 Kubernetes 應(yīng)用程序的部署提供了一種標(biāo)準(zhǔn)化和自動(dòng)化的方法。用戶可以通過修改 values.yaml 文件和模板來定制應(yīng)用程序的部署,然后使用 Helm 命令進(jìn)行部署和管理。

5.創(chuàng)建自定義的Chart

5.1創(chuàng)建自定義Helm Chart

helm create nginx
#創(chuàng)建一個(gè)新的 Helm chart,例如 nginx

tree nginx
nginx
├── charts
├── Chart.yaml
├── templates
│  ├── deployment.yaml
│  ├── _helpers.tpl
│  ├── hpa.yaml
│  ├── ingress.yaml
│  ├── NOTES.txt
│  ├── serviceaccount.yaml
│  ├── service.yaml
│  └── tests
│    └── test-connection.yaml
└── values.yaml

catnginx/templates/deployment.yaml
#查看 templates/deployment.yaml 文件,了解如何在模板中使用 Go 模板語法引用 values.yaml 中的變量
#在 templates 目錄下 yaml 文件模板中的變量(go template語法)的值默認(rèn)是在 nginx/values.yaml 中定義的,只需要修改 nginx/values.yaml 的內(nèi)容,也就完成了 templates 目錄下 yaml 文件的配置。
比如在 deployment.yaml 中定義的容器鏡像:
image:"{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"

catnginx/values.yaml | grep repository
 repository: nginx
#以上變量值是在 create chart 的時(shí)候就自動(dòng)生成的默認(rèn)值,你可以根據(jù)實(shí)際情況進(jìn)行修改。

46dce33e-2292-11f0-9310-92fbcf53809c.png46f5946a-2292-11f0-9310-92fbcf53809c.png470f4644-2292-11f0-9310-92fbcf53809c.png

5.2修改Helm Chart

#修改 chart
vim nginx/Chart.yaml

apiVersion: v2
name: nginx          #chart名字
description: A Helm chartforKubernetes
type: application       #chart類型,application或library
version: 0.1.0         #chart版本
appVersion: 1.16.0       #application部署版本


vim nginx/values.yaml

replicaCount: 1

image:
 repository: nginx
 pullPolicy: IfNotPresent
 tag:"latest"       #設(shè)置鏡像標(biāo)簽,加上該內(nèi)容

imagePullSecrets: []
nameOverride:""
fullnameOverride:""

serviceAccount:
 create:true
 annotations: {}
 name:""

podAnnotations: {}

podSecurityContext: {}
# fsGroup: 2000

securityContext: {}
# capabilities:
#  drop:
#  - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000

service:
type: ClusterIP
 port: 80

ingress:
 enabled:true        #開啟 ingress
 className:""
 annotations: {}
 # kubernetes.io/ingress.class: nginx
 # kubernetes.io/tls-acme: "true"
 hosts:
  - host: www.cxk.com    #指定ingress域名
   paths:
    - path: /
     pathType: Prefix   #指定ingress路徑類型
 tls: []
# - secretName: chart-example-tls
#  hosts:
#   - chart-example.local

resources:
 limits:
  cpu: 100m
  memory: 128Mi
 requests:
  cpu: 100m
  memory: 128Mi

autoscaling:
 enabled:false
 minReplicas: 1
 maxReplicas: 100
 targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80

nodeSelector: {}


tolerations: []

affinity: {}

472fe75a-2292-11f0-9310-92fbcf53809c.png

5.3打包和部署Helm Chart

helm lint nginx
#檢查依賴和模版配置是否正確

helm package nginx
#打包 chart,會(huì)在當(dāng)前目錄下生成壓縮包 nginx-0.1.0.tgz

#部署 chart
helm install nginx ./nginx --dry-run --debug
#使用 --dry-run 參數(shù)驗(yàn)證 Chart 的配置,并不執(zhí)行安裝

helm install nginx ./nginx -n default
#部署 chart,release 版本默認(rèn)為 1
或者
helm install nginx ./nginx-0.1.0.tgz

#可根據(jù)不同的配置來 install,默認(rèn)是 values.yaml
helm install nginx ./nginx -f ./nginx/values.yaml

helmls

kubectl get pod,svc

4745365a-2292-11f0-9310-92fbcf53809c.png47621e78-2292-11f0-9310-92fbcf53809c.png477b7954-2292-11f0-9310-92fbcf53809c.png479bea5e-2292-11f0-9310-92fbcf53809c.png

5.4部署Ingress-Nginx

#部署 ingress
wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/mandatory.yaml
wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml
#下載 Ingress-Nginx 的配置文件 mandatory.yaml 和 service-nodeport.yaml

kubectl apply -f mandatory.yaml
kubectl apply -f service-nodeport.yaml
#使用 kubectl apply 命令應(yīng)用這些配置文件,以部署 Ingress 控制器和 NodePort 類型的 Service

kubectl get pod,svc -n ingress-nginx

kubectl get ingress

vim /etc/hosts
.....
192.168.241.23 node02 www.cxk.com

curl http://www.cxk.com:32733

47b7d3b8-2292-11f0-9310-92fbcf53809c.png47e48b2e-2292-11f0-9310-92fbcf53809c.png47fc3166-2292-11f0-9310-92fbcf53809c.png

5.5升級(jí)Helm Chart

#修改為 NodePort 訪問后,升級(jí)
vim nginx/values.yaml

service:
type: NodePort
#修改 values.yaml 文件以更改 Service 類型為 NodePort 并設(shè)置 nodePort
 port: 80
 nodePort: 30080

ingress:
 enabled:false

vim nginx/templates/service.yaml
#模板以反映 Service 類型的變化

apiVersion: v1
kind: Service
metadata:
 name: {{ include"nginx.fullname". }}
 labels:
  {{- include"nginx.labels". | nindent 4 }}
spec:
type: {{ .Values.service.type }}
 ports:
  - port: {{ .Values.service.port }}
   targetPort: http
   protocol: TCP
   name: http
   nodePort: {{ .Values.service.nodePort }}
  #指定 nodePort
 selector:
  {{- include"nginx.selectorLabels". | nindent 4 }}

#升級(jí) release,release 版本加 1
helm upgrade nginx nginx

kubectl get svc

curl 192.168.241.23:30080

48147e7e-2292-11f0-9310-92fbcf53809c.png

通過這些步驟,可以創(chuàng)建和部署自定義的 Helm charts,以及管理和配置 Kubernetes 集群中的 Ingress 規(guī)則。這些步驟提供了一個(gè)從創(chuàng)建到部署再到升級(jí)的完整流程,有助于理解 Helm charts 的使用和管理。

四、回滾

使用 Helm 進(jìn)行回滾操作以及如何在命令行中使用--set參數(shù)來部署或升級(jí) Helm release 的信息

1.回滾Helm Release

1.1查看Release歷史

helmhistorynginx
#使用 helm history 命令查看 Helm release 的歷史記錄,包括每次更新的詳細(xì)信息和狀態(tài)


48337ad6-2292-11f0-9310-92fbcf53809c.png

1.2執(zhí)行回滾操作

helm rollback nginx 1
#使用 helm rollback 命令加上 release 名稱和要回滾到的版本號(hào)來執(zhí)行回滾操作。
helmhistorynginx
#執(zhí)行回滾后,可以再次使用 helm history 命令確認(rèn) release 是否已經(jīng)成功回滾到指定版本


4852b856-2292-11f0-9310-92fbcf53809c.png

1.3維護(hù)Helm Chart

在 Helm chart 的templates目錄下的 Kubernetes 清單文件配置好后,通常的維護(hù)工作主要涉及修改Chart.yaml和values.yaml文件。

?Chart.yaml:更新 chart 的元數(shù)據(jù),如版本號(hào)、描述等。

?values.yaml:調(diào)整或添加配置參數(shù),這些參數(shù)將應(yīng)用于模板中,以定制 Kubernetes 資源的行為。

1.4使用-set參數(shù)部署或升級(jí)Release

在部署或升級(jí) Helm release 時(shí),可以使用--set參數(shù)在命令行中直接指定配置值。這些值將覆蓋values.yaml文件中的同名參數(shù)。

#例如,要將 Nginx chart 的鏡像標(biāo)簽升級(jí)到 1.15,可以使用以下命令

helm upgrade nginx nginx --setimage.tag='1.15'

#這個(gè)命令會(huì)更新 Nginx chart 的鏡像標(biāo)簽,而無需修改 values.yaml 文件。這種快捷方式在需要快速更改配置或在沒有訪問 values.yaml 文件的情況下非常有用。


486be56a-2292-11f0-9310-92fbcf53809c.png

總結(jié)來說,Helm 提供了靈活的方式來管理和維護(hù) Kubernetes 應(yīng)用程序的部署。通過回滾功能,可以輕松撤銷更改;通過--set參數(shù),可以在部署或升級(jí)時(shí)動(dòng)態(tài)調(diào)整配置。這些功能使得 Helm 成為 Kubernetes 集群中應(yīng)用程序部署和維護(hù)的強(qiáng)有力工具。

五、Helm倉(cāng)庫(kù)

使用 Harbor 作為本地 Helm 倉(cāng)庫(kù),并將自定義的 Helm chart 推送至 Harbor 倉(cāng)庫(kù)的詳細(xì)步驟

1.安裝Harbor

1. 準(zhǔn)備 Harbor 的離線安裝包 harbor-offline-installer-v1.9.1.tgz 和 docker-compose 文件。

2. 配置 harbor.yml 文件,設(shè)置 Harbor 的主機(jī)名、管理員密碼、數(shù)據(jù)存儲(chǔ)路徑等。

3. 使用 ./install.sh --with-clair --with-chartmuseum 命令安裝 Harbor,并啟用 Clair 服務(wù)和 chart 倉(cāng)庫(kù)服務(wù)。

#上傳 harbor-offline-installer-v1.9.1.tgz 和 docker-compose 文件到 /opt 目錄
cd/opt
cpdocker-compose /usr/local/bin/
chmod+x /usr/local/bin/docker-compose

curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
#如果安裝最新版的Docker需要安裝高版本的Docker-Compose

wget https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.1.tgz
tar zxf harbor-offline-installer-v1.9.1.tgz
cdharbor/

vim harbor.yml
hostname: 192.168.241.24
harbor_admin_password: Harbor12345  #admin用戶初始密碼
data_volume: /data          #數(shù)據(jù)存儲(chǔ)路徑,自動(dòng)創(chuàng)建
chart:
 absolute_url: enabled        #在chart中啟用絕對(duì)url
log:
 level: info
local:
  rotate_count: 50
  rotate_size: 200M
  location: /var/log/harbor     #日志路徑

#安裝帶有 Clair service 和 chart 倉(cāng)庫(kù)服務(wù)的 Harbor
./install.sh --with-clair --with-chartmuseum

488d261c-2292-11f0-9310-92fbcf53809c.png48abcd10-2292-11f0-9310-92fbcf53809c.png

2.安裝Helm Push插件

#在線安裝 Helm Push 插件
helm plugin install https://github.com/chartmuseum/helm-push


wget https://github.com/chartmuseum/helm-push/releases/download/v0.8.1/helm-push_0.8.1_linux_amd64.tar.gz
#離線安裝 Helm Push 插件:

mkdir~/.local/share/helm/plugins/helm-push -p
tar -zxvf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-push

helm repols


48c8fc8c-2292-11f0-9310-92fbcf53809c.png48e4b378-2292-11f0-9310-92fbcf53809c.png

3.配置Helm倉(cāng)庫(kù)

helm repo add harbor http://192.168.241.24/chartrepo/chart_repo --username=admin --password=Harbor12345
#登錄到 Harbor 的 Web UI 界面,并創(chuàng)建一個(gè)新項(xiàng)目 chart_repo。
#瀏覽器訪問:http://192.168.241.24 ,默認(rèn)的管理員用戶名和密碼是 admin/Harbor12345 點(diǎn)擊 “+新建項(xiàng)目” 按鈕 填寫項(xiàng)目名稱為 “chart_repo”,訪問級(jí)別勾選 “公開”,點(diǎn)擊 “確定” 按鈕,創(chuàng)建新項(xiàng)目
#添加 Harbor 項(xiàng)目作為 Helm 倉(cāng)庫(kù):


#這里的 repo 的地址是/chartrepo/,Harbor 中每個(gè)項(xiàng)目是分開的 repo。如果不提供項(xiàng)目名稱, 則默認(rèn)使用 library 這個(gè)項(xiàng)目。


49037268-2292-11f0-9310-92fbcf53809c.png491c1ed0-2292-11f0-9310-92fbcf53809c.png49a4ca32-2292-11f0-9310-92fbcf53809c.png

4.推送Chart 到 Harbor

cd/opt/
helm push nginx harbor
#使用 helm push 命令將 chart 推送到 Harbor 倉(cāng)庫(kù)


49bc45a4-2292-11f0-9310-92fbcf53809c.png49dbfcf0-2292-11f0-9310-92fbcf53809c.png

在 Harbor 的 Web UI 界面中查看chart_repo項(xiàng)目,確認(rèn)已成功推送的 Helm Charts

通過這些步驟,可以將自定義的 Helm charts 推送到本地的 Harbor 倉(cāng)庫(kù)中,從而實(shí)現(xiàn) Helm charts 的存儲(chǔ)、管理和分發(fā)。Harbor 作為一個(gè)企業(yè)級(jí)的 Docker Registry 管理項(xiàng)目,也支持 Helm charts 的存儲(chǔ)和分發(fā),這使得它成為 Kubernetes 環(huán)境中管理 Helm charts 的理想選擇。

六、總結(jié)

1.Helm命令總結(jié)

Helm命令總結(jié)

命令 含義
Completion 命令補(bǔ)全
Create 創(chuàng)建一個(gè)給定名稱的Chart
Dependency 管理Chart的依賴關(guān)系
Env Helm環(huán)境信息
Get 獲取給定Release的擴(kuò)展信息
Help 命令幫助
History 獲取Release歷史
Install 部署Chart
Lint 對(duì)Chart進(jìn)行語法檢查
List Release列表,List可簡(jiǎn)寫成Ls
Package 打包Chart
Plugin Install、List、UnInstall、Helm插件
Pull 從Repo中下載Chart并(可選)將其解壓到本地目錄
Repo ADD、List、Remove、Update、Index、Helm的Repo
RollBack 回滾Release到一個(gè)以前的版本
Search 查詢?cè)贑harts中的關(guān)鍵字
Show 顯示Chart的信息
Status 顯示給定Release的狀態(tài)
Template 本地渲染模板
Test 測(cè)試運(yùn)行Release
Uninstall 刪除Release
Upgrade 升級(jí)Release
Verify 驗(yàn)證給定路徑的Chart是否已簽名且有效
Version 顯示Helm的版本信息

鏈接:https://blog.csdn.net/weixin_46560589/article/details/135459378

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9618

    瀏覽量

    87070
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    577

    瀏覽量

    25146
  • kubernetes
    +關(guān)注

    關(guān)注

    0

    文章

    237

    瀏覽量

    8936

原文標(biāo)題:為什么每個(gè) Kubernetes 工程師都在用 Helm?一文告訴你!

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用Helm 在容器服務(wù)k8s集群一鍵部署wordpress

    摘要: Helm 是啥? 微服務(wù)和容器化給復(fù)雜應(yīng)用部署與管理帶來了極大的挑戰(zhàn)。Helm是目前Kubernetes服務(wù)編排領(lǐng)域的唯一開源子項(xiàng)目,做為Kubernetes應(yīng)用的一個(gè)包管理工
    發(fā)表于 03-29 13:38

    在阿里云Kubernetes容器服務(wù)上打造TensorFlow實(shí)驗(yàn)室

    的GPU計(jì)算型服務(wù)器需要申請(qǐng)ECS工單開通。具體創(chuàng)建過程,可以參考創(chuàng)建Kubernetes集群。體驗(yàn)通過應(yīng)用目錄部署TensorFlow實(shí)驗(yàn)室通過Helm部署MPI的應(yīng)用,本文以openmpi為例,向您展示
    發(fā)表于 05-10 10:24

    Kubernetes API詳解

    的《kubernetes權(quán)威指南》一書的第三章3.2節(jié),獲得出版社和作者的獨(dú)家授權(quán)發(fā)布。本節(jié)重點(diǎn)講述了kubernetes的API概述。 Kubernetes API概述
    發(fā)表于 10-12 16:19 ?0次下載
    <b class='flag-5'>Kubernetes</b> API詳解

    首次部署 Kubernetes 應(yīng)用程序需注意的“陷阱”

    根據(jù)我的個(gè)人經(jīng)驗(yàn),大多數(shù)人似乎傾向于通過 Helm 或者手動(dòng)方式將應(yīng)用程序甩給 Kubernetes,之后就坐等每天輕松調(diào)用的美好生活。但在 GumGum 公司的實(shí)踐當(dāng)中,我們體會(huì)到
    的頭像 發(fā)表于 10-08 14:43 ?1887次閱讀
    首次部署 <b class='flag-5'>Kubernetes</b> 應(yīng)用程序需注意的“陷阱”

    Kubernetes入門指南電子版下載

    Kubernetes入門指南電子版下載
    發(fā)表于 07-12 10:05 ?0次下載

    Helm Kubernetes包管理器

    helm.zip
    發(fā)表于 04-27 14:25 ?2次下載
    <b class='flag-5'>Helm</b> <b class='flag-5'>Kubernetes</b>包管理器

    K8S(kubernetes)學(xué)習(xí)指南

    K8S(kubernetes)學(xué)習(xí)指南
    發(fā)表于 06-29 14:14 ?0次下載

    Helm常用命令(chart安裝、升級(jí)、回滾、卸載等操作)

    Helm 針對(duì) KubernetesHelm 包管理器。
    的頭像 發(fā)表于 09-13 14:54 ?7256次閱讀

    Renesas 7542入門套件快速入門指南

    Renesas 7542 入門套件快速入門指南
    發(fā)表于 04-28 19:42 ?0次下載
    Renesas 7542<b class='flag-5'>入門</b>套件快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    如何開發(fā)一個(gè)helm chart

    使用helmfile時(shí),我們首先得了解helm的使用,以及如何開發(fā)一個(gè)helm chart。
    的頭像 發(fā)表于 05-16 09:28 ?821次閱讀

    Helm的一些概念及用法

    應(yīng)用,使用?Helm?(https://helm.sh)是一個(gè)很不錯(cuò)的選擇,它具備如下的能力: 簡(jiǎn)化部署?:Helm允許使用單個(gè)命令輕松部署和管理應(yīng)用程序,從而簡(jiǎn)化了整個(gè)部署過程; 高度可配置:
    的頭像 發(fā)表于 05-30 09:51 ?1402次閱讀
    <b class='flag-5'>Helm</b>的一些概念及用法

    Awesome 工具如何更好地管理Kubernetes

    。 這是一系列令人驚奇的工具,它們?yōu)槟?Kubernetes 增加了更多功能。 Helm HelmKubernetes 的軟件包管理器,可以輕松地獲得高
    的頭像 發(fā)表于 06-25 16:12 ?824次閱讀
    Awesome 工具如何更好地管理<b class='flag-5'>Kubernetes</b>

    Helm部署MinIO集群

    Helm部署MinIO集群
    的頭像 發(fā)表于 12-03 09:44 ?994次閱讀
    <b class='flag-5'>Helm</b>部署MinIO集群

    請(qǐng)問如何使用Helm在K8s上集成Prometheus呢?

    ArtifactHub 為 Helm Chart 提供了公共和私有資源庫(kù)。我們將使用這些 Helm Chart 來設(shè)置 Kubernetes 集群中的 pod 和服務(wù)。
    的頭像 發(fā)表于 01-10 17:24 ?879次閱讀
    請(qǐng)問如何使用<b class='flag-5'>Helm</b>在K8s上集成Prometheus呢?

    Kubernetes包管理工具Helm的安裝和使用

    Helm 可以幫助我們管理 Kubernetes 應(yīng)用程序 - Helm Charts 可以定義、安裝和升級(jí)復(fù)雜的 Kubernetes 應(yīng)用程序,Charts 包很容易創(chuàng)建、版本管理
    的頭像 發(fā)表于 03-13 16:06 ?423次閱讀