如何在Ubuntu里安装Helm

匿名 不建议 2023-08-21 19:56:23 -
怎样把Ubuntu装到移动硬盘里

这篇文章给大家聊聊关于如何在Ubuntu里安装Helm,以及为什么不建议用helm部署对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

  1. 微服务在Docker+k8s下如何部署
  2. 如何在Ubuntu里安装Helm
  3. 程序员经常说的设计模式到底是什么

微服务在Docker+k8s下如何部署

正好最近在项目中用到了这些技术,我来抛砖引玉吧。

首先说结论:

1.k8s是非常好的一项技术,很稳定。如果发现正在运行的pod的数量不等于用户设定的期望值,k8s则会自动创建或者删除pod,直到两者相等。这样既保障了服务的不间断运行,同时还可以动态缩放服务的规格。用户只要调整pod的replicate的数量即可,其他的都交给k8s就好,非常省心。

2.要用jenkins来集成命令行操作,虽然我个人非常偏爱使用命令行,但是我不得不承认用jenkins集成命令行操作会极大的提升工作效率。

下面说实现步骤:(本文以azure平台为例)

1.编写Dockerfile

2.在jenkins创建任务,并执行包含如下命令的脚本

2.1gitpull源代码到本地

2.2dockerbuild命令生成镜像文件

2.3docker定义镜像文件版本号并上传到azure平台

2.4kubectl命令来创建k8s的deployment&service.

2.5每次版本更新可以调用updateimage来编译新的镜像版本并提供给k8s使用

注意在创建k8s的deployment和service的时候需要编写yaml格式的配置文件,deployment配置包括名称,镜像文件地址,cpu最大最小分配值,内存最大最小分配值等。service配置文件包括名称,引用的deployment名称,以及是否使用loadbalancer等。

更多详细信息可以参考我的wiki.https://github.com/FamingHou/MyWiki

如何在Ubuntu里安装Helm

Helmisthebestwaytofind,share,andusesoftwarebuiltforKubernetes.

Helm之于Kubernetes好比yum之于RHEL,或者apt-get之于Ubuntu。Helm使用Chart帮助我们管理应用,Chart就好像RPM一样,里面描述了应用及其依赖关系。

主要概念:

Chart:Helm管理的应用部署包,一个结构相对固定的目录或者tgz压缩文件,Chart之间可相互依赖

Release:Chart部署之后的事例,每一次helminstall就会生成一个新的release

HELM安装流程

1.安装客户端工具helm

下载Helm2.6.1(注意需要翻墙):

[root@node01~]#wgethttps://storage.googleapis.com/kubernetes-helm/helm-v2.7.0-linux-amd64.tar.gz

我csdn资源也有,

网址:https://download.csdn.net/download/u013289746/10462621

[root@node01~]#tar-zxvfhelm-v2.7.0-linux-amd64.tgz

[root@node01~]#mvlinux-amd64/helm/usr/local/bin/helm

[root@node01~]#helmversion

Client:&version.Version{SemVer:"v2.7.0",GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6",GitTreeState:"clean"}

Error:cannotconnecttoTiller

报错为没有tillerserver,我们接下来安装tiller;

2.HelmTILLER安装

HelmTiller是Helm的server,Tiller有多种安装方式,比如本地安装或以pod形式部署到Kubernetes集群中。本文以pod安装为例,安装Tiller的最简单方式是helminit,该命令会检查helm本地环境设置是否正确,helminit会连接kubectl默认连接的kubernetes集群(可以通过kubectlconfigview查看),一旦连接集群成功,tiller会被安装到kube-systemnamespace中

[root@node01~]#yuminstallsocat#注意必须在授权之前安装

[root@node01~]#helminit--service-accounttiller--skip-refresh

注意由于某些原因需要网络可以访问gcr.io和kubernetes-charts.storage.googleapis.com,如果无法访问可以通过helminit–service-accounttiller–tiller-image<your-docker-registry>/tiller:2.7.2–skip-refresh使用私有镜像仓库中的tiller镜像

也可以使用阿里的服务端tiller,并创建阿里的repo(--upgrade能够保证已经装上tillerserver端的情况下进行安装)

[root@node01~]#kubectlgetpod-nkube-system-lapp=helmNAMEREADYSTATUSRESTARTSAGEtiller-deploy-587df449fb-c6tzp1/1Running09m

3.权限配置

按照上述方法安装之后执行helmversion,会报权限的错误

解决办法:权限方法1:

创建tiller的和

'{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'权限方法2KubernetesRBAC配置

因为我们将tiller部署在Kubernetes1.8上,KubernetesAPIServer开启了RBAC访问控制,所以我们需要创建tiller使用的serviceaccount:tiller并分配合适的角色给它。详细内容可以查看helm文档中的Role-basedAccessControl。这里简单起见直接分配cluster-admin这个集群内置的ClusterRole给它。

创建rbac-config.yaml文件:

apiVersion:v1kind:ServiceAccountmetadata:name:tillernamespace:kube-system---apiVersion:rbac.authorization.k8s.io/v1beta1kind:ClusterRoleBindingmetadata:name:tillerroleRef:apiGroup:rbac.authorization.k8s.iokind:ClusterRolename:cluster-adminsubjects:-kind:ServiceAccountname:tillernamespace:kube-systemkubectlcreate-frbac-config.yamlserviceaccount"tiller"createdclusterrolebinding"tiller"created

常见错误:

1.anerroroccurredforwarding41746->44134:errorforwardingport44134topoda2976f378ae41750ce35ac9b42d2bd0b2cade3c7c7f8b102a5e2ebf7624be5ef,uid:unabletodoportforwarding:socatnotfound.

解决方案:

yumintallsocat

2.helm版本的问题

解决方案:

尽量使用较新的版本

具体helm的用法,可以直接输入helm–help来进行查看;

程序员经常说的设计模式到底是什么

设计模式是超越基本语法更高阶层的内容,它并仅限于固定的书本知识,还有开发者的思维模式。

当我们学习一门编程语言时,开始都会学习运算符、标识符、控制语句、函数等,千篇一律,但是这些又是学习一门语言最基本的。

但是,学会这些就能够写出优秀的代码吗?

显然,答案是否定的。

“会一门编程语言”和“写出优秀代码”中间相差十万八千里,这其中就是设计模式。

设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

这是搜狗百科的解释,也许有点绕,我们可以来提炼一下,其中关键词如下,

反复使用

经验

所以,它并不是千篇一律的东西,而是经过长久基类的经验。

设计模式中有很多,例如,代理模式、工程模式、原型模式、单例模式等。其实,我们不用这些也能够实现一项功能,但是,如果需要代码维护成本更低、后期扩展更加容易,那么就必须考虑使用设计模式。

例如,代理模式,Spring中使用的AOP(面向切面)主要使用的思想就是动态代理,它把原本纵向编程模式改成了横向编程,这样有哪些好处?

我们通过代理对外暴露一个接口,这样当我们要对原本功能扩展功能,例如,添加日志,就不需要再去改动源代码,只需要通过代理去为其动态的添加一些方法。当然,我们不使用代理,直接去修改源代码也可以实现,但是这样会有很大风险,比如,影响到原本功能、出现未知bug、部署成本较高等。

简而言之,设计模式是一种让开发项目更加高效、更加简便的一种软件设计思想。

如何在Ubuntu里安装Helm和为什么不建议用helm部署的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

如何在ubuntu中安装jdk