helm官网:https://helm.sh/zh/

helm官网安装:https://helm.sh/zh/docs/intro/install/

 安装(官网搬运工):

用二进制版本安装(方式一)

1.下载 需要的版本(https://github.com/helm/helm/releases)
2.解压(tar -zxvf helm-v3.5.3-linux-amd64.tar.gz)
3.在解压目中找到helm程序,移动到需要的目录中(mv linux-amd64/helm /usr/local/bin/helm)

使用脚本安装(方式二,网络好的情况下推荐)

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

查看版本helm version

[root@kube130 minikube]# helm version
version.BuildInfo{Version:"v3.5.3", GitCommit:"041ce5a2c17a58be0fcd5f5e16fb3e7e95fea622", GitTreeState:"dirty", GoVersion:"go1.15.8"}

helm基本使用

# ------(<137338-helm>为我自己的阿里云helm私有库命名空间)------
# 查看版本
helm version
#添加阿里chart仓库地址
helm repo add aliyuncs https://apphub.aliyuncs.com
# 查看仓库列表
helm repo ls
# 更新chart仓库
helm repo update
# 搜索chart
helm search repo nginx
# 拉取chart,--untar的作用是直接解压文件
helm pull aliyuncs/nginx --untar
# 查看helm目录结构
tree nginx
# 安装helm包
# 直接在线安装aliyuncs/nginx,my-nginx为release名称;service.type=NodePort表示将tomcat的service对外暴露端口的方式改为NodePort(缺省为LoadBalancer);persistence.enabled=false表示将不启用持久化存储卷,测试暂不需要使用这个
helm install my-nginx aliyuncs/nginx --set service.type=NodePort --set persistence.enabled=false
# 删除release
helm delete <name>
# 创建自己的chart
helm create my-chart
# 查看目录结构
tree my-chart
# 检查配置和模板是否有效,并打印出最终渲染的yaml文件
helm install my-chart-001 --dry-run --debug my-chart
# 使用阿里云私有helm仓库,然后按这里操作 https://repomanage.rdc.aliyun.com/my/helm-repos/namespaces
# push包到私有仓库,方式1
helm push my-chart/ 137338-helm
# push包到私有仓库,方式2
helm package my-chart
# 如 helm push my-chart-0.1.3.tgz 137338-helm
helm push <name>-<version>.tgz 137338-helm
# 拉取chart
# 如果找不到的话,执行下 helm repo update
# --version 指定版本,--untar 下载后解压缩
helm pull 137338-helm/my-chart --version 0.1.3 --untar
# 部署,方式1,本地文件目录
helm install my-chart-002 my-chart
# 部署,方式2,远程仓库
helm install my-chart-001 137338-helm/my-chart
# 查看release
helm ls
# 删除release
helm delete my-chart-002

写个简单的demo

helm文件:

# 目录结构
my-nginx
├── Chart.yaml
├── templates
│   ├── deployment.yaml
│   └── service.yaml
└── values.yaml

# 文件内容
# -------Chart.yaml-------
name: my-nginx
version: 1.0.0

# -------values.yaml-------
containers: 
  image: nginx:1.7.9

# -------templates/deployment.yaml-------
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: {{ .Values.containers.image }}


# -------templates/service.yaml-------
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    app: nginx
spec:
  selector:
    app: nginx
  ports:
  - name: nginx-port
    protocol: TCP
    port: 80
    nodePort: 32600
    targetPort: 80
  type: NodePort

部署过程:

# 验证下
helm install my-nginx-001 --dry-run --debug my-nginx
# 部署
helm install my-nginx-001 my-nginx
# 提交到私有库
helm push my-nginx/ 137338-helm

 

访问查看:

 

阿里云私有helm仓库:

 

升级和回退

# ------(<137338-helm>为我自己的阿里云helm私有库命名空间)------
# 查看release
helm ls
# 查看release历史
helm history my-nginx-001
# 升级Usage: helm upgrade [RELEASE] [CHART] [flags]
# --version指定任意版本
helm upgrade my-nginx-001 137338-helm/my-nginx --version 1.0.2
# 回退Usage: helm rollback <RELEASE> [REVISION] [flags]
helm rollback my-nginx-001 1

升级

回退

 
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