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.pswp.cn/bicheng/15527.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15527.shtml
英文地址,請注明出處:http://en.pswp.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…