最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kubernetes k8s集群之包管理器Helm方式

 更新時(shí)間:2024年08月17日 09:55:37   作者:-山海皆可平  
這篇文章主要介紹了Kubernetes k8s集群之包管理器Helm方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

每個(gè)成功的軟件平臺(tái)都有一個(gè)優(yōu)秀的打包系統(tǒng),比如Debian、Ubuntu 的 apt,RedHat、CentOS

的 yum。Helm 則是 Kubernetes上 的包管理器,方便我們更好的管理應(yīng)用

一.Helm概述

1.Helm的簡(jiǎn)介

Helm本質(zhì)就是讓K8s的應(yīng)用管理(Deployment、Service等)可配置,可以通過類似于傳遞環(huán)境變量的方式能動(dòng)態(tài)生成。通過動(dòng)態(tài)生成K8s資源清單文件(deployment.yaml、service.yaml)。 然后調(diào)用 Kubectl 自動(dòng)執(zhí)行 K8s 資源部署。

在沒使用 helm 之前,向 kubernetes 部署應(yīng)用,我們要依次部署 deployment、svc 等,步驟較繁瑣。 況且隨著很多項(xiàng)目微服務(wù)化,復(fù)雜的應(yīng)用在容器中部署以及管理顯得較為復(fù)雜,helm 通過打包的方式,支持發(fā)布的版本管理和控制, 很大程度上簡(jiǎn)化了 Kubernetes 應(yīng)用的部署和管理。

Helm 是官方提供的類似于 YUM 的包管理器,是部署環(huán)境的流程封裝。

Helm的官網(wǎng)地址:https://helm.sh/

2.Helm的三個(gè)重要概念

在Helm中 有三個(gè)重要的概念,分別為:Chart 、Repository 和 Release

  • Chart:Helm 的軟件包,采用 TAR 格式。是創(chuàng)建一個(gè)應(yīng)用的信息集合,包括各種 Kubernetes 對(duì)象的配置模板、參數(shù)定義、依賴關(guān)系、文檔說(shuō)明等。chart 是應(yīng)用部署的自包含邏輯單元。 可以將 chart 想象成 apt、yum 中的軟件安裝包。
  • Release:是 chart 的運(yùn)行實(shí)例,代表了一個(gè)正在運(yùn)行的應(yīng)用。當(dāng) chart 被安裝到 Kubernetes 集群,就生成一個(gè) release。chart 能夠多次安裝到同一個(gè)集群,每次安裝都是一個(gè) release。
  • Repository(倉(cāng)庫(kù)):Charts 倉(cāng)庫(kù),用于集中存儲(chǔ)和分發(fā) Charts。Repository 本質(zhì)上是一個(gè) Web 服務(wù)器,該服務(wù)器保存了一系列的 Chart 軟件包以供用戶下載,并且提供了一個(gè)該 Repository 的 Chart 包的清單文件以供查詢。Helm 可以同時(shí)管理多個(gè)不同的 Repository。

還有一個(gè)在Helm3版本中就被移除的概念

Tiller: Helm 2.x版本中,Helm采用Client/Server的設(shè)計(jì),Tiller就是Helm的Server部分,需要具備集群管理員權(quán)限才能安裝到K8s集群中運(yùn)行。

Tiller與Helm client進(jìn)行交互,接收client的請(qǐng)求,再與K8s API Server通信,根據(jù)傳遞的Charts來(lái)生成Release。而在最新的Helm 3.x中,據(jù)說(shuō)是為了安全性考慮移除了Tiller。

Helm在k8s集群運(yùn)用中,總的來(lái)講其作用過程:Helm 安裝 charts 到 Kubernetes 集群中,每次安裝都會(huì)創(chuàng)建一個(gè)新的 release。

你可以在 Helm 的 chart repositories 中尋找新的 chart

3.Helm2與Helm3的的區(qū)別

helm2的部署方式與使用

Helm2 是 C/S 架構(gòu),主要分為客戶端 helm 和服務(wù)端 Tiller。在 Helm 2 中,Tiller 是作為一個(gè)Deployment 部署在 kube-system 命名空間中,很多情況下,我們會(huì)為 Tiller 準(zhǔn)備一個(gè)ServiceAccount ,這個(gè) ServiceAccount 通常擁有集群的所有權(quán)限。

用戶可以使用本地 Helm 命令,自由地連接到 Tiller 中并通過 Tiller 創(chuàng)建、修改、刪除任意命名空間下的任意資源。

Helm3的部署與使用

在 Helm 3 中,Tiller 被移除了。新的 Helm 客戶端會(huì)像 kubectl 命令一樣,讀取本地的 kubeconfig文件,使用我們?cè)?kubeconfig 中預(yù)先定義好的權(quán)限來(lái)進(jìn)行一系列操作

二.Helm 部署

1.安裝 helm

上傳helm-v3.6.0-linux-amd64.tar.gz
tar -zxvf helm-v3.6.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/
helm version
 
 
//命令補(bǔ)全
source <(helm completion bash)

