当前位置: 首页 > news >正文

更换网站空间软件工程师工资高吗

更换网站空间,软件工程师工资高吗,做网站要会编程么,北京做网站优化引言 helm是k8s的包管理工具#xff0c;使用helm#xff0c;可以使用更为简化和系统化的方式对k8s应用进行部署、升级。 helm是CNCF已毕业的项目#xff0c;社区也是相当活跃的#xff0c;在 https://artifacthub.io/ 上#xff0c;能找到很多现成的helm chart#xff… 引言 helm是k8s的包管理工具使用helm可以使用更为简化和系统化的方式对k8s应用进行部署、升级。 helm是CNCF已毕业的项目社区也是相当活跃的在 https://artifacthub.io/ 上能找到很多现成的helm chart稍作修改就能用到生产环境中非常方便。 本文会介绍helm的核心概念并用一个例子帮助大家更直观的认识helm大家可以跟着这个例子操作一遍相信对理解helm会有非常大的作用。 教程地址cloud-native-tutorial 什么是helm 初识helm helm在希腊语中的意思是舵驾驶盘。据说是helm创始人mutt butcher翻遍了航海手册找出来的目的是为了找一个和kubernetes主题相匹配的词语。 官网地址https://helm.sh/ 官方给出的解释是Helm is the best way to find, share, and use software built for Kubernetes. 意思是helm是kubernetes中查找、分享、构建应用的最佳方式。 这种说法当然不算夸张Helm其实是一个Kubernetes应用的包管理工具用来管理chart一种预先配置好的安装包资源有点类似于Ubuntu 的APT和CentOS中的YUM。因此helm的出现解决了k8s应用管理能力缺失的问题。 另外helm也是dev和ops的桥梁运维人员在使用helm的时候一方面不需要理解大量在chart中的各种k8s元素只需要配置少量的环境变量即可安装另一方面helm也给初级运维人员提供了学习的机会他们可以在chart中学习并理解各种k8s元素从而能够更快的掌握k8s。 下面列举了helm的一些关键信息 2019 年11 月13 日Helm 3 发布2020 年4 月30 日从CNCF 中毕业目前github上接近有1.9w个Star最新版本3.5.0主要作者Mutt Butcher目前在Microsoft主要关注DevOps领域。 helm与apt对比 在我们接触一个新事物的时候最好的学习方式就是和我们熟悉的事务来做类比能够帮助我们快速的掌握其中的核心概念。 由于Mutt Butcher在设计helm的时候大量参考了apt和homebrew的设计这里我们用apt来做对比帮助大家更好的理解helm。 从下表中可以看到helm和apt之间概念的对比相信熟悉apt的同学能够很快的对helm有一个初步的认识。 helm总览 对helm有了一个初步的印象之后我们来对helm做一个总览包括helm的的核心概念、运行流程、常用命令、chart做一个概要性的了解这样的话对我们后续深入helm的学习和实践起一个纲领的作业避免只见树木、不见森林。 helm三大概念 chartchart就是helm package包含了一个k8s app应用运行起来的所有要素比如service, deployment, configmap, serviceaccount, rbac, 等这些要素都是以template文件的形式存在再结合values文件最终渲染出能够被k8s执行的yaml文件repository仓库是charts的集合方便进行分享和分发。下面是官网仓库和阿里云仓库的地址大家可以进去看看感受一下 https://artifacthub.io/https://developer.aliyun.com/hubreleaserelease是helm chart在kubernetes的一个运行实例你可以用不同的release name多次安装同一个chart比如当集群中需要多个redis实例你可以使用不同的配置文件安装redis chart。 helm运行流程 下面这张图我建议大家多看几遍可以说掌握了这张图就掌握了helm的核心。 从下图可以看到helm的核心运行流程分为以下几步 从chart仓库中获取chart使用者配置自己的values文件根据自己的运行环境对values进行修改默认values文件和使用者values文件会进行一个merge形成最终的values文件使用最终的values文件渲染chart的template形成可以被kubernetes执行的yaml调用kube apply提交yaml到kubernetes 在这里需要注意chart开发者和使用者的界限正是由于在跨越这个界限的时候从需要理解大量的配置到只需要理解少量的配置使得ops的工作变得简便这也是helm核心的设计哲学。看完整个文章即使你什么都没记住只记住了这张图你也会有很大的收获了。 helm常用命令 在helm的时候你可以使用第三方开发的chart也可以自己开发chart以下是两种情况下使用的常见命令。更为详细的命令可以安装好helm之后使用helm help来查看或查看官方文档。 使用第三方开发的chart 部署前 repo: add, list, remove, update, and index chart repositoriessearch: search for a keyword in charts 部署后 install: install a chartlist: list releasesstatus: display the status of the named releaseupgrade: upgrade a releaserollback: roll back a release to a previous revisionuninstall: uninstall a release 自己开发chart lint: examine a chart for possible issuespackage: package a chart directory into a chart archivepush: push helm chart to chartmuseumchart push: push helm chart to OCI repository chart chart可以说是helm里面最重要的概念了关于chart也有很多内容需要掌握在这里做一个列举。 chart开发主要是指利用模板技术开发一个chart会在后面做详细介绍chart hooks在chart的生命周期中提供一些hooks方便进行一些前置或后置操作 在chart安装前创建应用需要的Secret在chart安装前备份数据库在chart卸载后做一些清理工作chart test当你install了一个chart后如何知道这个release是否运行正常呢chart test提供了一种测试的方式来验证你的应用是否正常运行比如 校验mysql应用能够正常连接并接受请求校验services能够正常做load balancelibrary chart一种以library形式存在的chart可以在application chart之间进行共享避免重复逻辑类似于编程语言中的public librarychart校验基于PKI、GnuPG等技术对helm package进行签名保证传输或发布过程中的安全性OCIOpen Container Initiative容器发型规范支持helm 3引入EXPERIMENTAL能够将chart推送到支持OCI的仓库中比如harbor, nexus等比如将chart保存到harbor中保存charthelm chart save kubeedge/ some-harbor-repo/kubeedge-cloud-chart:1.0.0登录repohelm registry login https://some-harbor-repo推送charthelm chart push some-harbor-repo/kubeedge-cloud-chart:1.0.0高级特性 post rendering: 提供在helm install之前对manifests进行操作、配置的一种机制一般结合kustomize使用。比如 在install时插入sidecar从而为deployment增加功能不修改原chart的情况下更改manifests的配置 这可能不是非常好理解这里举一个例子假设我需要对一个第三方的chart做少量的修改以满足我的部署要求那么我可以fork一份这个chart然后在上面做修改但是这样我需要一些额外的维护工作当这个chart升级之后我还需要做merge的工作十分不便。 因此post rendering提供了一种机制你只需要使用post renderingkustomize编写的一个脚本就可以在install前对原始chart的内容做一些定制化的修改避免了额外的维护工作。如下图所示。kustomize是一个开源的配置工具可以方便的对现有的k8s app配置做一些定制化的修改官网地址https://kustomize.io/ go sdkhelm提供了golang sdk方便在go语言中使用storage backend指定release信息的存储类型默认是secret可以指定configmap、secret和postgreSQL下图显示helm的版本信息存放在secret中的情况。 helm plugin支持以插件的形式拓展helm的功能。 helm demo 下面我们一起用一个demo来对helm有一个更为直观的了解。在这个demo中我们的目标是部署一个redis集群包括以下几个步骤 安装helm使用helm install单节点redis使用helm upgrade升级到master-slave使用helm rollback回滚到单节点模式 步骤1安装helm通过apt 以下是通过apt安装helm的命令其他的安装方式可参考官网 curl https://baltocdn.com/helm/signing.asc | sudo apt-key add – sudo apt-get install apt-transport-https --yes echo deb https://baltocdn.com/helm/stable/debian/ all main | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list sudo apt-get update sudo apt-get install helm3.4.2-1 步骤2添加仓库并找到redis chart 添加仓库helm repo add stable https://charts.helm.sh/stable查看已经添加的仓库helm repo list搜索仓库有哪些charthelm search repo stable更新仓库列表到本地helm repo update搜索redishelm search repo redis查看redis chart详情helm show chart stable/redis查看redis valuesvalues相当于chart的配置文件helm show values stable/redis 步骤3install/upgrade/rollback/uninstall 建立单master的配置文件名为only-master.values ## Cluster settings cluster: enabled: false## Redis pod Security Context securityContext: enabled: false## Use password authentication usePassword: true ## Redis password (both master and slave) password: admin## Redis Master parameters master: persistence: enabled: false 然后--dry-run一下看看生成出来的yaml文件是否存在问题 helm install redis-demo stable/redis -f ./only-master.values --dry-run 如果没有问题则进行实际的安装 helm install redis-demo stable/redis -f ./only-master.values 安装成功之后可以登录redis进行操作做进一步的校验 redis-cli -h kubectl get svc redis-demo-master -ojsonpath{.spec.clusterIP} -a admin set name zhangsan get name info replication # 可以看到这时候没有slave连接 建立master-slave配置文件名为master-slave.values ## Cluster settings cluster: enabled: true slaveCount: 1securityContext: enabled: false## Use password authentication usePassword: true password: admin## Mount secrets as files instead of environment variables usePasswordFile: false## Redis Master parameters master: persistence: enabled: false## Redis Slave properties slave: persistence: enabled: false --dry-run一下看看生成出来的yaml文件是否存在问题由于在系统中已经有redis-demo的release因此使用upgrade来进行升级 helm upgrade redis-demo stable/redis -f ./master-slave.values --dry-run helm upgrade redis-demo stable/redis -f ./master-slave.values 检查slave是否安装成功以及是否同步成功 redis-cli -h kubectl get svc redis-demo-slave -ojsonpath{.spec.clusterIP} -a admin get name 最后回滚至单master模式查看部署历史helm history redis-demo回滚到对应的单master版本helm rollback redis-demo REVISION再连接slave已经不成功了 redis-cli -h kubectl get svc redis-demo-slave -ojsonpath{.spec.clusterIP} -a admin 只有master能连接 redis-cli -hkubectl get svc redis-demo-master -ojsonpath{.spec.clusterIP} -a admin # 输入命令测试一下 get age 卸载redis-demo helm uninstall redis-demo chart详解 总体结构 下图是wordpress的helm chart目录结构每个元素的解释如下 Chart.yaml: chart的信息包括chart的版本信息、描述信息、依赖关系等LICENSE: (可选)chart的LICENSE信息README.md: (可选)chart的说明文件values.yaml: chart的默认配置信息values.schema.json: (可选) values配置信息的元信息字段类型、字段描述、字段之间的依赖等格式jsoncharts: 依赖的其他chartcrds: Custom Resource Definitionstemplates: 部署模板结合values.yaml会渲染出kubernetes yaml文件templates/NOTES.txt: (可选)安装说明 Chart.yaml Chart.yaml相当于chart的说明书说明了这个chart的功能、版本、依赖关系、关键字等信息。 下图是redis的Chart.yaml apiVersion: chart api version, 目前helm 3固定为v2name: chart名字description: chart描述type: application: 可部署的chartlibrary: 不可部署可在不同chart间共享公用逻辑version: chart的版本appVersion: chart内应用的版本比如redis的版本kubeVersion: 兼容的k8s版本keywords: 关键词在helm search中用到dependencies: 依赖的chartmantainers: chart的开发人员icon: chart图标会在hub中展示 template template存放chart中的主要内容主要以模板的形式存在template中可以使用变量、控制语句、函数等功能非常丰富。 chart hub chart repo chart hub可以理解为chart仓库的汇总官方地址https://artifacthub.io/chart repochart仓库存放具体的chart 示例https://charts.bitnami.com/bitnami开源的仓库harbor (https://goharbor.io/)利用helm OCI的支持helm官方提供的仓库chartmuseum - https://github.com/helm/chartmuseumchart repo UIhttps://github.com/helm/monocular helm CICD 可以使用helm来构建CICD pipeline下面是一个CICD的示例 可以看到整个CICD分为3个步骤当然这只是一个例子开发者可以根据实际的需要对这个步骤进行调整 stage1开发人员编码、自测通过后提交feature分支并触发pipeline构建并分别产生具有相同tag的docker image和helm chart并部署helm chartstage2reviewer review代码测试通过后merge到release分支修改版本号并产生new tag的docker image和helm chart并部署到集群stage3测试、产品、客户在staging上验证通过后直接把helm chart部署到生产环境 从helm v2 到 v3 都有哪些变化 从下图中看到最大的变化就是移出了tiller主要原因是k8s早已支持了RBAC不再需要tiller这么一个“多余”的组件来做权限管理了另外的几个修改如下图所示要了解细节请参考官方的文档。
http://www.dnsts.com.cn/news/196492.html

