当前位置: 首页 > news >正文

7-k8s-helm管理

文章目录

    • 一、为什么需要Helm
    • 二、Helm相关概念介绍
    • 三、Helm安装
    • 四、Helm指令介绍
    • 五、Helm创建tomcat
    • 六、Helm创建tomcat其他方式
    • 七、Helm创建redis

一、为什么需要Helm

k8s部署:k8s平台部署的服务都是由资源文件描述组成,传统的k8s部署应用需要手工编排yaml文件。编写完,然后通过kubectl apply -f xxx.yaml进行部署。

缺点:对于一个复杂的系统,随着服务的增多,yaml配置文件越来越多,甚至如果要更新服务,需要不断维护资源文件,较为杂乱。

Helm优点:可以统一管理这些资源文件,而且提供了kubernetes上的软件部署,删除,升级, 回滚应用的强大功能

二、Helm相关概念介绍

  1. helm:命令行客户端工具,主要用于 Kubernetes 应用中的 chart 的创建、打包、发布和管理。

  2. Chart:目录或者压缩包,一系列用于描述 k8s 资源相关文件的集合,比方说我们部署 nginx,需要deployment的yaml,需要 service 的 yaml,这两个清单文件就是一个 helm 程序包,在 k8s 中把这些yaml 清单文件叫做 chart 图表。

  3. repository:存放 chart 图表的仓库,提供部署 k8s 应用程序需要的那些 yaml 清单文件

  4. Release:基于 Chart 的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个 release;将在k8s 中创建出真实运行的资源对象

  5. helm主要工作

    1)从头开始创建新的chart

    2)将chart 打包成归档(tgz)文件

    3)与存储chart的仓库进行交互

    4)在现有的Kubernetes集群中安装和卸载chart

    5)管理与Helm一起安装的chart的发布周期

三、Helm安装

  1. 下载helm:https://repo.huaweicloud.com/helm/v3.5.4/helm-v3.5.4-linux-amd64.tar.gz

  2. 创建文件夹:mkdir /opt/helm

  3. 上传到/opt/helm

  4. 解压:tar -xvf helm-v3.5.4-linux-amd64.tar.gz

  5. 将解压的文件移到/usr/local/bin: mv /opt/helm/linux-amd64/helm /usr/local/bin

  6. 查看版本:helm version
    在这里插入图片描述

  7. 添加仓库

    ps:比较慢,耐心等待

    #官方仓库:
    helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
    #添加微软仓库
    helm repo add azure http://mirror.azure.cn/kubernetes/charts/
    #添加阿里云仓库
    helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
    #添加chat仓库
    helm repo add bitnami https://charts.bitnami.com/bitnami
    
  8. 查询仓库列表:helm repo list
    在这里插入图片描述

  9. 更新所有仓库:helm repo update

四、Helm指令介绍

  1. 添加仓库:helm repo add 自定义库名 仓库地址
  2. 查看仓库:helm repo list
  3. 删除仓库:helm repo remove 自定义库名
  4. 更新仓库:helm repo update
  5. 搜索chart:helm search repo 包名
  6. 拉取chart到本地:helm pull
  7. 本地创建新的chart:helm create
  8. 查看 chart 信息:helm show chart 包名
  9. 管理chart依赖:helm dependency
  10. 安装chart:helm install
  11. 列出所有release:helm list
  12. 删除release:helm delete 名字
  13. 检查chart配置是否有误:helm lint
  14. 打包本地 chart:helm package
  15. 回滚release到历史版本:helm rollback
  16. 卸载release:helm uninstall
  17. 升级release:helm upgrade

五、Helm创建tomcat

  1. 去仓库查找nginx:helm search repo tomcat

  2. 创建chart:helm create tomcat

  3. 进入:cd tomcat

  4. 目录文件详解

    ├── charts:依赖其他包的charts文件

    Chart.yaml :该chart的描述文件,包括ip地址,版本信息等

    ├── templates:存放k8s模板文件目录

    │ ├── deployment.yaml:创建k8s deployment资源的yaml 模板

    │ ├── _helpers.tpl :下划线开头的文件,可以被其他模板引用

    │ ├── hpa.yaml:配置服务资源CPU 内存

    │ ├── ingress.yaml :ingress 配合service域名访问的配置

    │ ├── NOTES.txt :说明文件,helm install之后展示给用户看的内容

    │ ├── serviceaccount.yaml

    │ ├── service.yaml :kubernetes Serivce yaml模板

    │ └── tests

    │ └── test-connection.yaml

    └── values.yaml #给模板文件使用的变量

    ps:deployment.yaml、service.yaml这些文件的内容,和我们平时创建pod和service时编写的yaml文件类似,不同之处在于很多配置的值并非固定,而是用变量代替了。而变量,则是在values.yaml种定义的

  5. 修改参数:vi value.yaml

    service:type: NodePortport: 80
    
  6. 安装对应仓库的chart:helm install tomcat azure/tomcat -f values.yaml

  7. 查看:helm list
    在这里插入图片描述

  8. 查看pod:kubectl get pod
    在这里插入图片描述

  9. 查看访问地址:kubectl get svc
    在这里插入图片描述

  10. 往tomcat里面写入首页数据
    1)进入pod:kubectl exec -it tomcat-bf4bc978c-97fhx bash
    2)创建文件夹: mkdir webapps/ROOT
    3)写入文件:echo “helm test1” > webapps/ROOT/index.jsp

  11. 访问:http://192.168.248.10:30511/
    在这里插入图片描述

