Kubernetes包管理工具Helm简介及使用

文章目录

    • 前言
    • 技术积累
      • 什么是Helm
      • Helm的核心概念
      • Helm可以解决哪些痛点
      • Helm中文官方文档
    • Helm安装
    • Helm安装nginx用例
    • 写在最后

前言

大家都知道K8S是云原生devops的一大利器,可以直接让我们的中间件、应用服务直接运行在云端,让我们可以只关心自身的业务功能, 不再关注其他那些非功能项以及运维部署的琐事。但是K8S对于基础服务和应用服务部署还是相当的麻烦,比如一个服务端的应用部署,我们需要配置存储pv/pvc、应用deployment、服务发现service、暴露端口管理以及secret,这些资源都是分散的需要我们使用kubectl进行分别管理。针对这个鸡肋的问题,今天我们就介绍一个K8S的包管理工具Helm,直接解放双手。
在这里插入图片描述

技术积累

什么是Helm

Helm 是 Kubernetes 的包管理器,是查找、分享和使用软件构建 Kubernetes 的最优方式。

包管理器类似于我们在 Ubuntu 中使用的apt、Centos中使用的yum一样,能快速查找、下载和安装软件包, 能够将一组K8S资源打包统一管理, 是查找、共享和使用为Kubernetes构建的软件的最佳方式。

Helm的核心概念

Helm:客户端命令行工具,用于chart的创建、打包、发布与管理;
Chart: helm管理的包,包含k8s集群内部运行的应用程序,工具或服务的资源定义;相似于centos yum所管理的rpm包,是一系列资源文件的集合;
Repository: 用于存放chart的地方,类似于yum仓库;可以使用官方的仓库,也可以自定义私有仓库;
Release: 是 k8s集群中运行的chart实列,chart可以在k8s集群中反复部署,每次部署都会创建一个新的release。

Helm可以解决哪些痛点

统一管理、配置和更新这些分散的 k8s 的应用资源文件
分发和复用一套应用模板
将应用的一系列资源当做一个软件包管理

Helm中文官方文档

https://helm.sh/zh/docs/intro/quickstart/

Helm安装

官网给定的kubernetes版本和Helm版本的支持关系如下:

那么选择对应的3.12.x版本安装,我这里采用便捷的方式进行安装helm。
在已经安装好的kubernetes集群中直接安装一下命令在master节点中安装:

#获取helm安装包
[root@master ~]# wget https://get.helm.sh/helm-v3.12.1-linux-amd64.tar.gz
#解压安装
[root@master ~]# tar -zxvf helm-v3.12.1-linux-amd64.tar.gz
[root@master ~]# mv linux-amd64/helm /usr/local/bin/helm
#添加 bitnami仓库
[root@master ~]# helm repo add bitnami https://charts.bitnami.com/bitnami
# 查看仓库列表
[root@master ~]# helm repo list
NAME            URL
bitnami         https://charts.bitnami.com/bitnami
[root@master ~]#

这样helm就安装到kubernetes集群中了。

Helm安装nginx用例

1、helm仓库查询nginx安装包

[root@master ~]# helm search repo nginx
NAME                                    CHART VERSION   APP VERSION     DESCRIPTION
bitnami/nginx                           15.3.1          1.25.2          NGINX Open Source is a web server that can be a...
bitnami/nginx-ingress-controller        9.8.5           1.9.0           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...
ingress-nginx/ingress-nginx             4.8.0           1.9.0           Ingress controller for Kubernetes using NGINX a...
stable/nginx-ingress                    1.41.3          v0.34.1         DEPRECATED! An nginx Ingress controller that us...
stable/nginx-ldapauth-proxy             0.1.6           1.13.5          DEPRECATED - nginx proxy with ldapauth
stable/nginx-lego                       0.3.1                           Chart for nginx-ingress-controller and kube-lego
stable/gcloud-endpoints                 0.1.2           1               DEPRECATED Develop, deploy, protect and monitor...
[root@master ~]#

2、helm拉取nginx安装包

[root@master ~]# cd /k8s/
[root@master k8s]# helm pull bitnami/nginx

在这里插入图片描述

3、解压nginx-15.3.1.tgz

[root@master k8s]# tar xzvf nginx-15.3.1.tgz
[root@master k8s]# cd nginx
[root@master nginx]# ll
total 104
-rw-r--r-- 1 root root   226 Sep 26 08:04 Chart.lock
drwxr-xr-x 3 root root    20 Nov  1 09:59 charts
-rw-r--r-- 1 root root  1012 Sep 26 08:04 Chart.yaml
-rw-r--r-- 1 root root 49429 Sep 26 08:04 README.md
drwxr-xr-x 2 root root   325 Nov  1 09:59 templates
-rw-r--r-- 1 root root  2225 Sep 26 08:04 values.schema.json
-rw-r--r-- 1 root root 37116 Sep 26 08:04 values.yaml

此时我们可以修改value.yaml中的一些配置,比如端口。

4、helm安装nginx