相关文章:

  • 徐汇苏州网站建设网站如何做关健词收录
  • 网站 app 哪个先做互联网app推广工作怎么样
  • 有限公司网站建设 互成网络地址 四川建设企业银行客户号在哪里看
  • 好口碑自适应网站建设做个企业网站需要多少钱
  • 让别人做网站怎样才安全请人建设网站需要注意什么
  • 做网站卖游戏装备百度关键词搜索量
  • 哪个网站是tv域名网页设计素材制作
  • 网站维护是怎么回事四川省黄页企业电话
  • 网站页面构成要素如何建单位内部购物网站
  • 厦门建设工程招标中心的网站太平洋建设21局网站
  • 网站建设人员岗位职责wordpress 3.9.2 下载
  • 电商网站管理四川建设公共查询平台
  • 网站设计与制作是网页吗在wordpress官网建站
  • 长春做网站长春网站设计聊天直播软件开发
  • 莱芜手机网站建设电话wordpress怎样设置导航栏
  • 常州品牌网站建设wordpress的html编辑器插件
  • 建设银行福州分行招聘网站网店卖什么最赚钱
  • 盐城有没有做网站吗专业的网站制作公司地址
  • 图书馆门户网站建设方案2024中核招聘网最新招聘公告
  • 建设网站的费用入什么科目wordpress抖音
  • 永久免费的自助建站贴吧引流推广
  • 网站优化教程网站联系方式设计
  • 云虚拟主机怎么做网站福州外贸网站制作
  • 河北建设工程造价信息网站学校网站分析
  • 晋城网站建设公司排名搜索网站怎么做的
  • 2021百度模拟点击工具烟台网站排名seo
  • 免费网站建设平台简单网页素材
  • 厦门首屈一指网站建设php网站开发第三章
  • 网站安全维护内容企业网站建设方案 完整版
  • 电商网站运营策划网站seo优化全程记录思维导图