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

丰镇网站建设百度站长工具网站认证

丰镇网站建设,百度站长工具网站认证,成都网站设计得多少钱,太原再次发出通告什么是 Helm 每个成功的软件平台都有一个优秀的打包系统#xff0c;比如Debian、Ubuntu 的 apt#xff0c;RedHat、CentOS 的 yum。Helm 则是 Kubernetes上 的包管理器#xff0c;方便我们更好的管理应用。 在没使用 helm 之前#xff0c;向 kubernetes 部署应用#xff… 什么是 Helm 每个成功的软件平台都有一个优秀的打包系统比如Debian、Ubuntu 的 aptRedHat、CentOS 的 yum。Helm 则是 Kubernetes上 的包管理器方便我们更好的管理应用。 在没使用 helm 之前向 kubernetes 部署应用我们要依次部署 deployment、svc 等步骤较繁琐。 况且随着很多项目微服务化复杂的应用在容器中部署以及管理显得较为复杂helm 通过打包的方式支持发布的版本管理和控制 很大程度上简化了 Kubernetes 应用的部署和管理。 Helm本质就是让K8s的应用管理Deployment、Service等可配置可以通过类似于传递环境变量的方式能动态生成。通过动态生成K8s资源清单文件deployment.yaml、service.yaml。 然后调用 Kubectl 自动执行 K8s 资源部署。 Helm 是官方提供的类似于 YUM 的包管理器是部署环境的流程封装。Helm 有三个重要的概念Chart 、Repository 和 Release ●ChartHelm 的软件包采用 TAR 格式。是创建一个应用的信息集合包括各种 Kubernetes 对象的配置模板、参数定义、依赖关系、文档说明等。chart 是应用部署的自包含逻辑单元。 可以将 chart 想象成 apt、yum 中的软件安装包。 ●Release是 chart 的运行实例代表了一个正在运行的应用。当 chart 被安装到 Kubernetes 集群就生成一个 release。chart 能够多次安装到同一个集群每次安装都是一个 release。 ●Repository仓库Charts 仓库用于集中存储和分发 Charts。Repository 本质上是一个 Web 服务器该服务器保存了一系列的 Chart 软件包以供用户下载并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。 总结Helm 安装 charts 到 Kubernetes 集群中每次安装都会创建一个新的 release。你可以在 Helm 的 chart repositories 中寻找新的 chart。 //Helm3 与 Helm2 的区别 Helm2 是 C/S 架构主要分为客户端 helm 和服务端 Tiller。在 Helm 2 中Tiller 是作为一个 Deployment 部署在 kube-system 命名空间中很多情况下我们会为 Tiller 准备一个 ServiceAccount 这个 ServiceAccount 通常拥有集群的所有权限。 用户可以使用本地 Helm 命令自由地连接到 Tiller 中并通过 Tiller 创建、修改、删除任意命名空间下的任意资源。 在 Helm 3 中Tiller 被移除了。新的 Helm 客户端会像 kubectl 命令一样读取本地的 kubeconfig 文件使用我们在 kubeconfig 中预先定义好的权限来进行一系列操作。 Helm 的官方网站 https://helm.sh/ ------------------- Helm 部署 ------------------- 1、安装 helm  //下载二进制 Helm client 安装包 https://github.com/helm/helm/tags tar -zxvf helm-v3.6.0-linux-amd64.tar.gz mv linux-amd64/helm /usr/local/bin/helm 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 update           helm repo list //查看 stable 仓库可用的 charts 列表 helm search repo stable //删除 incubator 仓库 helm repo remove incubator //查看 chart 信息 helm show chart stable/mysql     #查看指定 chart 的基本信息 helm show all stable/mysql         #获取指定 chart 的所有信息 //安装 chart helm install my-redis bitnami/redis [-n default]   #指定 release 的名字为 my-redis-n 指定部署到 k8s 的 namespace helm install bitnami/redis --generate-name    #不指定 release 的名字时需使用 –generate-name 随机生成一个名字 //查看所有 release helm ls  helm list //查看指定的 release 状态 helm status my-redis                //删除指定的 release helm uninstall my-redis  ------------------- Helm 自定义模板 ------------------- charts 除了可以在 repo 中下载还可以自己自定义创建完成后通过 helm 部署到 k8s。 //拉取 chart mkdir /opt/helm cd /opt/helm helm pull stable/mysql ls mysql-1.6.9.tgz tar xf mysql-1.6.9.tgz yum install -y tree tree mysql mysql ├── Chart.yaml ├── README.md ├── templates │   ├── configurationFiles-configmap.yaml │   ├── deployment.yaml │   ├── _helpers.tpl │   ├── initializationFiles-configmap.yaml │   ├── NOTES.txt │   ├── pvc.yaml │   ├── secrets.yaml │   ├── serviceaccount.yaml │   ├── servicemonitor.yaml │   ├── service.yaml │   ├── ingress.yaml │   └── tests │       ├── test-configmap.yaml │       └── test.yaml └── values.yaml 可以看到一个 chart 包就是一个文件夹的集合文件夹名称就是 chart 包的名称。 #chart 是包含至少两项内容的helm软件包 1软件包自描述文件 Chart.yaml这个文件必须有 name 和 versionchart版本 的定义 2一个或多个模板其中包含 Kubernetes 清单文件 ●NOTES.txtchart 的“帮助文本”在用户运行 helm install 时显示给用户 ●deployment.yaml创建 deployment 的资源清单文件 ●service.yaml为 deployment 创建 service 的资源清单文件 ●ingress.yaml: 创建 ingress 对象的资源清单文件 ●_helpers.tpl放置模板助手的地方可以在整个 chart 中重复使用 //创建自定义的 chart helm create nginx tree nginx nginx ├── charts ├── Chart.yaml ├── templates │   ├── deployment.yaml │   ├── _helpers.tpl │   ├── hpa.yaml │   ├── ingress.yaml │   ├── NOTES.txt │   ├── serviceaccount.yaml │   ├── service.yaml │   └── tests │       └── test-connection.yaml └── values.yaml cat nginx/templates/deployment.yaml #在 templates 目录下 yaml 文件模板中的变量go template语法的值默认是在 nginx/values.yaml 中定义的只需要修改 nginx/values.yaml 的内容也就完成了 templates 目录下 yaml 文件的配置。 比如在 deployment.yaml 中定义的容器镜像 image: {{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }} cat nginx/values.yaml | grep repository   repository: nginx #以上变量值是在 create chart 的时候就自动生成的默认值你可以根据实际情况进行修改。 //修改 chart vim nginx/Chart.yaml apiVersion: v2 name: nginx                     #chart名字 description: A Helm chart for Kubernetes type: application               #chart类型application或library version: 0.1.0                  #chart版本 appVersion: 1.16.0              #application部署版本 vim nginx/values.yaml //打包 chart helm lint nginx        #检查依赖和模版配置是否正确 helm package nginx     #打包 chart会在当前目录下生成压缩包 nginx-0.1.0.tgz //部署 chart helm install nginx ./nginx --dry-run --debug    #使用 --dry-run 参数验证 Chart 的配置并不执行安装 helm install nginx ./nginx -n default           #部署 chartrelease 版本默认为 1 或者 helm install nginx ./nginx-0.1.0.tgz #可根据不同的配置来 install默认是 values.yaml helm install nginx ./nginx -f ./nginx/values-prod.yaml helm ls NAME     NAMESPACE    REVISION    UPDATED                                    STATUS      CHART          APP VERSION nginx    default      1           2022-01-18 23:43:06.170248683 0800 CST    deployed    nginx-0.1.0    1.16.0      kubectl get pod,svc NAME                         READY   STATUS    RESTARTS   AGE pod/nginx-67779bd969-kq2fm   1/1     Running   0          58m NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE service/kubernetes      ClusterIP   10.96.0.1       none        443/TCP   37h service/nginx           ClusterIP   10.100.0.171    none        80/TCP    58s #部署 ingress wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/mandatory.yaml wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml kubectl apply -f mandatory.yaml kubectl apply -f service-nodeport.yaml kubectl get pod,svc -n ingress-nginx NAME                                            READY   STATUS    RESTARTS   AGE pod/nginx-ingress-controller-54b86f8f7b-jjlnj   1/1     Running   0          79s NAME                    TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE service/ingress-nginx   NodePort   10.101.36.34   none        80:30665/TCP,443:30363/TCP   6s kubectl get ingress NAME                CLASS    HOSTS          ADDRESS        PORTS   AGE nginx               none   www.xny.com    10.101.36.34   80      58m vim /etc/hosts ..... 192.168.80.12 node02 www.xny.com curl http://www.xny.com:30665 //修改为 NodePort 访问后升级 vim nginx/values.yaml service:   type: NodePort   port: 80   nodePort: 30080 ingress:   enabled: false replicaCount: 1image:repository: nginxpullPolicy: IfNotPresenttag: latest                 #设置镜像标签imagePullSecrets: [] nameOverride: fullnameOverride: serviceAccount:create: trueannotations: {}name: podAnnotations: {}podSecurityContext: {}# fsGroup: 2000securityContext: {}# capabilities:#   drop:#   - ALL# readOnlyRootFilesystem: true# runAsNonRoot: true# runAsUser: 1000service:type: ClusterIPport: 80ingress:enabled: true                 #开启 ingressclassName: annotations: {}# kubernetes.io/ingress.class: nginx# kubernetes.io/tls-acme: truehosts:- host: www.xny.com         #指定ingress域名paths:- path: /pathType: Prefix      #指定ingress路径类型tls: []#  - secretName: chart-example-tls#    hosts:#      - chart-example.localresources:limits:cpu: 100mmemory: 128Mirequests:cpu: 100mmemory: 128Miautoscaling:enabled: falseminReplicas: 1maxReplicas: 100targetCPUUtilizationPercentage: 80# targetMemoryUtilizationPercentage: 80nodeSelector: {}tolerations: []affinity: {} vim nginx/templates/service.yaml apiVersion: v1 kind: Service metadata:name: {{ include nginx.fullname . }}labels:{{- include nginx.labels . | nindent 4 }} spec:type: {{ .Values.service.type }}ports:- port: {{ .Values.service.port }}targetPort: httpprotocol: TCPname: httpnodePort: {{ .Values.service.nodePort }}              #指定 nodePortselector:{{- include nginx.selectorLabels . | nindent 4 }} 升级 releaserelease 版本加 1 helm upgrade nginx nginx  kubectl get svc NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE kubernetes      ClusterIP   10.96.0.1       none        443/TCP        38h nginx           NodePort    10.100.0.171    none        80:30080/TCP   79m curl 192.168.80.14:30080 //回滚 #根据 release 版本回滚 helm history nginx              #查看 release 版本历史 helm rollback nginx 1           #回滚 release 到版本1 helm history nginx           #nginx release 已经回滚到版本 1 REVISION    UPDATED                     STATUS        CHART          APP VERSION    DESCRIPTION      1           Tue Jan 18 23:43:06 2022    superseded    nginx-0.1.0    1.16.0         Install complete 2           Wed Jan 19 01:02:42 2022    superseded    nginx-0.1.0    1.16.0         Upgrade complete 3           Wed Jan 19 01:04:52 2022    deployed      nginx-0.1.0    1.16.0         Rollback to 1 #通常情况下在配置好 templates 目录下的 kubernetes 清单文件后后续维护一般只需要修改 Chart.yaml 和 values.yaml 即可。 //在命令行使用 --set 指定参数来部署install,upgraderelease #注此参数值会覆盖掉在 values.yaml 中的值如需了解其它的预定义变量参数可查看 helm 官方文档。 helm upgrade nginx nginx --set image.tag1.15 ------------------- 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                     #数据存储路径自动创建 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 ~/.local/share/helm/plugins/helm-push tar -zxvf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-push helm repo ls #登录 Harbor WEB UI 界面创建一个新项目 浏览器访问http://192.168.80.10 默认的管理员用户名和密码是 admin/Harbor12345 点击 “新建项目” 按钮 填写项目名称为 “chart_repo”访问级别勾选 “公开”点击 “确定” 按钮创建新项目 #添加仓库 helm repo add harbor http://192.168.80.13/chartrepo/chart_repo --usernameadmin --passwordHarbor12345 #注这里的 repo 的地址是Harbor URL/chartrepo/项目名称Harbor 中每个项目是分开的 repo。如果不提供项目名称 则默认使用 library 这个项目。 #推送 chart 到 harbor 中 cd /opt/helm helm push nginx harbor #查看 chart_repo 项目中的 Helm Charts
http://www.pierceye.com/news/52634/

