百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 博客教程 > 正文

内部Helm系统部署

connygpt 2024-09-09 03:08 10 浏览

在内部安装了一个Helm系统,并接入到Rancher中,后续可以通过helm来管理产品的部署。

本文记录了Helm部署的步骤及过程,以便后续运维使用。


整个Helm体系分为两个部分,Helm Client和Helm Server (Tiller)。

1、Helm的部署

在需要部署Helm的服务器上下载了Helm二进制包 https://get.helm.sh/helm-v2.17.0-linux-amd64.tar.gz

然后解压后,将helm拷贝到/usr/local/bin下面,以便直接使用

2、Helm的初始化

在本地初始化Helm,需要连接到Kubernetes中,所以必须在 $HOME/.kub 中保存好集群的 config 文件,初始化之后

helm version
—————
Client: &version.Version{SemVer:"v2.17.0", GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}
Error: Get "http://localhost:8080/api/v1/namespaces/kube-system/pods?labelSelector=app%3Dhelm%2Cname%3Dtiller": dial tcp 127.0.0.1:8080: connect: connection refused

helm home
—————
/home/masterserver/.helm
—————

出现上述问题,说明没有部署 Tiller,先使用命令 helm init 部署 Tiller。

Tiller部署到Kubernetes集群,Helm可以部署到集群,也可以部署到某个节点或物理机,它们之间的关系请参考上图“Helm总体架构”,该命令会在kubernetes集群kube-system名字空间部署ghcr.io/helm/tiller:v2.17.0的镜像并启动服务。

3、给Tiller进行授权

Tiller如果要部署应用,需要在Kubernetes中进行授权

kubectl create serviceaccount --namespace kube-system tiller

kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller

kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}’


更新一下当前的helm配置

helm init --service-account tiller --upgrade

更新仓库

helm repo update


4、启动Helm的服务

完成部署和初始化后,现在需要Helm对外提供接口服务,Web接口,可以通过命令

 helm serve —url 0.0.0.0:8879 &

在本机的8879端口启动Web监听服务



这样Rancher才能引入这个Helm仓库


5、创建自己的Helm Chart

创建自己的Helm Chart使用Helm命令即可,以下列出所有相关命令

# 创建一个chart,名称为nginx-fixed

helm create nginx-fixed

# 修改nginx-fixed目录下面的Chart.yaml和相关文件,如下

--------------
apiVersion: v1
appVersion: "1.0"
description: 修改版的nginx
name: nginx-fixed
icon: http://ip-address/ncw/portal/static/img/a7_login_blue.2f737478.png
version: 1.1.0
--------------

# helm package打包或者直接压缩nginx-fixed文件夹为tgz,两者其实差不多(但有不同)

helm package
# 或者
tar czfv nginx-fixed.tgz nginx-fixed


# 将helm chart压缩包拷贝到helm的repo里面

cp -f nginx-fixed.tgz ~/.helm/repository/local/


# 重新索引本地repo

helm repo index /home/pubserver/.helm/repository/local/


# 其他机器增加仓库(使用其他机器进行测试)

helm repo add auditcharts http://helm-deploy-server-ip:8879


# 更新库索引

helm repo update
--------------
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "auditcharts" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete.
--------------


# 检索测试,如nginx

helm search nginx
--------------
NAME CHART VERSION APP VERSION DESCRIPTION
auditcharts/nginx-fixed 1.1.0 1.0 修改版的nginx
stable/nginx-ingress 1.41.3 v0.34.1 DEPRECATED! An nginx Ingress controller that uses ConfigM...
stable/nginx-ldapauth-proxy 0.1.6 1.13.5 DEPRECATED - nginx proxy with ldapauth
stable/nginx-lego 0.3.1 Chart for nginx-ingress-controller and kube-lego
stable/gcloud-endpoints 0.1.2 1 DEPRECATED Develop, deploy, protect and monitor your APIs…
--------------



6、通过Rancher或Helm部署

6.1 通过Rancher的应用商店中直接安装应用




6.2 通过helm客户端部署

helm install auditcharts/nginx-fixed

NAME: womping-dog
LAST DEPLOYED: Mon Jul 12 15:21:12 2021
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Deployment
NAME READY UP-TO-DATE AVAILABLE AGE
womping-dog-nginx-fixed 0/1 1 0 1s

==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
womping-dog-nginx-fixed-6bdd79748c-m68m9 0/1 ContainerCreating 0 0s

