欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

一.Helm概述

1.Helm的簡介

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

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

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

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

2.Helm的三個重要概念

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

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

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

Tiller: Helm 2.x版本中,Helm采用Client/Server的設計,Tiller就是Helm的Server部分,需要具備集群管理員權限才能安裝到K8s集群中運行。

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

Helm在k8s集群運用中,總的來講其作用過程:Helm 安裝 charts 到 Kubernetes 集群中,每次安裝都會創(chuàng)建一個新的 release。

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

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

helm2的部署方式與使用

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

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

Helm3的部署與使用

在 Helm 3 中,Tiller 被移除了。新的 Helm 客戶端會像 kubectl 命令一樣,讀取本地的 kubeconfig文件,使用我們在 kubeconfig 中預先定義好的權限來進行一系列操作

二.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
 
 
//命令補全
source <(helm completion bash)

2.使用 helm 安裝 Chart

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

3.Helm 自定義模板

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

4.Helm 倉庫

helm 可以使用 harbor 作為本地倉庫,將自定義的 chart 推送至 harbor 倉庫

//安裝 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ù)存儲路徑,自動創(chuàng)建
chart:
  absolute_url: enabled                #在chart中啟用絕對url
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor          #日志路徑
 
#安裝帶有 Clair service 和 chart 倉庫服務的 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)建一個新項目
瀏覽器訪問:http://192.168.80.101 ,默認的管理員用戶名和密碼是 admin/Harbor12345
點擊 “+新建項目” 按鈕
填寫項目名稱為 “chart_repo”,訪問級別勾選 “公開”,點擊 “確定” 按鈕,創(chuàng)建新項目
 
#添加倉庫
helm repo add harbor http://192.168.80.13/chartrepo/chart_repo --username=admin --password=Harbor12345
#注:這里的 repo 的地址是<Harbor URL>/chartrepo/<項目名稱>,Harbor 中每個項目是分開的 repo。如果不提供項目名稱,則默認使用 library 這個項目。
 
helm repo ls
 
#推送 chart 到 harbor 中
cd /opt/helm
helm push nginx harbor
 

總結

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

相關文章

  • Java編寫實現(xiàn)九宮格應用

    Java編寫實現(xiàn)九宮格應用

    這篇文章主要為大家詳細介紹了Java編寫實現(xiàn)九宮格應用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java身份證號碼校驗工具類詳解

    Java身份證號碼校驗工具類詳解

    這篇文章主要為大家詳細介紹了Java身份證號碼校驗工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 關于@ComponentScan?TypeFilter自定義指定掃描bean的規(guī)則

    關于@ComponentScan?TypeFilter自定義指定掃描bean的規(guī)則

    這篇文章主要介紹了關于@ComponentScan?TypeFilter自定義指定掃描bean的規(guī)則,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • JAVA+Struts2獲取服務器地址的方法

    JAVA+Struts2獲取服務器地址的方法

    這篇文章主要介紹了JAVA+Struts2獲取服務器地址的方法,是Struts2的一個簡單應用,具有一定的借鑒與參考價值,需要的朋友可以參考下
    2014-11-11
  • 在Java編程中定義方法

    在Java編程中定義方法

    這篇文章主要介紹了在Java編程中定義方法,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-10-10
  • 基于javaweb+jsp的游泳館會員管理系統(tǒng)(附源碼)

    基于javaweb+jsp的游泳館會員管理系統(tǒng)(附源碼)

    這篇文章主要介紹了基于javaweb+jsp的游泳館會員管理系統(tǒng),開發(fā)工具eclipse/idea/myeclipse/sts等均可配置運行,此源代碼社和課程設計,大作業(yè)及畢業(yè)設計項目,需要的朋友可以參考下
    2022-04-04
  • java面向對象繼承與多態(tài)介紹

    java面向對象繼承與多態(tài)介紹

    大家好,本篇文章主要講的是java面向對象繼承與多態(tài)介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 巧妙mybatis避免Where 空條件的尷尬

    巧妙mybatis避免Where 空條件的尷尬

    這篇文章主要介紹了巧妙mybatis避免Where 空條件的尷尬,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • JavaCV實戰(zhàn)之調用攝像頭基礎詳解

    JavaCV實戰(zhàn)之調用攝像頭基礎詳解

    這篇文章主要介紹了使用JavaCV框架對攝像頭進行各種處理的基礎理論詳解,文中的示例代碼講解詳細,對我們學習JavaCV有一定的幫助,需要的可以了解一下
    2022-01-01
  • Mac安裝多個JDK并實現(xiàn)動態(tài)切換

    Mac安裝多個JDK并實現(xiàn)動態(tài)切換

    有時候我們有多個項目需要使用多個版本JDK,本文主要介紹了Mac安裝多個JDK并實現(xiàn)動態(tài)切換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07

最新評論