K8S的helm

这篇具有很好参考价值的文章主要介绍了K8S的helm。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

helm的作用 

在没有helm之前,deploymen service ingress ,helm的作用就是通过打包的方式,把deployment,service,ingress 这些打包在一块,一键式的部署服务,类似yum

官方提供的一个类似于安装仓库的功能,可以实现一键化部署应用

Helm的概念

由三个部分组成

1 chart:helm的软件包,包括部署包,service,ingress,是一些定义好的yaml资源,类似于yum的rpm包
2

Release:可以理解为版本,也可以理解为在安装过程中,给部署的应用起一个名字

3

Repository:仓库,提供一个服务器,这个服务器中包含chart的资源,yaml资源的保存地址

helm3纯命令行方式

                                               常用的仓库

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 Helm Incubator | charts.heml.sh/incubator

helm install my-nginx bitnami/nginx

helm install:安装

My-nginx:release安装的名称或者版本

Bitnami/nginx:bitnami仓库名,nginx就是chart一系列yaml资源的集合

Helm自定义模版

根据自己的需求,定义chart,然后部署到集群当中去

K8S的helm,kubernetes,容器,云原生

Charts:用于存储依赖,如果这个chart依赖于其他的chart,依赖文件保存在这个目录

Chart.Yaml:helm chart的元数据文件,包含了这个chart的名称,版本,维护者信息等等

Yemplates: 包含清单模版的目录

Deployment.yaml:部署应用的模版文件

Helpers.tpl:帮助文档,告诉用户如何来定义模版的值

Hapa.yaml:定义了应用程序副本数的扩缩容行为

Ingress.yaml:定义了外部流量如何转发到应用程序

NOTES.txt:注意事项

Serviceaccount.yaml:应用程序的服务账号

Service.yaml:集群内部的访问

Tests test-connection.yaml:测试的目录和文件,部署完chart之后,用来测试的文件

Values.yaml:核心文件,自定义的值,都是通过values.yaml,把我们数据覆盖到安装的chart

Helm install nginx-11 ./nginx --dry-run-debug

Helm Install:安装chart

nginx-1.1:release 版本号

./ngin:当前目录下的nginx的chart

--dry-run-debug:这个chart不会被部署到集群当中,参数验证,测试chart的配置是否正确

修改chart之后如何重新部署,回滚,上传harbor

Helm的常用命令

1.helm repo add+仓库名+url地址  ,添加仓库
2.helm repo update +仓库名 ,不加仓库名,就是更新所有仓库
3.helm repo list +仓库列表
4.helm repo remove +仓库名称
5.helm show chart stable/nginx  查看chart信息
6.helm show all stable/nginx 查看详细信息
7.Helm install ngin-11 stable/nginx -n lucky-cloud 安装chart,安装官网的默认版本
8.Helm uninstall nginx-11 删除安装好的chart
9.Helm list 查看已安装的chart

如何自定义模版:
helm create nginx  创建一个自定义的chart模版
核心:values.yaml 这里的值会传给templates里面的yaml文件

helm install nginx-11 ./nginx
Helm install nginx-11 ./nginx-0.1.0.tgz

如何打包创建好chart
Helm package nginx

如何回滚
Helm history nginx-11  ,然后helm rollback nginx-11 1

实验

[root@master01 ~]# cd /opt
[root@master01 opt]# mkdir helm
[root@master01 opt]# cd helm/
[root@master01 helm]# ls
[root@master01 helm]# ls
helm-v3.12.0-linux-amd64.tar.gz
[root@master01 helm]# tar -xf helm-v3.12.0-linux-amd64.tar.gz
[root@master01 helm]# ls
helm-v3.12.0-linux-amd64.tar.gz  linux-amd64
[root@master01 helm]# cd linux-amd64/
[root@master01 linux-amd64]# mv helm /usr/local/bin/helm
[root@master01 linux-amd64]# helm version
version.BuildInfo{Version:"v3.12.0", GitCommit:"c9f554d75773799f72ceef38c51210f1842a1dea", GitTreeState:"clean", GoVersion:"go1.20.3"}
[root@master01 linux-amd64]# vim /etc/profile
source <(helm completion bash)
#添加自动补齐

[root@master01 linux-amd64]# source /etc/profile
#立即生效
[root@master01 linux-amd64]# helm repo list
NAME            URL
bitnami         https://charts.bitnami.com/bitnami
stable          http://mirror.azure.cn/kubernetes/charts
incubator       https://charts.helm.sh/incubator
#查看当前仓库有哪些