==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
womping-dog-nginx-fixed ClusterIP 10.43.23.34 <none> 80/TCP 1s

==> v1/ServiceAccount
NAME SECRETS AGE
womping-dog-nginx-fixed 1 1s


NOTES:
1. Get the application URL by running these commands:
 export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=nginx-fixed,app.kubernetes.io/instance=womping-dog" -o jsonpath="{.items[0].metadata.name}")
 echo "Visit http://127.0.0.1:8080 to use your application"
 kubectl port-forward $POD_NAME 8080:80

相关推荐

3分钟让你的项目支持AI问答模块,完全开源!

hello,大家好,我是徐小夕。之前和大家分享了很多可视化,零代码和前端工程化的最佳实践,今天继续分享一下最近开源的Next-Admin的最新更新。最近对这个项目做了一些优化,并集成了大家比较关注...

干货|程序员的副业挂,12个平台分享

1、D2adminD2Admin是一个完全开源免费的企业中后台产品前端集成方案,使用最新的前端技术栈,小于60kb的本地首屏js加载,已经做好大部分项目前期准备工作,并且带有大量示例代码,助...

Github标星超200K,这10个可视化面板你知道几个

在Github上有很多开源免费的后台控制面板可以选择,但是哪些才是最好、最受欢迎的可视化控制面板呢?今天就和大家推荐Github上10个好看又流行的可视化面板:1.AdminLTEAdminLTE是...

开箱即用的炫酷中后台前端开源框架第二篇

#头条创作挑战赛#1、SoybeanAdmin(1)介绍:SoybeanAdmin是一个基于Vue3、Vite3、TypeScript、NaiveUI、Pinia和UnoCSS的清新优...

搭建React+AntDeign的开发环境和框架

搭建React+AntDeign的开发环境和框架随着前端技术的不断发展,React和AntDesign已经成为越来越多Web应用程序的首选开发框架。React是一个用于构建用户界面的JavaScrip...

基于.NET 5实现的开源通用权限管理平台

??大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!??今天小编推荐一款基于.NE...

StreamPark - 大数据流计算引擎

使用Docker完成StreamPark的部署??1.基于h2和docker-compose进行StreamPark部署wgethttps://raw.githubusercontent.com/a...

教你使用UmiJS框架开发React

1、什么是Umi.js?umi,中文可发音为乌米,是一个可插拔的企业级react应用框架。你可以将它简单地理解为一个专注性能的类next.js前端框架,并通过约定、自动生成和解析代码等方式来辅助...

简单在线流程图工具在用例设计中的运用

敏捷模式下,测试团队的用例逐渐简化以适应快速的发版节奏,大家很早就开始运用思维导图工具比如xmind来编写测试方法、测试点。如今不少已经不少利用开源的思维导图组件(如百度脑图...)来构建测试测试...

【开源分享】神奇的大数据实时平台框架,让Flink&amp;Spark开发更简单

这是一个神奇的框架,让Flink|Spark开发更简单,一站式大数据实时平台!他就是StreamX!什么是StreamX大数据技术如今发展的如火如荼,已经呈现百花齐放欣欣向荣的景象,实时处理流域...

聊聊规则引擎的调研及实现全过程

摘要本期主要以规则引擎业务实现为例,陈述在陌生业务前如何进行业务深入、调研、技术选型、设计及实现全过程分析,如果你对规则引擎不感冒、也可以从中了解一些抽象实现过程。诉求从硬件采集到的数据提供的形式多种...

【开源推荐】Diboot 2.0.5 发布,自动化开发助理

一、前言Diboot2.0.5版本已于近日发布,在此次发布中,我们新增了file-starter组件,完善了iam-starter组件,对core核心进行了相关优化,让devtools也支持对IAM...

微软推出Copilot Actions,使用人工智能自动执行重复性任务

IT之家11月19日消息,微软在今天举办的Ignite大会上宣布了一系列新功能,旨在进一步提升Microsoft365Copilot的智能化水平。其中最引人注目的是Copilot...

Electron 使用Selenium和WebDriver

本节我们来学习如何在Electron下使用Selenium和WebDriver。SeleniumSelenium是ThoughtWorks提供的一个强大的基于浏览器的开源自动化测试工具...

Quick &#39;n Easy Web Builder 11.1.0设计和构建功能齐全的网页的工具

一个实用而有效的应用程序,能够让您轻松构建、创建和设计个人的HTML网站。Quick'nEasyWebBuilder是一款全面且轻巧的软件,为用户提供了一种简单的方式来创建、编辑...