六、Helm创建tomcat其他方式

  1. 可以使用–set来配置value.yaml的参数:helm install tomcat azure/tomcat --set service.type=NodePort

  2. 可以先下载包,后配置

    1)下载:helm pull azure/tomcat

    2)解压:tar -xvf tomcat-0.4.3.tgz

    3)修改配置:vi tomcat/values.yaml

    service:name: httptype: NodePortexternalPort: 80internalPort: 8080
    

    4)启动: helm install tomcat tomcat

    ps:后面那个tomcat是指tomcat文件夹

七、Helm创建redis

  1. 对外提供NodePort访问

    helm install redis bitnami/redis  --set global.storageClass=managed-nfs-storage  --set global.redis.password=ffcsict123    --set architecture=standalone  --set master.service.type=NodePort  --set master.service.nodePorts.redis=30919  --version 17.4.3
    

相关文章:

7-k8s-helm管理

文章目录 一、为什么需要Helm二、Helm相关概念介绍三、Helm安装四、Helm指令介绍五、Helm创建tomcat六、Helm创建tomcat其他方式七、Helm创建redis 一、为什么需要Helm k8s部署:k8s平台部署的服务都是由资源文件描述组成,传统的k8s部署应用需要手工编排…...

零基础怎么样才能学好 Python?Python 入门必看

Python 目前可以用一个字来描述那就是 “火”,问题来了,这么火的语言零基础小白到底该怎样学习 Python? 首先,从基础开始学习,切勿毛躁。 刚开始学习 Python 的时候,我们可能会有些毛躁总觉得这些知识太简…...

1.X3-Warming up