[root@master01 linux-amd64]# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "stable" chart repository
...Successfully got an update from the "bitnami" chart repository
...Successfully got an update from the "incubator" chart repository
Update Complete. ⎈Happy Helming!⎈
#如何更新仓库,不加仓库名就是全部更新

[root@master01 linux-amd64]# helm search repo bitnami | grep nginx
bitnami/nginx                                   15.9.0          1.25.3          NGINX Open Source is a web server that can be a...
bitnami/nginx-ingress-controller                10.1.0          1.9.5           NGINX Ingress Controller is an Ingress controll...
bitnami/nginx-intel                             2.1.15          0.4.9           DEPRECATED NGINX Open Source for Intel is a lig...
#指定使用bitnami 仓库查看是否有 nginx 的yaml资源, 15.9.0 这个是仓库里的版本,1.25.3 这个是nginx 的版本,搜索资源

[root@master01 linux-amd64]# helm show chart bitnami/nginx
#查看详细信息
[root@master01 linux-amd64]# helm show all bitnami/nginx
#查看所有详细信息

helm install my-nginx bitnami/nginx
#helm install 安装 , my-nginx 安装的名称或者版本 ,bitnami/nginx  bitnami仓库名,nginx就是chart一系列yaml资源的集合

删除
helm uninstall my-nginx

helm install bitnami/nginx --generate-nam
--generate-name 随机指定Release名称

helm ls 查看所有安装Release

helm自定义模版

helm pull stable/mysql
#拉取包(mysql)

解压
tar -xf mysql-1.6.9.tgz

创建nginx
helm create nginx

查看创建的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

charts	用于存储依赖,如果这个chart依赖于其他的chart,依赖文件保存在这个目录
Chart.yaml	helm chart的元数据文件,包含了这个chart的名称,版本,维护者信息等等
Template	包含清单模版目录
deployment.yaml	部署应用的模版文件
helpers.tpl	帮助文档,告诉用户如何来定义模版的值
hpa.yaml	定义了应用程序副本数的扩缩容行为
ingress.yaml	定义了外部流量如何转发到应用程序
NOTES.txt	注意事项
serviceaccount.yaml	应用程序的服务账号
service.yaml	集群内部的访问
tests test-connection.yaml	测试的目录和文件,部署完chart之后,用来测试的文件
values.yaml	核心文件,自定义的值,都是通过values.yaml,把我们数据覆盖到安装的chart

修改values.yaml


# Default values for nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
 
replicaCount: 3
#创建的副本数

image:
  repository: nginx
  pullPolicy: IfNotPresent
  # Overrides the image tag whose default is the chart appVersion.
  tag: "1.22"
#指向镜像的版本

安装
方式1
helm install nginx-11 ./nginx -n default
方法二
helm install nginx-11 /opt/helm/linux-amd64/nginx-0.1.0.tgz -n default
删除
helm uninstall nginx-11

修改chart之后重新部署

修改values.yaml
.......
service:
  type: NodePort
  port: 80
  nodePort: 31000
ingress:
  enabled: false
  className: ""
  annotations: {}
......
 
修改service.yaml
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}}
  selector:
    {{- include "nginx.selectorLabels" . | nindent 4 }}
 
检测
helm lint nginx
 
更新
helm upgrade nginx-11 nginx

回滚

查看回滚
helm history nginx-11
REVISION	UPDATED                 	STATUS    	CHART      	APP VERSION	DESCRIPTION     
1       	Sun Jan 21 21:17:54 2024	superseded	nginx-0.1.0	1.16.0     	Install complete
2       	Sun Jan 21 21:46:04 2024	deployed  	nginx-0.2.0	1.16.0     	Upgrade complete
 
 
helm rollback nginx-11 1

上传harbor文章来源地址https://www.toymoban.com/news/detail-817272.html

修改Harbor
.....
harbor_admin_password: 123456
chart:
  absolute_url: enabled
......
 
运行脚本
./install.sh
 
 
mkdir -p  ~/.local/share/helm/plugins/helm-push
 
tar -xf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-push
 
docker login -u admin -p 123456 https://hub.test.com
 
上传
helm push nginx-0.2.0.tgz oci://hub.test.com/charts --insecure-skip-tls-verif

