“Helm3”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
(创建页面,内容为“ Helm基础 姐妹篇这个是helm2 =helm3= =see also=”)
 
 
(未显示同一用户的26个中间版本)
第1行: 第1行:
 +
[[category:k8s]][[category:devops]]
 +
  
[[Helm基础]] 姐妹篇这个是helm2
+
[[Helm基础]] 姐妹篇这个是helm2, 现在直接看本文  helm3
  
 
=helm3=
 
=helm3=
 +
helm [helm] v.掌(舵);掌握;给…戴上头盔
 +
 +
==ins ==
 +
 +
[https://www.cnblogs.com/lvzhenjiang/p/14878279.html 轻松完爆Helm私有仓库]
 +
<pre>
 +
wget -c https://get.helm.sh/helm-v3.9.3-linux-amd64.tar.gz
 +
tar xvf helm-v3.9.3-linux-amd64.tar.gz
 +
sudo mv linux-amd64/helm /usr/local/bin/helm
 +
 +
wget -c https://get.helm.sh/helm-v3.0.3-linux-amd64.tar.gz
 +
    tar xvf  helm-v3.0.3-linux-amd64.tar.gz
 +
    sudo mv linux-amd64/helm /usr/local/bin/helm
 +
 +
 +
果想要更舒服一些,那么可以添加自动完成的代码:
 +
 +
# source <(helm completion bash)
 +
 +
</pre>
 +
 +
==添加 Chart 仓库==
 +
<pre>
 +
在 Helm 3.0 版本中,默认是不会添加 Chart 仓库,所以这里我们需要手动添加,下面是添加一些常用的 Charts 库,命令如下:
 +
 +
$ helm repo add  elastic    https://helm.elastic.co
 +
$ helm repo add  gitlab    https://charts.gitlab.io
 +
$ helm repo add  harbor    https://helm.goharbor.io
 +
$ helm repo add  bitnami    https://charts.bitnami.com/bitnami
 +
$ helm repo add  incubator  https://kubernetes-charts-incubator.storage.googleapis.com
 +
$ helm repo add  stable    https://kubernetes-charts.storage.googleapis.com
 +
 +
增加完仓库后,需要执行更新命令,将仓库中的信息进行同步:
 +
 +
$ helm repo update
 +
 +
    注意:如果有的仓库不能正常解析,请更换 DNS 地址,在测试过程中,发现有的能正常解析,有的不能。如果还不行,就直接将域名和对应的地址写死在 Host 文件中
 +
</pre>
 +
==Helm 的基本操作==
 +
===安装应用===
 +
通过 Helm 在 Repo 中查询可安装的 nginx
 +
<pre>
 +
helm search repo nginx
 +
NAME                            CHART VERSION APP VERSION        DESCRIPTION                                     
 +
aliyun/nginx-ingress            0.9.5        0.10.2              An nginx Ingress controller that uses ConfigMap...
 +
aliyun/nginx-lego              0.3.1                            Chart for nginx-ingress-controller and kube-lego 
 +
apphub/nginx                    5.1.5        1.16.1              Chart for the nginx server                       
 +
apphub/nginx-ingress            1.30.3      0.28.0              An nginx Ingress controller that uses ConfigMap...
 +
apphub/nginx-ingress-controller 5.3.4        0.29.0              Chart for the nginx Ingress controller           
 +
apphub/nginx-lego              0.3.1                            Chart for nginx-ingress-controller and kube-lego 
 +
apphub/nginx-php                1.0.0        nginx-1.10.3_php-7.0 Chart for the nginx php server                   
 +
bitnami/nginx                  5.1.7        1.16.1              Chart for the nginx server       
 +
 +
 +
helm search repo  redis
 +
NAME                            CHART VERSION APP VERSION  DESCRIPTION                                     
 +
aliyun/redis                    1.1.15      4.0.8        Open source, advanced key-value store. It is of...
 +
aliyun/redis-ha                2.0.1                    Highly available Redis cluster with multiple se...
 +
</pre>
 +
 +
 +
安装测试:
 +
–namespace:指定安装的 Namespace
 +
 +
  helm install nginx bitnami/nginx -n mydlqcloud
 +
 +
查看应用状态
 +
 +
  helm status nginx -n mydlqcloud
 +
 +
===helm redis-cluster  ===
 +
<pre>
 +
1. 添加 bitnami 的仓库
 +
helm repo add bitnami https://charts.bitnami.com/bitnami #国内网络不太成功的
 +
helm repo add azure http://mirror.azure.cn/kubernetes/charts
 +
helm repo add bitnami "https://helm-charts.itboon.top/bitnami" --force-update
 +
helm repo update bitnami
 +
 +
 +
2. 查询 Redis 资源
 +
helm repo update
 +
redis# helm  search repo redis
 +
NAME                          CHART VERSION APP VERSION DESCRIPTION                                     
 +
azure/prometheus-redis-exporter 3.5.1        1.3.4      DEPRECATED Prometheus exporter for Redis metrics 
 +
azure/redis                    10.5.7      5.0.7      DEPRECATED Open source, advanced key-value stor...
 +
azure/redis-ha                4.4.6        5.0.6      DEPRECATED - Highly available Kubernetes implem...
 +
bitnami/redis                  20.1.5      7.4.0      Redis(R) is an open source, advanced key-value ...
 +
bitnami/redis-cluster          11.0.5      7.4.0      Redis(R) is an open source, scalable, distribut...
 +
 +
3. 拉取 chart 到本地
 +
helm pull bitnami/redis-cluster --version 11.0.5
 +
  cd redis/
 +
 +
1277  tar xvf redis-cluster-11.0.5.tgz
 +
1278  cp redis-cluster/values.yaml ./values-test.yaml
 +
 +
4. 对本地 valuse-test.yaml 修改
 +
/redis# kubectl get storageclasses
 +
NAME                    PROVISIONER                                        RECLAIMPOLICY  VOLUMEBINDINGMODE  ALLOWVOLUMEEXPANSION  AGE
 +
nfs                    nfs-nfs                                            Delete          Immediate          false                  4d23h
 +
nfs-client              k8s-sigs.io/nfs-subdir-external-provisioner        Delete          Immediate          false                  4d17h
 +
 +
cat values-test.yaml
 +
 +
global:
 +
  storageClass: "nfs-client" # 配置sc为nfs
 +
  redis:
 +
    password: "redis123" # 定义 redis 密码
 +
 +
因为你懂的原因  有很多个地方 直接替换
 +
把 image 有关的 docker.io 改为 m.daocloud.io/docker.io
 +
样子如下
 +
 +
## @param image.debug Enable image debug mode
 +
##
 +
image:
 +
  registry: m.daocloud.io/docker.io
 +
  repository: bitnami/redis-cluster
 +
  tag: 7.4.0-debian-12-r4
 +
 +
5. 安装 Redis 集群
 +
# 创建 mynamespace 名称空间
 +
$ kubectl create ns mynamespace
 +
 +
# 安装 Redis 集群
 +
$ helm -n mynamespace install redis-cluster redis-cluster -f values-test.yaml
 +
NAME: redis-cluster
 +
LAST DEPLOYED: Thu Oct 10 02:22:11 2024
 +
NAMESPACE: mynamespace
 +
STATUS: deployed
 +
REVISION: 1
 +
TEST SUITE: None
 +
NOTES:
 +
CHART NAME: redis-cluster
 +
CHART VERSION: 11.0.5
 +
APP VERSION: 7.4.0** Please be patient while the chart is being deployed **
 +
 +
 +
To get your password run:
 +
    export REDIS_PASSWORD=$(kubectl get secret --namespace "mynamespace" redis-cluster -o jsonpath="{.data.redis-password}" | base64 -d)
 +
 +
You have deployed a Redis&reg; Cluster accessible only from within you Kubernetes Cluster.INFO: The Job to create the cluster will be created.To connect to your Redis&reg; cluster:
 +
 +
1. Run a Redis&reg; pod that you can use as a client:
 +
kubectl run --namespace mynamespace redis-cluster-client --rm --tty -i --restart='Never' \
 +
--env REDIS_PASSWORD=$REDIS_PASSWORD \
 +
--image m.daocloud.io/docker.io/bitnami/redis-cluster:7.4.0-debian-12-r4 -- bash
 +
 +
2. Connect using the Redis&reg; CLI:
 +
 +
redis-cli -c -h redis-cluster -a $REDIS_PASSWORD
 +
 +
 +
 +
WARNING: There are "resources" sections in the chart not set. Using "resourcesPreset" is not recommended for production. For production installations, please set the following values according to your workload needs:
 +
  - redis.resources
 +
  - updateJob.resources
 +
+info https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
 +
 +
⚠ SECURITY WARNING: Original containers have been substituted. This Helm chart was designed, tested, and validated on multiple platforms using a specific set of Bitnami and Tanzu Application Catalog containers. Substituting other containers is likely to cause degraded security and performance, broken chart features, and missing environment variables.
 +
 +
Substituted images detected:
 +
  - m.daocloud.io/docker.io/bitnami/redis-cluster:7.4.0-debian-12-r4
 +
  - m.daocloud.io/docker.io/bitnami/os-shell:12-debian-12-r30
 +
  - m.daocloud.io/docker.io/bitnami/redis-exporter:1.63.0-debian-12-r0
 +
  - m.daocloud.io/docker.io/bitnami/os-shell:12-debian-12-r30
 +
 +
 +
## helm -n NAMESAPCE install SERVER_NAME FILE_NAME -f CONFIG_FILE
 +
-n 指定 kubernetes 集群名称空间
 +
-f 指定使用的配置文件,文件中定义的配置可以覆盖 redis-cluster/values.yaml 文件中配置
 +
 +
/redis#  helm -n mynamespace list
 +
NAME        NAMESPACE  REVISION UPDATED                                STATUS  CHART              APP VERSION
 +
redis-cluster mynamespace 1      2024-10-10 02:22:11.203808604 +0000 UTC deployed redis-cluster-11.0.5 7.4.0 
 +
 +
kubectl -n mynamespace get pods -l helm.sh/chart=redis-cluster-11.0.5
 +
NAME              READY  STATUS    RESTARTS      AGE
 +
redis-cluster-0  1/1    Running  1 (21m ago)  24m
 +
redis-cluster-1  1/1    Running  1 (21m ago)  24m
 +
redis-cluster-2  1/1    Running  1 (21m ago)  24m
 +
redis-cluster-3  1/1    Running  1 (21m ago)  24m
 +
redis-cluster-4  1/1    Running  0            24m
 +
redis-cluster-5  1/1    Running  0            24m
 +
 +
edis# kubectl -n mynamespace get pods,sts,svc  -l helm.sh/chart=redis-cluster-11.0.5
 +
NAME                  READY  STATUS    RESTARTS      AGE
 +
pod/redis-cluster-0  1/1    Running  1 (25m ago)  28m
 +
pod/redis-cluster-1  1/1    Running  1 (25m ago)  28m
 +
pod/redis-cluster-2  1/1    Running  1 (25m ago)  28m
 +
pod/redis-cluster-3  1/1    Running  1 (25m ago)  28m
 +
pod/redis-cluster-4  1/1    Running  0            28m
 +
pod/redis-cluster-5  1/1    Running  0            28m
 +
 +
NAME                            READY  AGE
 +
statefulset.apps/redis-cluster  6/6    28m
 +
 +
NAME                            TYPE        CLUSTER-IP      EXTERNAL-IP  PORT(S)              AGE
 +
service/redis-cluster            ClusterIP  10.233.79.164  <none>        6379/TCP            28m
 +
service/redis-cluster-headless  ClusterIP  None            <none>        6379/TCP,16379/TCP  28m
 +
 +
 +
6. 连接 Redis 集群 验证服务
 +
 +
kubectl get secret --namespace "mynamespace" redis-cluster -o jsonpath="{.data.redis-password}" | base64 -d
 +
1301  export REDIS_PASSWORD=$(kubectl get secret --namespace "mynamespace" redis-cluster -o jsonpath="{.data.redis-password}" | base64 -d)
 +
1302  kubectl run --namespace mynamespace redis-cluster-client --rm --tty -i --restart='Never'  --env REDIS_PASSWORD=$REDIS_PASSWORD --image m.daocloud.io/docker.io/bitnami/redis-cluster:7.4.0-debian-12-r4 -- bash
 +
 +
</pre>
 +
https://juejin.cn/post/7353197221742018600
 +
 +
 +
[https://www.cnblogs.com/Merbleue/p/17903263.html Helm Chart 部署 Redis 的完美指南]
 +
 +
==== trouble====
 +
<pre>root@ubuntu-2004aug-1:~/redis# kubectl -n mynamespace get pods -l helm.sh/chart=redis-cluster-11.0.5
 +
NAME              READY  STATUS              RESTARTS  AGE
 +
redis-cluster-0  0/1    ImagePullBackOff    0          92s
 +
redis-cluster-1  0/1    ImagePullBackOff    0          91s
 +
redis-cluster-2  0/1    ContainerCreating  0          90s
 +
redis-cluster-3  0/1    ContainerCreating  0          90s
 +
redis-cluster-4  0/1    ContainerCreating  0          89s
 +
redis-cluster-5  0/1    ContainerCreating  0          89s
 +
 +
 +
原因 
 +
Pulling image "docker.io/bitnami/redis-cluster:7.4.0-debian-12-r4"
 +
 +
 +
 +
m.daocloud.io/docker.io/library/xtrabackup:1.0
 +
 +
 +
m.daocloud.io/docker.io/bitnami/redis-cluster:7.4.0-debian-12-r4</pre>
 +
 +
=== ins mysql===
 +
参考官方  https://helm.sh/docs/intro/quickstart/
 +
<pre>
 +
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
 +
 +
$ helm repo update              # Make sure we get the latest list of charts
 +
 +
$ helm install stable/mysql --generate-name
 +
 +
NAME: mysql-1583911857
 +
LAST DEPLOYED: Wed Mar 11 15:31:01 2020
 +
NAMESPACE: default
 +
STATUS: deployed
 +
REVISION: 1
 +
NOTES:
 +
MySQL can be accessed via port 3306 on the following DNS name from within your cluster:
 +
mysql-1583911857.default.svc.cluster.local
 +
 +
To get your root password run:
 +
 +
    MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default mysql-1583911857 -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo)
 +
 +
To connect to your database:
 +
 +
1. Run an Ubuntu pod that you can use as a client:
 +
 +
    kubectl run -i --tty ubuntu --image=ubuntu:16.04 --restart=Never -- bash -il
 +
 +
2. Install the mysql client:
 +
 +
    $ apt-get update && apt-get install mysql-client -y
 +
 +
3. Connect using the mysql cli, then provide your password:
 +
    $ mysql -h mysql-1583911857 -p
 +
 +
To connect to your database directly from outside the K8s cluster:
 +
    MYSQL_HOST=127.0.0.1
 +
    MYSQL_PORT=3306
 +
 +
    # Execute the following command to route the connection:
 +
    kubectl port-forward svc/mysql-1583911857 3306
 +
 +
    mysql -h ${MYSQL_HOST} -P${MYSQL_PORT} -u root -p${MYSQL_ROOT_PASSWORD}
 +
 +
</pre>
  
 
=see also=
 
=see also=
 +
 +
=renference=
 +
[https://blog.csdn.net/Bruce1114/article/details/126034972  国内helm快速安装和添加常用charts仓库]
 +
 +
[https://github.com/sir5kong/helm-charts-hub  Helm Charts 像站,中国区网络加速 ]
 +
 +
https://artifacthub.io/packages/helm/bitnami/redis-cluster
 +
 +
 +
https://helm.sh/docs/intro/install/
 +
 +
 +
[https://juejin.cn/post/6844903928404918286  从入门到实践:创作一个自己的 Helm Chart ]
 +
[https://blog.csdn.net/qq_35887546/article/details/106051393 k8s (二十二) --- kubernetes Helm详解及使用helm部署redis高可用集群]
 +
 +
[https://www.cnblogs.com/Erik_Xu/p/8893725.html Helm - Kubernetes服务编排的利器]
 +
 +
[http://www.mydlq.club/article/51/ 安装 Helm3 管理 Kubernetes 应用]
 +
 +
[https://www.jianshu.com/p/8fc2ba925516 【k8s学习】Kubernetes打包工具Helm介绍]
 +
 +
[https://blog.csdn.net/eyeofeagle/article/details/102703065  k8s之helm安装mysql]
 +
 +
[https://blog.csdn.net/rockstics/article/details/115768003  helm3 安装及redis部署]
 +
 +
[https://www.cnblogs.com/evescn/p/16249207.html helm 安装 MySQL 主从 ]
 +
 +
[https://www.cnblogs.com/evescn/p/16242491.html helm 安装 Redis 3主3从]
 +
 +
[https://www.cnblogs.com/wangzhangtao/p/12593812.html helm部署redis主从和哨兵模式]
 +
 +
[https://www.cnblogs.com/evescn/p/16274045.html helm 安装 RabbitMQ 集群]
 +
 +
 +
[https://cloud.tencent.com/developer/article/1433261 Kubernetes 集群使用 Helm 搭建 GitLab 并配置 Ingress]
 +
 +
 +
[https://www.jianshu.com/p/4bd853a8068b Helm 从入门到实践]

2024年10月10日 (四) 03:39的最新版本


Helm基础 姐妹篇这个是helm2, 现在直接看本文 helm3

helm3

helm [helm] v.掌(舵);掌握;给…戴上头盔

ins

轻松完爆Helm私有仓库

wget -c https://get.helm.sh/helm-v3.9.3-linux-amd64.tar.gz
tar xvf helm-v3.9.3-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm

 wget -c https://get.helm.sh/helm-v3.0.3-linux-amd64.tar.gz
    tar xvf  helm-v3.0.3-linux-amd64.tar.gz 
     sudo mv linux-amd64/helm /usr/local/bin/helm


果想要更舒服一些,那么可以添加自动完成的代码:

# source <(helm completion bash)

添加 Chart 仓库

在 Helm 3.0 版本中,默认是不会添加 Chart 仓库,所以这里我们需要手动添加,下面是添加一些常用的 Charts 库,命令如下:

$ helm repo add  elastic    https://helm.elastic.co
$ helm repo add  gitlab     https://charts.gitlab.io
$ helm repo add  harbor     https://helm.goharbor.io
$ helm repo add  bitnami    https://charts.bitnami.com/bitnami
$ helm repo add  incubator  https://kubernetes-charts-incubator.storage.googleapis.com
$ helm repo add  stable     https://kubernetes-charts.storage.googleapis.com

增加完仓库后,需要执行更新命令,将仓库中的信息进行同步:

$ helm repo update

    注意:如果有的仓库不能正常解析,请更换 DNS 地址,在测试过程中,发现有的能正常解析,有的不能。如果还不行,就直接将域名和对应的地址写死在 Host 文件中

Helm 的基本操作

安装应用

通过 Helm 在 Repo 中查询可安装的 nginx

helm search repo nginx
NAME                            	CHART VERSION	APP VERSION         	DESCRIPTION                                       
aliyun/nginx-ingress            	0.9.5        	0.10.2              	An nginx Ingress controller that uses ConfigMap...
aliyun/nginx-lego               	0.3.1        	                    	Chart for nginx-ingress-controller and kube-lego  
apphub/nginx                    	5.1.5        	1.16.1              	Chart for the nginx server                        
apphub/nginx-ingress            	1.30.3       	0.28.0              	An nginx Ingress controller that uses ConfigMap...
apphub/nginx-ingress-controller 	5.3.4        	0.29.0              	Chart for the nginx Ingress controller            
apphub/nginx-lego               	0.3.1        	                    	Chart for nginx-ingress-controller and kube-lego  
apphub/nginx-php                	1.0.0        	nginx-1.10.3_php-7.0	Chart for the nginx php server                    
bitnami/nginx                   	5.1.7        	1.16.1              	Chart for the nginx server         


helm search repo  redis 
NAME                            	CHART VERSION	APP VERSION  	DESCRIPTION                                       
aliyun/redis                    	1.1.15       	4.0.8        	Open source, advanced key-value store. It is of...
aliyun/redis-ha                 	2.0.1        	             	Highly available Redis cluster with multiple se...


安装测试: –namespace:指定安装的 Namespace

  helm install nginx bitnami/nginx -n mydlqcloud 

查看应用状态

 helm status nginx -n mydlqcloud

helm redis-cluster

1. 添加 bitnami 的仓库
helm repo add bitnami https://charts.bitnami.com/bitnami #国内网络不太成功的
 helm repo add azure http://mirror.azure.cn/kubernetes/charts
helm repo add bitnami "https://helm-charts.itboon.top/bitnami" --force-update
helm repo update bitnami


2. 查询 Redis 资源
helm repo update
redis# helm  search repo redis 
NAME                           	CHART VERSION	APP VERSION	DESCRIPTION                                       
azure/prometheus-redis-exporter	3.5.1        	1.3.4      	DEPRECATED Prometheus exporter for Redis metrics  
azure/redis                    	10.5.7       	5.0.7      	DEPRECATED Open source, advanced key-value stor...
azure/redis-ha                 	4.4.6        	5.0.6      	DEPRECATED - Highly available Kubernetes implem...
bitnami/redis                  	20.1.5       	7.4.0      	Redis(R) is an open source, advanced key-value ...
bitnami/redis-cluster          	11.0.5       	7.4.0      	Redis(R) is an open source, scalable, distribut...

3. 拉取 chart 到本地
helm pull bitnami/redis-cluster --version 11.0.5
  cd redis/

 1277  tar xvf redis-cluster-11.0.5.tgz 
 1278  cp redis-cluster/values.yaml ./values-test.yaml

4. 对本地 valuse-test.yaml 修改
/redis# kubectl get storageclasses
NAME                    PROVISIONER                                        RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs                     nfs-nfs                                            Delete          Immediate           false                  4d23h
nfs-client              k8s-sigs.io/nfs-subdir-external-provisioner        Delete          Immediate           false                  4d17h

cat values-test.yaml 

global:
  storageClass: "nfs-client" # 配置sc为nfs
  redis:
    password: "redis123"		# 定义 redis 密码

因为你懂的原因  有很多个地方 直接替换
把 image 有关的 docker.io 改为 m.daocloud.io/docker.io
样子如下 

## @param image.debug Enable image debug mode
##
image:
  registry: m.daocloud.io/docker.io
  repository: bitnami/redis-cluster
  tag: 7.4.0-debian-12-r4

5. 安装 Redis 集群
# 创建 mynamespace 名称空间
$ kubectl create ns mynamespace

# 安装 Redis 集群
$ helm -n mynamespace install redis-cluster redis-cluster -f values-test.yaml
NAME: redis-cluster
LAST DEPLOYED: Thu Oct 10 02:22:11 2024
NAMESPACE: mynamespace
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: redis-cluster
CHART VERSION: 11.0.5
APP VERSION: 7.4.0** Please be patient while the chart is being deployed **


To get your password run:
    export REDIS_PASSWORD=$(kubectl get secret --namespace "mynamespace" redis-cluster -o jsonpath="{.data.redis-password}" | base64 -d)

You have deployed a Redis® Cluster accessible only from within you Kubernetes Cluster.INFO: The Job to create the cluster will be created.To connect to your Redis® cluster:

1. Run a Redis® pod that you can use as a client:
kubectl run --namespace mynamespace redis-cluster-client --rm --tty -i --restart='Never' \
 --env REDIS_PASSWORD=$REDIS_PASSWORD \
--image m.daocloud.io/docker.io/bitnami/redis-cluster:7.4.0-debian-12-r4 -- bash

2. Connect using the Redis® CLI:

redis-cli -c -h redis-cluster -a $REDIS_PASSWORD



WARNING: There are "resources" sections in the chart not set. Using "resourcesPreset" is not recommended for production. For production installations, please set the following values according to your workload needs:
  - redis.resources
  - updateJob.resources
+info https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

⚠ SECURITY WARNING: Original containers have been substituted. This Helm chart was designed, tested, and validated on multiple platforms using a specific set of Bitnami and Tanzu Application Catalog containers. Substituting other containers is likely to cause degraded security and performance, broken chart features, and missing environment variables.

Substituted images detected:
  - m.daocloud.io/docker.io/bitnami/redis-cluster:7.4.0-debian-12-r4
  - m.daocloud.io/docker.io/bitnami/os-shell:12-debian-12-r30
  - m.daocloud.io/docker.io/bitnami/redis-exporter:1.63.0-debian-12-r0
  - m.daocloud.io/docker.io/bitnami/os-shell:12-debian-12-r30


## helm -n NAMESAPCE install SERVER_NAME FILE_NAME -f CONFIG_FILE
-n 指定 kubernetes 集群名称空间
-f 指定使用的配置文件,文件中定义的配置可以覆盖 redis-cluster/values.yaml 文件中配置

/redis#  helm -n mynamespace list
NAME         	NAMESPACE  	REVISION	UPDATED                                	STATUS  	CHART               	APP VERSION
redis-cluster	mynamespace	1       	2024-10-10 02:22:11.203808604 +0000 UTC	deployed	redis-cluster-11.0.5	7.4.0   

kubectl -n mynamespace get pods -l helm.sh/chart=redis-cluster-11.0.5 
NAME              READY   STATUS    RESTARTS      AGE
redis-cluster-0   1/1     Running   1 (21m ago)   24m
redis-cluster-1   1/1     Running   1 (21m ago)   24m
redis-cluster-2   1/1     Running   1 (21m ago)   24m
redis-cluster-3   1/1     Running   1 (21m ago)   24m
redis-cluster-4   1/1     Running   0             24m
redis-cluster-5   1/1     Running   0             24m

edis# kubectl -n mynamespace get pods,sts,svc  -l helm.sh/chart=redis-cluster-11.0.5 
NAME                  READY   STATUS    RESTARTS      AGE
pod/redis-cluster-0   1/1     Running   1 (25m ago)   28m
pod/redis-cluster-1   1/1     Running   1 (25m ago)   28m
pod/redis-cluster-2   1/1     Running   1 (25m ago)   28m
pod/redis-cluster-3   1/1     Running   1 (25m ago)   28m
pod/redis-cluster-4   1/1     Running   0             28m
pod/redis-cluster-5   1/1     Running   0             28m

NAME                             READY   AGE
statefulset.apps/redis-cluster   6/6     28m

NAME                             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)              AGE
service/redis-cluster            ClusterIP   10.233.79.164   <none>        6379/TCP             28m
service/redis-cluster-headless   ClusterIP   None            <none>        6379/TCP,16379/TCP   28m


6. 连接 Redis 集群 验证服务

kubectl get secret --namespace "mynamespace" redis-cluster -o jsonpath="{.data.redis-password}" | base64 -d
 1301  export REDIS_PASSWORD=$(kubectl get secret --namespace "mynamespace" redis-cluster -o jsonpath="{.data.redis-password}" | base64 -d)
 1302  kubectl run --namespace mynamespace redis-cluster-client --rm --tty -i --restart='Never'  --env REDIS_PASSWORD=$REDIS_PASSWORD --image m.daocloud.io/docker.io/bitnami/redis-cluster:7.4.0-debian-12-r4 -- bash

https://juejin.cn/post/7353197221742018600


Helm Chart 部署 Redis 的完美指南

trouble

root@ubuntu-2004aug-1:~/redis# kubectl -n mynamespace get pods -l helm.sh/chart=redis-cluster-11.0.5
NAME              READY   STATUS              RESTARTS   AGE
redis-cluster-0   0/1     ImagePullBackOff    0          92s
redis-cluster-1   0/1     ImagePullBackOff    0          91s
redis-cluster-2   0/1     ContainerCreating   0          90s
redis-cluster-3   0/1     ContainerCreating   0          90s
redis-cluster-4   0/1     ContainerCreating   0          89s
redis-cluster-5   0/1     ContainerCreating   0          89s


原因  
Pulling image "docker.io/bitnami/redis-cluster:7.4.0-debian-12-r4"



m.daocloud.io/docker.io/library/xtrabackup:1.0


m.daocloud.io/docker.io/bitnami/redis-cluster:7.4.0-debian-12-r4

ins mysql

参考官方 https://helm.sh/docs/intro/quickstart/

 helm repo add stable https://kubernetes-charts.storage.googleapis.com/

$ helm repo update              # Make sure we get the latest list of charts

$ helm install stable/mysql --generate-name

NAME: mysql-1583911857
LAST DEPLOYED: Wed Mar 11 15:31:01 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
MySQL can be accessed via port 3306 on the following DNS name from within your cluster:
mysql-1583911857.default.svc.cluster.local

To get your root password run:

    MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default mysql-1583911857 -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo)

To connect to your database:

1. Run an Ubuntu pod that you can use as a client:

    kubectl run -i --tty ubuntu --image=ubuntu:16.04 --restart=Never -- bash -il

2. Install the mysql client:

    $ apt-get update && apt-get install mysql-client -y

3. Connect using the mysql cli, then provide your password:
    $ mysql -h mysql-1583911857 -p

To connect to your database directly from outside the K8s cluster:
    MYSQL_HOST=127.0.0.1
    MYSQL_PORT=3306

    # Execute the following command to route the connection:
    kubectl port-forward svc/mysql-1583911857 3306

    mysql -h ${MYSQL_HOST} -P${MYSQL_PORT} -u root -p${MYSQL_ROOT_PASSWORD}

see also

renference

国内helm快速安装和添加常用charts仓库

Helm Charts 像站,中国区网络加速

https://artifacthub.io/packages/helm/bitnami/redis-cluster


https://helm.sh/docs/intro/install/


从入门到实践:创作一个自己的 Helm Chart k8s (二十二) --- kubernetes Helm详解及使用helm部署redis高可用集群

Helm - Kubernetes服务编排的利器

安装 Helm3 管理 Kubernetes 应用

【k8s学习】Kubernetes打包工具Helm介绍

k8s之helm安装mysql

helm3 安装及redis部署

helm 安装 MySQL 主从

helm 安装 Redis 3主3从

helm部署redis主从和哨兵模式

helm 安装 RabbitMQ 集群


Kubernetes 集群使用 Helm 搭建 GitLab 并配置 Ingress


Helm 从入门到实践