k8s笔记 | helm包管理

什么是Helm

kubenetes包管理器,是查找,分享和使用软件构件 kubernetes的最佳方式;

可以做什么

  • 从头开始创建新的chart
  • 将chart打包成归档(tgz)文件
  • 与存储chart的仓库进行交互
  • 与现有的kubernates集群中安装和卸载chart
  • 管理与Helm一起安装的 chart的发布周期

三个重要概念

  1. chart创建 kubernates应用程序所必须的一组信息
  2. config包含了可以合并的chart中的配置信息,用于创建和发布镜像
  3. release是一个与待定配置相结合的chart的运行是咧

安装Helm

其他常用命令

# 列出,增加,更新,删除chart仓库
helm repo
# 使用关键字搜索chart
helm search
# 拉去远程仓库中的chart到本地
helm pull
# 在本地创建新的chart
helm create
# 管理chart依赖
helm dependency
# 安装chart
helm install
# 列出所有的release
helm list
# 查看chart配置信息是否有错
helm lint
# 打包本地chart
helm package
# 回滚release 到历史版本
helm rollback
# 卸载
helm uninstall/delete
# 升级release
helm upgrade

chart详解

目录结构

修改默认源

# 查看默认仓库
helm repo list# 添加仓库
helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add aliyun https://apphub.aliyuncs.com/
helm repo add bitnami https://charts.bitnami.com/bitnami/
helm repo add azure https://mirror.azure.cn/kubernetes/charts/

Redis Chart实战

# 搜索
helm search repo redis# 结果
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                   19.3.3          7.2.4           Redis(R) is an open source, advanced key-value ...
bitnami/redis-cluster           10.0.4          7.2.4           Redis(R) is an open source, scalable, distribut...
stable/redis                    1.1.15          4.0.8           Open source, advanced key-value store. It is of...
stable/redis-ha                 2.0.1                           Highly available Redis cluster with multiple se...
azure/sensu                     0.2.5           0.28            DEPRECATED Sensu monitoring framework backed by...
stable/sensu                    0.2.0                           Sensu monitoring framework backed by the Redis ...# 查看安装说明
helm show readme bitnami/redis# 结果,内容过多,不做展示
...# 拉去镜像
helm pull bitnami/redis
# 解压
tar -xvf redis-19.3.3.tgz# 进入 redis目录,修改一下内容# 修改storageClass 为 managed-nfs-storage
# 修改redis密码 ggbhack
# 修改 architecture 改为集群或者单列
# 修改实例存储大小 persistence.size 1Gi 根据情况而定# 新增命名空间
kubectl create namespace redis# 回到上一级目录进行安装 redis是别名  后面的redis是命名空间
helm install redis ./redis/ -n redis# 安装完成会打印相关信息
...# 查看所有redis相关的
kubectl get all -n redis# 删除
helm delete redis -n redis# 出现错误后续的解决方案 看下文# 如果redis报错,镜像拉去失败,还是因为arm64的原因 更values.yaml改镜像为image:registry: docker.iorepository: arm64v8/redis# tag: 7.2.4-debian-12-r16tag: latestdigest: ""# 继续往下操作
# 查看pvc 情况
kubectl get pvc -n redid#结果
NAME                          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS          AGE
redis-data-redis-master-0     Bound    pvc-7561bad7-27f0-4de7-9496-e490bc496204   1Gi        RWO            managed-nfs-storage   36m
redis-data-redis-replicas-0   Bound    pvc-2ade690e-67bd-44b7-80f8-9569c466251e   1Gi        RWO            managed-nfs-storage   36m
redis-data-redis-replicas-1   Bound    pvc-a8cf13d5-5147-4a36-be26-cfeb714689f5   1Gi        RWO            managed-nfs-storage   6m34s
redis-data-redis-replicas-2   Bound    pvc-237f9e5b-5b9b-48ac-8580-071e16e3c47f   1Gi        RWO            managed-nfs-storage   6m5s# 都运行了的结果 
kubectl get all -n redisNAME                   READY   STATUS    RESTARTS   AGE
pod/redis-master-0     1/1     Running   0          8m55s
pod/redis-replicas-0   1/1     Running   0          100s
pod/redis-replicas-1   1/1     Running   0          7m37s
pod/redis-replicas-2   1/1     Running   0          75sNAME                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/redis-headless   ClusterIP   None            <none>        6379/TCP   8m59s
service/redis-master     ClusterIP   10.108.214.27   <none>        6379/TCP   8m58s
service/redis-replicas   ClusterIP   10.101.47.243   <none>        6379/TCP   8m57sNAME                              READY   AGE
statefulset.apps/redis-master     1/1     8m57s
statefulset.apps/redis-replicas   3/3     8m57s# 进入master容器
kubectl exec -it redis-master-0 -n redis -- bash
# 操作
I have no name!@redis-master-0:/data$ redis-cli
127.0.0.1:6379> auth ggbhack
OK
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set name ggb
OK
127.0.0.1:6379> get name
"ggb"
127.0.0.1:6379> # 进入replicas
kubectl exec -it redis-replicas-0 -n redis -- bash# 操作
I have no name!@redis-replicas-0:/data$ redis-cli
127.0.0.1:6379> auth ggbhack
OK
127.0.0.1:6379> get name
"ggb"
127.0.0.1:6379> set name 123
(error) READONLY You can't write against a read only replica.
127.0.0.1:6379> 说明我们的安装是成功了的# 更新
# 修改密码为ggbhack123
redis:password: "ggbhack123"helm upgrade [RELEASE][CHART][FLAG]
helm upgrade redis ./redis/ -n redis# 进入容器,测试如上
[root@k8s-master ~]# kubectl exec -it redis-replicas-0 -n redis -- bash
I have no name!@redis-replicas-0:/data$ redis-cli
127.0.0.1:6379> auth ggbhack
(error) WRONGPASS invalid username-password pair or user is disabled.
127.0.0.1:6379> auth ggbhack123
OK
127.0.0.1:6379> get name
"ggb"
127.0.0.1:6379> 到此完结