/* 此程序使用 Boost Spirit 库来解析用户提供的逗号分隔的数字列表。它演示了如何使用 Spirit 来定义解析 器和执行解析操作,并且在用户输入时反复执行解析操作。用户可以提供一系列逗号分隔的数字,程序会检查它们 是否符合指定的解析规则。如果解析成功…...

【23真题】两电一邮之一,难度骤降!24可能回升!

今天分享的是23年电子科技大学858的信号与系统试题及解析。23成电858真题和22年相比,难度骤降!今年我预测可能会有反弹。22年成电858真题,是我做过的22真题中数一数二的难度!23年一般,但是题目也很好,真的很…...

持续集成部署-k8s-资源调度:DaemonSet

持续集成部署-k8s-资源调度:DaemonSet 1. DaemonSet 简介2. 部署 Fluent 日志收集程序1. DaemonSet 简介 在 Kubernetes 中,DaemonSet 是一种用于在集群中运行一个 Pod 副本的控制器对象。它可以保证在每个节点上都运行一个 Pod 副本,并且在节点加入或退出集群时自动地更新…...

RabbitMQ内容

RabbitMQ是一款开源的消息中间件,支持多个消息协议,包括AMQP、STOMP、MQTT等,它的主要功能是将分散的应用程序连接在一起,以便它们可以相互通信,从而构建可靠的、高效的分布式系统。 RabbitMQ的基础概念包括&#xff…...

搭建一个vscode+uni+vue的小程序项目

我们使用 vue2 创建工程作为示例,uni-app中Vue2版的组件库和插件也比较多,稳定、问题少,可以先参考下官方文档:uni-app官网 既然是使用vue脚手架,那肯定要全局安装vue/cli,已安装的可以跳过。 注意:Vue2创…...

处理ElementUI组件默认样式多次重复问题

问题截图: 解决办法: 在postcss.config.js文件里添加配置项: module.exports {plugins: {autoprefixer: {},cssnano: {} //添加这行代码}, } 处理结果: github issues: https://github.com/ElemeFE/element/is…...

配置hpa后,target显示<unknown>/50%

背景: 有两个服务,server 负责主要后端请求,bill 负责计量计费请求。服务都是使用 helm 部署。测试提了一个缺陷,说全部服务没有配置hpa。 解决一 按照之前的代码结构添加了hpa后,发现: ➜ kubectl get…...

用java实现抖音授权登录

要使用Java实现抖音授权登录,您需要使用抖音开放平台提供的API。以下是一个简单的Java代码示例,演示如何使用OAuth 2.0授权登录流程: 要使用Java实现抖音授权登录,您需要按照以下步骤进行操作: 创建抖音开放平台账号…...

Atlassian午餐会直播回顾:如何在Jira中进行项目时间与成本管理?

工时管理是项目过程管理的一个重要手段,通过科学记录项目组成员在项目执行过程中的任务完成和时间消耗情况,可以帮助管理者精准评估成员工作效率,实时掌握项目进展,并有效管控项目成本。 想要成为时间管理大师吗?在近…...

屏幕时代的数字化信息管理:从传统到纯软件的转变

随着数字化时代的推进,屏幕已经成为了企业和机构向外界传递信息的主要媒介。除了传统的手机和电脑屏幕,线下空间如办公楼、商场、店铺、医院、展厅等也需要利用屏幕来展示和发布各类信息。 管理这些屏幕和发布信息并不是一件容易的事情,特别是…...

Stm32_标准库_14_串口蓝牙模块_解决手机与蓝牙模块数据传输的不完整性

由手机向蓝牙模块传输时间信息,Stm32获取信息并将已存在信息修改为传入信息 测试代码: #include "stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "Serial.h"uint16_t num…...

基于深度学习的“语义通信编解码技术”框架分类

目录 基于神经网络的语义提取基于神经网络的语义信源编码基于神经网络的语义信源信道联合编码基于神经网络的语义编码与数字调制联合设计参考文献 基于神经网络的语义提取 在现有的信源编码前端加上一个语义提取神经网络[53] ,如图所示。语义提取神经网络的输入是原…...

信钰证券:股票抵押是好还是坏?

股票典当是指将持有的股票作为质押品向银行或其他金融机构融资的行为。股票典当有其优势和下风,下面咱们将从多个角度来剖析股票典当是否好仍是坏。 一、优势 1.占用资金少 相比较于其他融资办法,股票典当所需求占用的资金较少,只需将股票作…...

媒体基础:打开多模态大模型的新思路

编者按:2023年是微软亚洲研究院建院25周年。25年来,微软亚洲研究院探索并实践了一种独特且有效的企业研究院的新模式,并以此为基础产出了诸多对微软公司和全球社会都有积极影响的创新成果。一直以来,微软亚洲研究院致力于创造具有…...

dubbo-admin安装

一、dubbo-admin安装 1、环境准备 dubbo-admin 是一个前后端分离的项目。前端使用vue,后端使用springboot,安装 dubbo-admin 其实就是部署该项目。我们将dubbo-admin安装到开发环境上。要保证开发环境有jdk,maven,nodejs 安装no…...

Kaggle - LLM Science Exam(三):Wikipedia RAG

文章目录 一、赛事概述1.1 OpenBookQA Dataset1.2 比赛背景1.3 评估方法和代码要求1.4 比赛数据集1.5 优秀notebook 二、 [EDA, Data gathering] LLM-SE ~ Wiki STEM | 1k DS2.1 Data overview2.2 Data gathering 三、如何高效收集数据3.1 概述3.2 与训练数据关联的维基百科类别…...

【机器学习】PyTorch-MNIST-手写字识别

文章目录 前言完成效果一、下载数据集手动下载代码下载MNIST数据集: 二、 展示图片三、DataLoader数据加载器四、搭建神经网络五、 训练和测试第一次运行: 六、优化模型第二次优化后运行: 七、完整代码八、手写板实现输入识别功能 前言 注意…...

玩转代码| Vue 中 JSX 的特性,这一篇讲的明明白白

目录 什么时候使用JSX JSX在Vue2中的基本使用 配置 文本插值 条件与循环渲染 属性绑定 事件绑定 v-show与v-model 插槽 使用自定义组件 在method里返回JSX JSX是一种Javascript的语法扩展,即具备了Javascript的全部功能,同时又兼具html的语义…...

(vue)el-descriptions 描述列表无效

(vue)el-descriptions 描述列表无效 原因:element 的版本不够 解决:运行下面两个命令 npm uninstall element-ui //卸载之前安装的版本 npm i element-ui -S //重新安装解决参考:https://blog.csdn.net/weixin_59769148/article/details/1…...

ios 苹果手机日期格式问题

目录 问题解决其他 问题 ios 无法识别的时间戳格式:2023-10-17 11:10:49 可识别的: 2023/10/17 11:10:49 解决 const startTime 2023/10/17 11:10:49 startTime.replace(/-/g, /)// 获取时间差值 export const useDateDiff (startTime , endTime …...

学习嵌入式系统的推荐步骤:

学习嵌入式系统的推荐步骤: 00001. 选择一款Linux发行版作为主要操作系统,如RedHat、Ubuntu、Fedora等。进入Linux后,使用终端进行任务操作。建议不要使用虚拟机,如有需要可考虑双系统安装。 00002. 00003. 学习C语言、数…...

勒索病毒LockBit2.0 数据库(mysql与sqlsever)解锁恢复思路分享

0.前言 今天公司服务器中招LockBit2.0勒索病毒,损失惨重,全体加班了一天基本解决了部分问题,首先是丢失的文件数据就没法恢复了,这一块没有理睬,主要恢复的是两个数据库,一个是16GB大小的SQLserver数据库&…...

超简单小白攻略:如何利用黑群晖虚拟机和内网穿透实现公网访问

文章目录 前言本教程解决的问题是:按照本教程方法操作后,达到的效果是前排提醒: 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机:1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…...

Ubuntu 16.04 LTS third maintenance update release

Ubuntu 16.04 LTS (Xenial Xerus)今天迎来的第三个维护版本更新中,已经基于Linux Kernel 4.10内核,而且Mesa图形栈已经升级至17.0版本。Adam Conrad表示:“像此前LTS系列相似,16.04.3对那些使用更新硬件的用户带来了硬件优化。该版…...

Java学习_day01_hello java

构成 JDK JDK是java开发者工具,由JRE和一些开发工具组成。JRE JRE是java运行环境,由JVM和java核心类库组成。JVM JVM是java虚拟机,主要用来运行字节码。 执行过程 由IDE或文本编辑器,编写源代码,并将文件保存为*.ja…...

UnitTesting 单元测试

1. 测试分为两种及详细介绍测试书籍: 1.1 Unit Test : 单元测试 - test the business logic in your app : 测试应用中的业务逻辑 1.2 UI Test : 界面测试 - test the UI of your app : 测试应用中的界面 1.3 测试书籍网址:《Testing Swift》 https://www.hackingwithswift.c…...

C++内存管理:其五、指针类型转换与嵌入式指针

一、内存池的缺陷 作者在上一版本里面介绍了链表实现内存池,其中有一个小缺陷:虽然较少了cookie的内存损耗,但是加入了一个额外的指针,仍然需要占用内存。我们仔细看内存池的设计思想,可以发现一个关键点:…...

常见锁的分类

入职体验: 今天运维岗位刚入职,但是目前还没有办理入职手续,但是领导发了一堆资料!看了一下,非常多的新东西,只能说努力一把!!! 一、锁的分类 1.1 可重入锁、不可重入锁…...

网站正能量免费下载/平台推广是什么

1.安装setuptools2.yum install -y mysql-devel python-devel gcc否则会报错:command gcc failed with exit status 13.python setup.py install转载于:https://www.cnblogs.com/biboxie/p/4233422.html...

信息网络技术/伊春seo

华为强调它的自动驾驶技术领先于特斯拉,其中一点是它搭载的麒麟990A芯片的算力领先于包括特斯拉在内的众多汽车企业,这让人关注到自动驾驶技术的算力问题,那么算力领先真的那么重要么?手机芯片当下已普遍应用到7nm乃至5nm工艺&…...

免费建站赚钱/今日十大热点新闻

作者:张伟 爱可生北京分公司 DBA 团队成员,负责 MySQL 日常问题处理和 DMP 产品维护。喜爱技术和开源数据库,喜爱运动、读书、电影,花草树木。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得…...

云南专业网站建设/外贸网站制作推广

算是狗年上班的最后一天吧,想想还是略略总结一下近半年来的概况。 这段时间比较懒得去总结更新发表新的博客,一来是生活和工作的琐碎让自己有些懈怠,二是对自己写的东西缺乏深度感到困扰,自己大概也带着些完美型人格吧。最近的工…...

成都免费建站/万网的app叫什么

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇来源丨新智元https://mp.weixin.qq.com/s/IXpWSnbNczpACoJ8JVxEPQ新智元报道 编辑:袁榭 好困【新智元导读】苹果的产品发布会将近,从果粉顾客…...

有哪些类型的网站/个人网站首页设计

415. 字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1和num2的长度都小于 5100.num1和num2都只包含数字0-9.num1和num2都不包含任何前导零。你不能使用任何內建BigInteger库, 也不能直接将输入的字符串转换为整…...