helm 仓库的使用说明


# Helm的Repo仓库和Docker Registry类似,这个Chart库可用来存储和共享打包
# Chart仓库其实就是带有index.yaml索引文件和若干个已打包的Chart的HTTP服务而已
# 自己托管Chart仓库非常简单,如阿里云的OSS、Github Pages,甚至创建一个简单服务器都可以

# --------------------------------------- Example
# 添加私有仓库
[root@localhost ~]# helm repo add bitnami https://charts.bitnami.com/bitnami
[root@localhost ~]# helm repo add ali-stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

# 输出现有仓库列表
[root@localhost ~]# helm repo list
# NAME          URL
# bitnami       https://charts.bitnami.com/bitnami
# ali-stable    https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

# 从仓库更新Charts (相当于yum update) Make sure we get the latest list of charts
[root@localhost ~]# helm repo update
# Hang tight while we grab the latest from your chart repositories...
# ...Successfully got an update from the "ali-stable" chart repository
# ...Successfully got an update from the "bitnami" chart repository
# Update Complete. ⎈Happy Helming!⎈

# 在仓库中搜索并列出可安装的chart
[root@localhost ~]# helm search repo mysql | head -n 5
# NAME                CHART VERSION  APP VERSION DESCRIPTION
# ali-stable/mysql    0.3.5                      Fast, reliable, scalable, and easy to use open-...
# bitnami/mysql       8.5.8          8.0.25      Chart to create a Highly available MySQL cluster  
# ali-stable/percona  0.3.0                      free, fully compatible, enhanced, open source d...
# bitnami/phpmyadmin  8.2.5          5.1.0       phpMyAdmin is an mysql administration    

# --------------------------------------- 附

helm search hub
# 从Artifact Hub中查找并列出charts。Artifact Hub中存放了大量不同的仓库
# 可通过运行该命令找到公开可用的charts,如:helm search hub wordpress
# 新版中的helm search命令区分repo和hub (repo是自己手动添加的源)
# 其中hub是helm的中心库,各软件商需在这个hub仓库中把应用更新到最新之后用户才能搜索到 (类似dockerhub)

helm search repo
# 从添加(使用helm repo add命令)到本地客户端的仓库中查找,该命令基于本地数据进行搜索,无需互联网

# 推荐使用微软的Helm仓库
# stable:       http://mirror.azure.cn/kubernetes/charts/
# incubator:    http://mirror.azure.cn/kubernetes/charts-incubator/

# 公共的charts仓库地址
# https://hub.kubeapps.com/

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

# 若需自己创建Web服务器作为repo的话只需实现下面几个功能点即可
#   1.将索引文件和Chart置于服务器目录中
#   2.确保索引文件index.yaml可以在没有认证要求的情况下访问
#   3.确保YAML文件的正确内容类型(text/yaml 或 text/x-yaml)

基于 helm3 使用 harbor 作为 chart repo

# 设置context指定对应的namespace (不指定使用的是default)
# 这里是因为helm3的执行权限和 kubectl config 的权限是一致的 ...
kubectl config set-context <current-context> --namespace harbor

# 简化方式安装harbor (harbor的默认账号密码: admin/Harbor12345)
helm -n harbor install harbor goharbor/harbor \
    --set persistence.enabled=false \
    --set expose.type=nodePort \
    --set expose.tls.enabled=false \
    --set externalURL=http://192.168.10.196:30002

# 通过nodeport登录harbor的web页面,新建一个仓库 chart repo、新建一个 test 用户

# 添加repo到helm中
helm repo add harbor_repo http://192.168.1.1:30002/chartrepo/chart_repo

# 安装使用 helm-push 插件
helm plugin install https://github.com/chartmuseum/helm-push

# Push charts 到 harbor
helm push grafana-0.0.2.tgz harbor_repo --username test --password xxx

基于 helm2 创建内部 repo

helm serve --address 0.0.0.0:8879 --repo-path /data/helm/repo/ --url http://192.168.1.1:8879/charts/

# 更新 Helm Repository 的索引文件
cd /home/kubernetes/.helm/repository/local
helm repo index --url=http://192.168.100.211:8879 .