[root@master nginx]# helm install nginx .
NAME: nginx
LAST DEPLOYED: Wed Nov  1 10:04:36 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: nginx
CHART VERSION: 15.3.1
APP VERSION: 1.25.2** Please be patient while the chart is being deployed **
NGINX can be accessed through the following DNS name from within your cluster:nginx.default.svc.cluster.local (port 80)To access NGINX from outside the cluster, follow the steps below:1. Get the NGINX URL by running these commands:NOTE: It may take a few minutes for the LoadBalancer IP to be available.Watch the status with: 'kubectl get svc --namespace default -w nginx'export SERVICE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].port}" services nginx)export SERVICE_IP=$(kubectl get svc --namespace default nginx -o jsonpath='{.status.loadBalancer.ingress[0].ip}')echo "http://${SERVICE_IP}:${SERVICE_PORT}"
[root@master nginx]#

5、获取已经安装的nginx 服务及pod

[root@master nginx]# kubectl get pod,svc | grep nginx
pod/my-nginx-5746bbd756-6n98f                 1/1     Running   2 (2d22h ago)    64d
pod/nginx-7888c8874c-t4f4s                    1/1     Running   0                7m22s
service/my-nginx           ClusterIP      10.102.89.127   <none>        80/TCP           64d
service/nginx              LoadBalancer   10.98.78.251    <pending>     80:30120/TCP     7m22s
[root@master nginx]#

以上可知我们pod端口为80,外网访问ip为本机ip,端口为30120。
我们直接打开外部浏览器进行访问测试:
http://10.10.22.91:30120/
在这里插入图片描述

6、获取nginx映射配置

[root@master nginx]# kubectl get pods | grep nginx
my-nginx-5746bbd756-6n98f                 1/1     Running   2 (2d23h ago)    64d
[root@master nginx]#
[root@master nginx]# kubectl exec my-nginx-5746bbd756-6n98f  -- cat /etc/nginx/nginx.conf
user  nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {worker_connections  1024;
}
http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}

7、其他

#升级releas
helm upgrade nginx .
#卸载nginx
[root@master nginx]# helm uninstall nginx
release "nginx" uninstalled
[root@master nginx]#

写在最后

Kubernetes包管理工具Helm简介及使用还是比较简单,通过本博文我们可以知道Helm就是一个包管理工具如同centos中yum一样,是查找、分享和使用软件构建 Kubernetes 的最优方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/176552.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript从入门到精通系列第二十六篇:详解JavaScript中的Math对象

大神链接&#xff1a;作者有幸结识技术大神孙哥为好友&#xff0c;获益匪浅。现在把孙哥视频分享给大家。 孙哥连接&#xff1a;孙哥个人主页 作者简介&#xff1a;一个颜值99分&#xff0c;只比孙哥差一点的程序员 本专栏简介&#xff1a;话不多说&#xff0c;让我们一起干翻J…

opencv c++ canny 实现 以及与halcon canny的对比

Opencv和C实现canny边缘检测_opencv边缘增强-CSDN博客 一、canny实现步骤 1、图像必须是单通道的&#xff0c;也就是说必须是灰度图像 2、图像进行高斯滤波&#xff0c;去掉噪点 3、sobel 算子过程的实现&#xff0c;计算x y方向 、梯度&#xff08;用不到&#xff0c;但是…

vim

简介 vim是一款多模式的文本编辑器&#xff0c;vim里面还有很多子命令&#xff0c;来进行代码的编写操作 常用模式图 命令模式 光标移动 shif $ 光标定义到当前行的最右侧结尾 shift ^ 光标定义到当前行的最左侧开头 shift g 光标定位到文本最末尾…

如何有效使用蜂邮EDM和vba批量发送邮件?

蜂邮EDM和vba批量发送邮件的方法&#xff1f;怎么使用蜂邮EDM和vba代码群发电子邮件&#xff1f; 批量发送邮件已经成为一种不可或缺的沟通方式。蜂邮EDM和VBA是两个功能强大的工具&#xff0c;可以帮助您在邮件营销和业务通信中实现高效的批量发送邮件操作。接下来将介绍如何…

Revo Uninstaller Pro:终极卸载工具,彻底清除电脑痕迹

你是否曾为无法彻底卸载软件&#xff0c;残留大量无用文件而感到烦恼&#xff1f;是否曾因恶意软件难以清除&#xff0c;导致电脑运行缓慢&#xff1f;这些问题&#xff0c;Revo Uninstaller Pro都能帮你解决。 Revo Uninstaller Pro是一款专业的卸载工具&#xff0c;它不仅具…

低代码PAAS加速推进企业数字化转型

无论是“十四五”规划从国家层面提出的“加快数字化发展 建设数字中国”&#xff0c;还是后疫情时代企业自身的感受&#xff0c;数字化转型已成为必答题。当前 企业 业务场景化、线上趋势愈加明显&#xff0c;越来越多并发的数字化应用场景&#xff0c;而原有集中式架构扩展能力…

2024王道考研计算机组成原理——中央处理器