到了这里,关于K8S的helm的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kubernetes技术--k8s核心技术Helm

    1.引入 我们先回顾一下之前部署 一个应用 的过程,如部署nginx,实现效果如下所示: -1.编写deployment的yaml文件,然后运行。 -2.使用service中的NodePort对外暴漏端口 -3.为了弥补Nodeport的缺陷,使用ingress实现转发        这样一个应用就部署完了,这一种情况相对于如果你需要部署

    2024年02月09日
    浏览(49)
  • Kubernetes/k8s之包管理器helm

    在没有helm之前,我们要部署一个服务,deployment、service ingress 的作用通过打包的方式。把deployment、service ingress打包在一块,一键式部署服务。类似于yum功能。是官方提供的类似安装仓库的功能,可以实现一键化部署应用 helm的概念 由三个部分组成 chart:helm的软件包,部署包,

    2024年01月23日
    浏览(38)
  • 【云原生,k8s】Helm应用包管理器介绍

    目录 一、为什么需要Helm? (一)Helm介绍 (二)Helm有3个重要概念: (三)Helm特点 二、Helm V3变化 (一)架构变化 (二)自动创建名称空间 三、Helm应用包管理器部署 1、部署Helm客户端工具 2、Helm常用命令 3、配置国内的Chart仓库 4、使用chart部署一个Nginx应用 5、使用chart部

    2024年02月12日
    浏览(35)
  • 云原生 | K8S集群helm部署apisix3.1

    1.当前环境是内网,内网环境手动下载安装 下载地址:https://github.com/kubernetes/helm/releases 2.执行helm version命令验证: 目前只能查看到客户端的版本,服务器还没有安装 3.添加apisix 仓库 a.查看ns b.查看pvc是否已绑定 c.查看apisix的pod是否启动 d.查看svc e.修改apisix-dashboard端口号为:

    2024年02月13日
    浏览(41)
  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    目录 一、理论 1.K8S集群升级 2.环境 3.升级策略 4.master1节点迁移容器运行时(docker → containerd)  5.master2节点迁移容器运行时(docker → containerd)  6.node1节点容器运行时迁移(docker → containerd)  7.升级集群计划(v1.23.14 → v1.24.1) 8.升级master1节点版本(v1.24.1) 9.升级master2节点版本

    2024年02月03日
    浏览(66)
  • 云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授权访问&;容器执行

    curl -XPOST -k “https://192.168.139.132:10250/run///” -d “cmd=id” 执行的命令是test03容器里的命令,需要进行容器逃逸。 1、攻击8080端口:API Server(Master)未授权访问 旧版本的k8s的API Server默认会开启两个端口:8080和6443。 6443是安全端口,安全端口使用TLS加密;但是8080端口无需认证,

    2024年04月22日
    浏览(73)
  • [Kubernetes]8. K8s使用Helm部署mysql集群(主从数据库集群)

    上一节讲解了K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群),这里来看看 K8s使用Helm部署mysql集群(主从数据库集群) 无本地存储: 当重启的时候,数据库消失 (1).打开官网的应用中心 打开应用中心,搜索mysql (2).安装  1).添加repo仓库 2).安装 具体命令如下:  3).自动生成

    2024年01月21日
    浏览(72)
  • 一小时完成Rancher高可用搭建丨基于kubernetes(K8s)完成丨Docker helm

    一句话介绍:Rancher可用于对K8S集群进行部署及实现对业务部署进行管理等。 对于规模化较小的管理团队或初始使用Rancher管理K8S集群部署,建议使用此种方式。 对于具体一定规模且有一定K8S管理经验的团队,我们建议可以通过在Kubernetes部署Rancher,以达到Rancher高可用目的。

    2024年02月04日
    浏览(54)
  • 云原生Kubernetes:K8S概述

    目录 一、理论 1.云原生 2.K8S 3.k8s集群架构与组件 4.K8S网络 二、总结 (1)概念 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展,适用于各种不同的云平台。 如果要更直接通俗的来解释下上面的概念,云原生更

    2024年02月10日
    浏览(53)
  • 【云原生 • Kubernetes】认识 k8s、k8s 架构、核心概念点介绍

    目录 一、Kubernetes 简介 二、Kubernetes 架构 三、Kunbernetes 有哪些核心概念? 1. 集群 Cluster 2. 容器 Container 3. POD 4. 副本集 ReplicaSet 5. 服务 service 6. 发布 Deployment 7. ConfigMap/Secret 8. DaemonSet 9. 核心概念总结 Kubernetes 简称 k8s,是支持云原生部署的一个平台,起源于谷歌。谷歌早在十几

    2024年02月03日
    浏览(186)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包