2.使用 helm 安裝 Chart

//添加常用的 chart 倉(cāng)庫(kù),
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 https://charts.helm.sh/incubator
 
//查看 charts 列表        
helm repo list
 
//更新 charts 列表
helm repo update          
 
//查看 stable 倉(cāng)庫(kù)可用的 charts 列表
helm search repo stable
 
//刪除 incubator 倉(cāng)庫(kù)
helm repo remove incubator
 
helm search repo <倉(cāng)庫(kù)名稱>                #查看倉(cāng)庫(kù)中可用的chart包列表
helm search repo <軟件名>                  #在倉(cāng)庫(kù)列表查詢中可用的chart包
helm search repo <chart包> -l              #查看倉(cāng)庫(kù)中指定的chart包所有可用的歷史版本列表,<chart包>格式為<倉(cāng)庫(kù)名稱/軟件包>
helm show chart <chart包>                  #查看chart包的基本信息
chart包安裝、卸載:
helm install -n <命名空間> <實(shí)例名稱> <chart包> [--version <chart版本>]    #通過chart包安裝實(shí)例,默認(rèn)安裝最新版本
helm ls -n <命名空間>                                                      #查看helm安裝的實(shí)例
helm list -n <命名空間>                                                   
helm status -n <命名空間> <實(shí)例名稱>                                       #查看實(shí)例的狀態(tài)
helm uninstall -n <命名空間> <實(shí)例名稱>                                    #卸載實(shí)例

3.Helm 自定義模板

chart包的管理:
helm pull <chart包>                   #從倉(cāng)庫(kù)下載chart包
helm create <chart包>                 #自建chart包
helm lint <chart包目錄>               #檢查chart包中的文件語(yǔ)法格式
helm package <chart包目錄>            #將chart包目錄打包成tar格式壓縮包
vim Chart.yaml
vim values.yaml
修改此文件中的配置
 
helm lint myapp/   #檢查chart包中的文件語(yǔ)法格式
helm package myapp/  #將chart包目錄打包成tar格式壓縮包
 
helm install -n xy101 myapp-1 myapp-1.0.0.tgz  #部署
升級(jí):修改配置文件后重新生成chart包
helm upgrade -n <命名空間> <實(shí)例名稱> <chart包>                            #升級(jí)實(shí)例
helm history -n <命名空間> <實(shí)例名稱>                                      #查看實(shí)例的歷史版本列表
helm rollback -n <命名空間> <實(shí)例名稱> <REVISION>                          #回滾實(shí)例到指定的chart歷史版本

4.Helm 倉(cāng)庫(kù)

helm 可以使用 harbor 作為本地倉(cāng)庫(kù),將自定義的 chart 推送至 harbor 倉(cāng)庫(kù)

//安裝 harbor
#上傳 harbor-offline-installer-v1.9.1.tgz 和 docker-compose 文件到 /opt 目錄
cd /opt
cp docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
 
tar zxf harbor-offline-installer-v1.9.1.tgz
cd harbor/
 
vim harbor.yml
hostname: 192.168.80.13
harbor_admin_password: Harbor12345     #admin用戶初始密碼
data_volume: /data                     #數(shù)據(jù)存儲(chǔ)路徑,自動(dòng)創(chuàng)建
chart:
  absolute_url: enabled                #在chart中啟用絕對(duì)url
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor          #日志路徑
 
#安裝帶有 Clair service 和 chart 倉(cāng)庫(kù)服務(wù)的 Harbor
./install.sh --with-clair --with-chartmuseum
 
//安裝 push 插件
#在線安裝
helm plugin install https://github.com/chartmuseum/helm-push
 
#離線安裝
wget https://github.com/chartmuseum/helm-push/releases/download/v0.8.1/helm-push_0.8.1_linux_amd64.tar.gz
 
mkdir -p ~/.local/share/helm/plugins/helm-push
tar -zxvf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-push
#登錄 Harbor WEB UI 界面,創(chuàng)建一個(gè)新項(xiàng)目
瀏覽器訪問:http://192.168.80.101 ,默認(rèn)的管理員用戶名和密碼是 admin/Harbor12345
點(diǎn)擊 “+新建項(xiàng)目” 按鈕
填寫項(xiàng)目名稱為 “chart_repo”,訪問級(jí)別勾選 “公開”,點(diǎn)擊 “確定” 按鈕,創(chuàng)建新項(xiàng)目
 
#添加倉(cāng)庫(kù)
helm repo add harbor http://192.168.80.13/chartrepo/chart_repo --username=admin --password=Harbor12345
#注:這里的 repo 的地址是<Harbor URL>/chartrepo/<項(xiàng)目名稱>,Harbor 中每個(gè)項(xiàng)目是分開的 repo。如果不提供項(xiàng)目名稱,則默認(rèn)使用 library 這個(gè)項(xiàng)目。
 
helm repo ls
 