相关文章:

  • 宜昌网站seo公司阿土伯网站做产品推广咋样
  • 建设企业网站e路护航h5网站建设模板下载
  • 怀柔 做网站的网站程序指的是什么
  • 对网站做打包备份处理做申诉资料网站
  • wordpress 文章评论电脑优化大师有用吗
  • 一元云淘网站开发php访问网站
  • 特色企业网站wordpress文章分类页面
  • 三亚做网站哪家效果好自己做套现要建网站吗
  • 好品质高端网站设计厂家郑州手机网站建设公司
  • 做网站域名大概多少钱wordpress右下角
  • 推荐西安优秀的响应式网站建设公司做单页网站怎么选产品
  • 国外室内设计网站排名网站慢的原因
  • 做中介网站需要多少钱下载应用软件排行榜
  • 化工厂网站建设wordpress插件禁用
  • 合肥网站建设费用工业设计公司怎么赚钱
  • 成都网站建设sntuu网站建设需要ftp
  • 湘潭网站建设 磐石网络实惠简单的html网站模板下载
  • 网站建设哪便宜长沙微信营销公司
  • 导航网站怎么做乐清市信息公开网
  • 阿里巴巴网站推广方法制作好网站怎么导入
  • 网站搬家后出错手机像素网站
  • 如何建立手机网站招聘网站开发计划书
  • 代做网站毕业设计网站备案系统验证码出错的解决方案
  • 浙江网站建设报价在线动画手机网站模板下载安装
  • 泰州网站建设服务公司广州网页设计模板
  • 某企业网站建设方案wordpress搜索框中的汉字怎么改
  • 网站建设倒计时代码可以建设网站的软件
  • 一个ip两个网站怎么做专门做排行的网站
  • 制作网站的页面设计怎么做百度seo点击软件
  • 山东网站集约化建设网站作业免费下载