# 添加helm仓库
helm repo add local http://127.0.0.1:8879

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes Helm 是 Kubernetes 中最流行的包管理工具,它能够帮助开发者在 Kubernetes 集群中部署、升级和管理应用程序。使用 Helm 可以方便地管理 Kubernetes 资源的模板文件,并且可以将这些模板与配置值结合起来,生成可复用的软件包。本文将提供 Helm 的一些基本命令和示例操作。 一、安装 Helm 要安装 Helm,需要下面的几项: 1. 安装 Helm 客户端 ``` brew install helm # Mac choco install kubernetes-helm # Windows apt-get update && apt-get install -y helm # Ubuntu/Debian yum update && yum install -y helm # Centos/RedHat ``` 2. 创建并加入 Helm 仓库 Helm 软件仓库中存储了 Helm Charts,用户从仓库中获取 Charts 以及创建 Charts 进行分发。使用以下命令将官方仓库添加到 Helm。 ``` helm repo add stable https://kubernetes-charts.storage.googleapis.com/ ``` 二、Helm 常用命令 以下是 Helm 中的一些常用命令: 1. helm install 使用 helm install 安装一个 Chart。 ``` helm install [RELEASE NAME] [CHART] [FLAGS] ``` RELEASE NAME:定义一个 Chart 使用的名称。 CHART:定义要使用的 Chart 名称。 FLAGS:一些额外的自定义参数。 例如,安装 Redis 的 Chart。 ``` helm install redis stable/redis ``` 2. helm upgrade 使用 helm upgrade 命令来更新已部署的 Charts。 ``` helm upgrade [RELEASE NAME] [CHART] [FLAGS] ``` RELEASE NAME:定义一个 Chart 使用的名称。 CHART:定义要使用的 Chart 名称。 FLAGS:一些额外的自定义参数。 例如,更新已经安装的 Redis Chart。 ``` helm upgrade redis stable/redis ``` 3. helm list 使用 helm list 命令列出运行在 Kubernetes 集群中的 Charts。 ``` helm list ``` 4. helm delete 删除指定的 Chart。 ``` helm delete [RELEASE NAME] ``` RELEASE NAME:定义一个 Chart 使用的名称。 例如,删除 Redis Chart。 ``` helm delete redis ``` 三、Helm 示例 假设我们要使用 Helm 在 Kubernetes 集群中部署 WordPress 应用程序。 1. 安装 MySQL 首先需要安装 MySQL。使用 helm install 命令安装 MySQL。 ``` helm install my-mysql stable/mysql ``` 可以使用以下命令检查 my-mysql 是否安装成功。 ``` helm list ``` 2. 应用程序的 Chart 编写 WordPress 应用程序的 Chart,名称为 wordpress。 ``` apiVersion: v1 kind: Service metadata: name: wordpress spec: type: LoadBalancer ports: - name: http port: 80 targetPort: 80 selector: app: wordpress --- apiVersion: apps/v1 kind: Deployment metadata: name: wordpress spec: selector: matchLabels: app: wordpress replicas: 1 template: metadata: labels: app: wordpress spec: containers: - name: wordpress image: wordpress:4.9.4-php7.0-apache ports: - containerPort: 80 env: - name: WORDPRESS_DB_HOST value: my-mysql - name: WORDPRESS_DB_PASSWORD value: my-mysql-password - name: WORDPRESS_DB_USER value: root --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: wp-pv-claim spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi ``` 3. 安装 WordPress 使用以下命令安装 WordPress。 ``` helm install my-wordpress ./wordpress \ --set service.type=LoadBalancer \ --set ingress.enabled=true \ --set ingress.hosts[0].name=my-wordpress.local \ --set ingress.hosts[0].path=/ \ --set persistence.enabled=true \ --set persistence.existingClaim=wp-pv-claim \ --set db.host=my-mysql \ --set db.user=root \ --set db.password=my-mysql-password \ --set db.name=wordpress ``` 这个命令在指定了一些参数之后使用 helm install 安装 WordPress。 4. 连接 连接到 my-wordpress.local 并访问 WordPress。 ``` kubectl get ingress ``` 可以使用以下命令查看 Ingress 的 IP 地址。 ``` kubectl get services -o wide -n ingress-nginx ``` 打开浏览器并输入 my-wordpress.local 的 IP 地址,可以查看 WordPress 页面。 以上就是 Helm 的一些基本操作和示例。虽然 Helm 看起来比较复杂,但是一旦熟悉了基本命令,其实用起来非常方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值