注意事项:

由于需要提前创建storageClass    manage-nfc-storage,在前面的章节中总共有三个文件

nfc-storage-class.yaml

nfs-provisioner-deployment.yaml

nfs-provisioner-rbac.yaml

需要的文件在 这里

nfs-subdir-external-provisioner 下的nfc文件夹里

如果是在 arm64下的话,使用 registry.cn-beijing.aliyuncs.com/pylixm/nfs-subdir-external-provisioner:v4.0.0 这个镜像会报错  exec / nfs-subdir-external-provisioner format error 简单来说就是平台不匹配,解决方案就是自己构建一个匹配的镜像包

# 下载git项目
git clone https://github.com/ishow520/nfs-subdir-external-provisioner.git# 构建所属平台的镜像
docker buildx build --platform linux/arm64 -t 你的hub用户名/nfs-provisioner-arm:v1.0.0 -f Dockerfile.multiarch --push .也可以使用我构建的 ggbhack/nfs-provisioner-arm:v1.0.0

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

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

相关文章

从零训练yolov8

1.收集数据 2.数据标注 pip install labelimg3.划分数据集 0.2的验证机0.8的训练集 import os from shutil import copyfile from sys import exit import randomsource r"D:\Data\imgs\screenc" \\ target_train r"D:\Data\imgs\datasets\mydata\images\t…

aws msk加密方式和问控制连接方式

msk加密方式 msk提供了两种加密方式 静态加密传输中加密 创建集群时可以指定加密方式&#xff0c;参数如下 aws kafka create-cluster --cluster-name "ExampleClusterName" --broker-node-group-info file://brokernodegroupinfo.json --encryption-info file:/…

Android四大组件 Broadcast广播机制

一 概述 广播 (Broadcast) 机制用于进程或线程间通信&#xff0c;广播分为广播发送和广播接收两个过程&#xff0c;其中广播接收者 BroadcastReceiver 是 Android 四大组件之一。BroadcastReceiver 分为两类&#xff1a; 静态广播接收者&#xff1a;通过 AndroidManifest.xm…

flutter 实现旋转星球

先看效果 planet_widget.dart import dart:math; import package:flutter/material.dart; import package:vector_math/vector_math_64.dart show Vector3; import package:flutter/gestures.dart; import package:flutter/physics.dart;class PlanetWidget extends StatefulW…

echarts-树图、关系图、桑基图、日历图

树图 树图主要用来表达关系结构。 树图的端点也收symbol的调节 树图的特有属性&#xff1a; 树图的方向&#xff1a; layout、orient子节点收起展开&#xff1a;initialTreeDepth、expandAndCollapse叶子节点设置&#xff1a; leaves操作设置&#xff1a;roam线条&#xff1a…

告别 Dart 中的 Future.wait([])

作为 Dart 开发人员&#xff0c;我们对异步编程和 Futures 的强大功能并不陌生。过去&#xff0c;当我们需要同时等待多个 future 时&#xff0c;我们依赖 Future.wait([]) 方法&#xff0c;该方法返回一个 List<T>。然而&#xff0c;这种方法有一个显着的缺点&#xff1…

2、xss-labs之level2

1、打开页面 2、传入xss代码 payload&#xff1a;<script>alert(xss)</script>&#xff0c;发现返回<script>alert(xss)</script> 3、分析原因 打开f12&#xff0c;没什么发现 看后端源码&#xff0c;在这form表单通过get获取keyword的值赋给$str&am…

跑大模型的经验

LLama2: 1. 使用torchrun来跑&#xff1a; torchrun --nproc_per_node 1 example_text_completion.py \--ckpt_dir llama-2-7b/ \--tokenizer_path tokenizer.model \--max_seq_len 128 --max_batch_size 4 关于集群分布式torchrun命令踩坑记录&#xff08;自用&#xff09;…