CPU的运算器其实就是进行固定的数据处理&#xff0c;后面讲的CPU主要侧重的是它的控制器功能 运算器的基本结构 左右两边都是16位&#xff0c;因为寄存器可能位于左右两端的一边(源/目的操作数) A、B两端都要接一堆线 通用寄存器 ALU都在运算器当中 从主存来的数据直接放到…

我在Vscode学OpenCV 处理图像

既然我们是面向Python的OpenCV&#xff08;OpenCV for Python&#xff09;那我们就必须要熟悉Numpy这个库&#xff0c;尤其是其中的数组的库&#xff0c;Python是没有数组的&#xff0c;唯有借助他库才有所实现想要的目的。 # 老三样库--事先导入 import numpy as np import c…

暴涨3倍!通过受感染 USB 窃密的事件愈发变多

2023 年上半年&#xff0c;Mandiant 观察到使用受感染 USB 驱动器窃取机密数据的事件至少增加了3倍。此前&#xff0c;Mandiant 披露了在菲律宾的一次攻击行动。本文将会介绍研究人员发现的两外两次基于 USB 驱动器的网络间谍行动。 CSDN大礼包&#xff1a;《黑客&网络安全…

财务数字化转型的切入点是什么?_光点科技

随着科技的不断进步&#xff0c;数字化转型已经成为各个行业追求的目标&#xff0c;财务领域也不例外。那么&#xff0c;财务数字化转型的切入点在哪里呢&#xff1f;如何确保转型的成功进行&#xff1f; 数据整合与管理 财务数据的准确性与及时性是财务管理的基石。数字化转型…

vue+vant图片压缩后上传

vuevant图片压缩后上传 vue文件写入 <template><div class"home"><van-field input-align"left"><template #input><van-uploaderv-model"fileList.file":after-read"afterRead":max-count"5":…

TypeScript之泛型

一、是什么 泛型程序设计&#xff08;generic programming&#xff09;是程序设计语言的一种风格或范式 泛型允许我们在强类型程序设计语言中编写代码时使用一些以后才指定的类型&#xff0c;在实例化时作为参数指明这些类型 在typescript中&#xff0c;定义函数&#xff0c;…

自主创建抖音商城小程序源码系统 带完整搭建教程

随着抖音平台的日益普及&#xff0c;越来越多的商家和用户选择在抖音上开展业务。抖音作为一款短视频社交平台&#xff0c;拥有庞大的用户群体和广阔的市场前景。今天罗峰就来给大家介绍一款抖音商城小程序源码系统&#xff0c;帮助用户快速创建自己的抖音商城&#xff0c;从而…

Apache Dolphinscheduler如何不重启解决Master服务死循环

个人建议 Apache Dolphinscheduler作为一个开源的调度平台&#xff0c;目前已经更新到了3.X版本&#xff0c;4.0版本也已经呼之欲出。3.0版本作为尝鲜版本&#xff0c;新添加了许多的功能&#xff0c;同时也存在非常多的隐患&#xff0c;本人使用3.0版本作为生产调度也踩了很多…

YouTrack 在创建问题的时候如何切换项目

最近在准备从 JIRA 中转换到 YouTrack 上。 在创建问题的时候&#xff0c;JIRA 是通过选择项目&#xff0c;然后单击创建&#xff0c;这个创建就会直接在项目中进行创建了。 但是 YouTrack 不是这样的&#xff0c;感觉就是 YouTrack 的创建问题就是一个入口。 其实我并不知道…

主机安全技术

主机安全 1、主机分类 类Unix主机 Unix&#xff1a;Solaris&#xff0c;AIXLiunx&#xff1a;Redhat&#xff0c;Centos&#xff0c;SUSE等 Windows主机 Windows server 2012&#xff0c;server 2008等 特殊主机 IBM iseris&#xff0c;大型机等等 2、主机风险 操作系统风…

【正点原子STM32连载】 第四十五章 FLASH模拟EEPROM实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html## 第四…

一文详解如何从 Oracle 迁移数据到 DolphinDB

Oracle 是一个广泛使用的关系型数据库管理系统&#xff0c;它支持 ACID 事务处理&#xff0c;具有强大的安全性和可靠性&#xff0c;因此被广泛应用于各种企业级应用程序。但是&#xff0c;随着数据规模的增加和业务需求的变化&#xff0c;Oracle 的一些限制和缺点也逐渐暴露出…

UE5 Android下载zip文件并解压缩到指定位置

一、下载是使用市场的免费插件 二、解压缩是使用市场的免费插件 三、Android路径问题 windows平台下使用该插件没有问题&#xff0c;只是在Android平台下&#xff0c;只有使用绝对路径才能进行解压缩&#xff0c;所以如何获得Android下的绝对路径&#xff1f;增加C文件获得And…

el-table样式

1、实现效果&#xff0c;外部框是蓝绿色边框&#xff0c;深色背景&#xff0c;里面的表格首先设置透明色&#xff0c;然后应用自定义斑马纹。 2、代码 template代码&#xff0c;其中样式frameBordStyle是深色背景框&#xff0c;不负责表格样式&#xff0c;表格样式由tableStyl…