日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Helm - Kubernetes服务编排的利器

發布時間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Helm - Kubernetes服务编排的利器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Helm介紹

  在Kubernetes中部署容器云應用(容器或微服務編排)是一項有挑戰性的工作,Helm就是為了簡化在Kubernetes中安裝部署容器云應用的一個客戶端工具。通過Helm能夠幫助開發者定義、安裝和升級Kubernetes中的容器云應用。同時,也可以通過Helm進行容器云應用的分享。

  Helm的整體架構如下圖(圖片來源-Kubernetes中文社區)所示:

  

  Helm架構由Helm客戶端、Tiller服務器端和Chart倉庫所組成;Tiller部署在Kubernetes中,Helm客戶端從Chart倉庫中獲取Chart安裝包,并將其安裝部署到Kubernetes集群中。?

?

Helm是管理Kubernetes包的工具,Helm能提供以下能力:

  • 創建新的charts

  • 將charts打包成tgz文件

  • 與chart倉庫交互

  • 安裝和卸載Kubernetes的應用

  • 管理使用Helm安裝的charts的生命周期

?

在Helm中,有三個需要了解的重要概念:

  • chart:是創建Kubernetes應用實例的信息集合

  • config:創建發布對象的chart的配置信息

  • release:chart的運行實例,包含特定的config

?

安裝Helm

注:有些文件或鏡像在國內可能無法下載,可以通過此地址獲取:https://pan.baidu.com/s/1yVUCz7wGYie8hkzQaNc3eg

1. 在Master中下載安裝Helm的客戶端,可根據需要下載對應的版本,這里使用的版本是2.8.2。

curl -LO https://storage.googleapis.com/kubernetes-helm/helm-v2.8.2-linux-amd64.tar.gz

tar xzf helm-v2.8.2-linux-amd64.tar.gz

mv linux-amd64/helm /usr/local/bin

?

helm version查看信息:

服務端Tiller還未安裝,因此無法獲取信息。

注:如果helm-v2.8.2-linux-amd64.tar.gz無法下載,可以從上面的鏈接中獲取。

?

?2. 安裝Tiller。

helm init

注:如果初始化失敗,可以把上面的鏈接中的.helm目錄拷貝到master的root目錄下。tiller的鏡像文件也可以從目錄獲取。

如果出現了“Error:Get?https://10.96.0.1:443/version:dial?tcp 10.96.0.1:443:i/o timeout.”的問題,可以參考我的回答來解決:

https://github.com/kubernetes/helm/issues/3347#issuecomment-385468128

?

使用helm version查看Helm版本,如下表示客戶端、服務端都安裝完成:

?

Kubernetes 1.6+版本加入了RBAC的機制,因此需要添加Role Binding:

kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default

?

準備Java微服務

1. 打包jar

mvn package

?

2. 準備Dockerfile

FROM java:8u111-jre RUN mkdir /app COPY . /app WORKDIR /app CMD ["java","-Xmx4g","-Djava.security.egd=file:/dev/./urandom","-jar","hello-1.0.0.jar"]

?

3. 拷貝打包好的jar包以及Dockerfile到node虛擬機

?

4. 打包docker鏡像

docker build -t hello:1.0.0 .

?

準備.Net Core微服務

1. 發布項目

dotnet publish -c Release

?

2. 準備Dockerfile

FROM microsoft/aspnetcore:2.0COPY . /app WORKDIR /appEXPOSE 5000/tcp ENV ASPNETCORE_URLS http://*:5000ENTRYPOINT ["dotnet", "HelloTest.dll"]

3. 拷貝打包好的程序包以及Dockerfile到node虛擬機

?

4. 打包docker鏡像

docker build -t hello-test:1.0.0 .

?

?

使用Helm部署藍圖(Chart)

這里演示如何通過helm完成上面兩個微服務的部署。

?

1. 創建chart

helm create hello-test

?

2. 在templates目錄中放入相應的部署腳本

?

3. 打包chart

helm package hello-test

?

4. 檢查chart

helm lint hello-test

缺少chart的圖標,但不影響,可以忽略。

?

5. 調試chart

helm install ./hello-test-0.1.0.tgz --debug --dry-run

?

調試模式不會真的部署,通過helm list來查看:

?

6. 通過chart部署release

helm install --name hello-test ./hello-test-0.1.0.tgz

?

helm ls

?

kubectl get po

?

查看結果

java服務:?

.Net Core服務(調用java服務):

?

7. 刪除release

helm delete hello-test

?

kubectl get po

?

helm ls -a

hello-test還在,但狀態是DELETED,表示可以重用。如果想徹底刪除,可以通過helm delete hello-test?--purge來刪除

?

使用.Net Core來進行部署

使用的組件是:https://github.com/qmfrederik/helm/。

?

1. 核心代碼:

注:這里需要獲取Kubernetes的admin.config的證書,該證書在master節點上:/etc/kubernetes/admin.conf。

?

2. 參考上述準備.Net Core微服務的步驟,完成helm-client的鏡像打包及部署。

注:需要把admin.conf拷貝到鏡像中:

?

3. 準備yaml文件helm-client.yaml并完成部署

?

4. 檢查效果

安裝:

?

刪除:

?

源碼地址

https://github.com/ErikXu/HelmTutorial

原文地址https://www.cnblogs.com/Erik_Xu/p/8893725.html

.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的Helm - Kubernetes服务编排的利器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。