【Vue】input框自动聚焦且输入验证码后跳至下一位

场景&#xff1a;PC端 样式&#xff1a; <div class"verification-code-input"><input v-model"code[index]" v-for"(_, index) in 5" :key"index" type"text" maxlength"1" input"handleInput(i…

渲染管线——应用阶段

知识必备——CPU和GPU 应用阶段都做了什么 应用阶段为渲染准备了什么 1.把不可见的数据剔除 2.准备好模型相关数据&#xff08;顶点、法线、切线、贴图、着色器等等&#xff09; 3.将数据加载到显存中 4.设置渲染状态&#xff08;设置网格需要使用哪个着色器、材质、光源属性等…

说些什么好呢

大一&#xff1a;提前学C和C。学完语法去洛谷或者Acwing二选一&#xff0c;刷300道左右题目。主要培养编程思维&#xff0c;让自己的逻辑能够通过代码实现出来。 现在对算法有点感兴趣但是没有天赋&#xff0c;打不了acm&#xff0c;为就业做准备咯。 大二(算法竞赛)&#xff1…

常用损失函数学习

损失函数&#xff08;Loss Function&#xff09;&#xff0c;在机器学习和统计学中&#xff0c;是用来量化模型预测输出与真实结果之间差异的函数。简而言之&#xff0c;损失函数衡量了模型预测的好坏&#xff0c;目标是通过最小化这个函数来优化模型参数&#xff0c;从而提高预…

简述js的事件循环以及宏任务和微任务

前言 在JavaScript中&#xff0c;任务被分为同步任务和异步任务。 同步任务&#xff1a;这些任务在主线程上顺序执行&#xff0c;不会进入任务队列&#xff0c;而是直接在主线程上排队等待执行。每个同步任务都会阻塞后续任务的执行&#xff0c;直到它自身完成。常见的同步任…

【机器学习】机器学习与大型预训练模型的前沿探索:跨模态理解与生成的新纪元

&#x1f512;文章目录&#xff1a; &#x1f4a5;1.引言 ☔2.跨模态理解与生成技术概述 &#x1f6b2;3.大型预训练模型在跨模态理解与生成中的应用 &#x1f6f4;4.前沿探索与挑战并存 &#x1f44a;5.未来趋势与展望 &#x1f4a5;1.引言 近年来&#xff0c;机器学习领…

著名书法家王杰宝做客央视频《笔墨写人生》艺坛人物经典访谈节目

印象网北京讯&#xff08;张春兄、冯爱云&#xff09;展示艺术风采&#xff0c;构建时代精神。5月25日&#xff0c;著名书法家、羲之文化传承人王杰宝&#xff0c;做客央视频《笔墨写人生》艺坛人物经典访谈节目&#xff0c;与中央电视台纪录频道主持人姚文倩一起&#xff0c;分…

MyBatis 中的动态 SQL 的相关使用方法(Javaee/MyBatis)

MyBatis 的动态 SQL 是一种强大的特性&#xff0c;它可以让你在 XML 映射文件内&#xff0c;根据不同的条件编写不同的 SQL 语句。MyBatis 动态 SQL 主要元素有&#xff1a; <if>: 根据提供的条件来动态拼接 SQL。 接口定义 Integer insertUserByCondition(UserInfo u…

c++ list容器

std::list 是 C 标准库中的一个双向链表容器。与 std::vector&#xff08;动态数组&#xff09;和 std::deque&#xff08;双端队列&#xff09;不同&#xff0c;std::list 的元素在内存中不是连续存储的&#xff0c;而是分散存储并通过节点进行连接。这使得 std::list 在插入和…

SpringBoot 集成 ChatGPT(附实战源码)

建项目 项目结构 application.properties openai.chatgtp.modelgpt-3.5-turbo openai.chatgtp.api.keyREPLACE_WITH_YOUR_API_KEY openai.chatgtp.api.urlhttps://api.openai.com/v1/chat/completionsopenai.chatgtp.max-completions1 openai.chatgtp.temperature0 openai.cha…

全局平均池化笔记

全局平均池化&#xff08;Global Average Pooling, GAP&#xff09;是一种用于卷积神经网络&#xff08;CNN&#xff09;中的池化操作&#xff0c;其主要作用和优点包括&#xff1a; 减少参数数量&#xff1a;全局平均池化层将每个特征图通过取其所有元素的平均值&#xff0c;压…

ubuntu安装yum方法【最新可用】

一、安装命令 在根目录&#xff08;root&#xff09;下执行 sudo apt-get install build-essential sudo apt-get install yum二、出错处理 1、E: Package yum has no installation candidate 解决&#xff1a;更换镜像源&#xff0c;找到自己的系统版本用vim进行更换&#xff…