#推送 chart 到 harbor 中
cd /opt/helm
helm push nginx harbor
 

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Java將Excel中的數(shù)字轉(zhuǎn)換為文本或?qū)⑽谋拘蛿?shù)字轉(zhuǎn)換為數(shù)字

    使用Java將Excel中的數(shù)字轉(zhuǎn)換為文本或?qū)⑽谋拘蛿?shù)字轉(zhuǎn)換為數(shù)字

    在 Excel 中,數(shù)字有時(shí)會(huì)以文本的形式存儲(chǔ),這可能會(huì)影響數(shù)據(jù)的計(jì)算、排序和處理,無(wú)論是將數(shù)字轉(zhuǎn)換為文本,還是將文本型數(shù)字轉(zhuǎn)換為數(shù)字,這兩種操作在處理 Excel 數(shù)據(jù)時(shí)都非常常見且重要,本文將介紹如何使用 Java 完成這兩個(gè)任務(wù),需要的朋友可以參考下
    2025-12-12
  • 詳解spring cloud feign踩坑記錄

    詳解spring cloud feign踩坑記錄

    這篇文章主要介紹了spring cloud feign踩坑記錄,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-06-06
  • 一文讀懂 Java 中的 ==、equals () 與 hashCode ()原理與避坑指南

    一文讀懂 Java 中的 ==、equals () 與 ha

    在 Java 開發(fā)中,==、equals()?和?hashCode()?是處理對(duì)象比較和哈希計(jì)算的核心元素,理解它們之間的區(qū)別與聯(lián)系對(duì)編寫高質(zhì)量代碼至關(guān)重要,本文給大家介紹Java 中的 ==、equals()與hashCode()原理,感興趣的朋友一起看看吧
    2025-09-09
  • IDEA搭建Maven模塊化項(xiàng)目的實(shí)現(xiàn)

    IDEA搭建Maven模塊化項(xiàng)目的實(shí)現(xiàn)

    本文主要介紹了IDEA搭建Maven模塊化項(xiàng)目的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • SpringBoot使用Tika進(jìn)行文檔解析的完整指南

    SpringBoot使用Tika進(jìn)行文檔解析的完整指南

    Tika是一款A(yù)pache開源的,跨平臺(tái),支持多品種文本類型的內(nèi)容檢測(cè)和提取工具,本文主要為大家介紹了SpringBoot使用Tika進(jìn)行文檔解析的完整步驟,希望對(duì)大家有所幫助
    2025-07-07
  • 如何通過Java實(shí)現(xiàn)加密、解密Word文檔

    如何通過Java實(shí)現(xiàn)加密、解密Word文檔

    這篇文章主要介紹了如何通過Java實(shí)現(xiàn)加密、解密Word文檔,對(duì)一些重要文檔,常需要對(duì)文件進(jìn)行加密,查看文件時(shí),需要正確輸入密碼才能打開文件。下面介紹了一種比較簡(jiǎn)單的方法給Word文件加密以及如何給已加密的Word文件解除密碼保護(hù),需要的朋友可以參考下
    2019-07-07
  • java莫名其妙的掛掉問題及解決方案

    java莫名其妙的掛掉問題及解決方案

    文章介紹了Java服務(wù)死掉并被OOMKiller殺死的情況,通過查看系統(tǒng)日志和Cron任務(wù),懷疑存在惡意軟件,任務(wù)名稱和參數(shù)看起來(lái)隨機(jī),并且執(zhí)行用戶為root,具有高度可疑性,作者建議檢查并移除可疑任務(wù)
    2026-02-02
  • Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接

    Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接

    這篇文章主要為大家詳細(xì)介紹了Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 以Java代碼為例講解設(shè)計(jì)模式中的簡(jiǎn)單工廠模式

    以Java代碼為例講解設(shè)計(jì)模式中的簡(jiǎn)單工廠模式

    簡(jiǎn)單來(lái)說(shuō),工廠模式就是按照需求來(lái)返回一個(gè)類型的對(duì)象,使用工廠模式的意義就是,如果對(duì)象的實(shí)例化與代碼依賴太大的話,不方便進(jìn)行擴(kuò)展和維護(hù),使用工廠的目的就是使對(duì)象的實(shí)例化與主程序代碼就行解耦.來(lái)具體看一下:
    2016-05-05
  • Java 使用Calendar計(jì)算時(shí)間的示例代碼

    Java 使用Calendar計(jì)算時(shí)間的示例代碼

    這篇文章主要介紹了Java 使用Calendar計(jì)算時(shí)間的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評(píng)論

藁城市| 光山县| 绥江县| 温宿县| 色达县| 巍山| 兴城市| 微山县| 拉萨市| 西林县| 辉县市| 加查县| 莱州市| 富裕县| 洪泽县| 丹巴县| 阳泉市| 皮山县| 罗城| 蒲城县| 碌曲县| 龙山县| 柞水县| 子洲县| 刚察县| 建瓯市| 沂南县| 义马市| 都兰县| 富川| 吴川市| 浙江省| 介休市| 江川县| 阿坝| 北碚区| 阿克| 门头沟区| 肥乡县| 新平| 鹤岗市|