某学校网站的安全建设方案网络推广培训心得

张小明 2026/1/11 7:47:05
某学校网站的安全建设方案,网络推广培训心得,如何部署asp网站,传统企业网站建设制作一、Helm概述 helm通过打包的方式#xff0c;支持发布的版本管理和控制#xff0c;很大程度上简化了Kubernetes应用的部署和管理。 Helm本质就是让k8s的应用管理#xff08;Deployment、Service等#xff09;可配置#xff0c;能动态生成。通过动态生成K8S资源清单文支持发布的版本管理和控制很大程度上简化了Kubernetes应用的部署和管理。Helm本质就是让k8s的应用管理Deployment、Service等可配置能动态生成。通过动态生成K8S资源清单文deployment.yaml、service.yaml。然后kubectl自动调用K8S资源部署。对于K8s来说应用资源配置可以定义为K8s API对象包括DeploymentNamespaceService PVPersistent Volumes和PVCPersistentVolumeClaims等等。通常一个应用的部署会涉及很多资源的共同协作用户会定义这些API对象到一系列Yaml文件中然后通过kubectl来逐一进行部署。那么问题来了假如我没接触过K8s, 只想部署个应用了解下不会写Yaml一个个配这些资源对象怎么破需要去结合K8s文档学习Yaml语法。过了几天我终于学会了一个个配好了这些资源对象的Yaml文件并逐一部署在这台机器上。后面想在这台机器上再重复部署几套另外还有十台环境要配成和这台一样怎么办拷贝过去再一一部署出来这配置管理也太麻烦了不好用直接劝退先别急幸好已经有Helm避免了我们去完成这些繁琐配置和维护过程。它能够把这些零零散散的应用资源文件放在一起进行统一配置极大方便了开发人员对K8s集群应用的管理。1.1、Helm 组件及相关术语Helm是官方提供类似于YUM的包管理是部署环境的流程封装Helm有三个重要的概念chart、release和RepositoryHelmHelm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。TillerTiller 是 Helm 的服务端部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求并根据 Chart 生成 Kubernetes 的部署文件 Helm 称为 Release 然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。ChartHelm 的软件包采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包其包含了一组定义 Kubernetes 资源相关的 YAML 文件。Chart有特定的文件目录结构如果开发者想自定义一个新的 Chart只需要使用Helm create命令生成一个目录结构即可进行开发。RepoistoryHelm 的软件仓库Repository 本质上是一个 Web 服务器该服务器保存了一系列的 Chart 软件包以供用户下载并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository 官方仓库的地址是https://hub.helm.sh。Release使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。1.2、Helm工作原理1、Chart Install 过程Helm从指定的目录或者tgz文件中解析出Chart结构信息Helm将指定的Chart结构和Values信息通过gRPC传递给TillerTiller根据Chart和Values生成一个ReleaseTiller将Release发送给Kubernetes用于生成Release2、Chart Update过程Helm从指定的目录或者tgz文件中解析出Chart结构信息Helm将要更新的Release的名称和Chart结构Values信息传递给TillerTiller生成Release并更新指定名称的Release的HistoryTiller将Release发送给Kubernetes用于更新Release3、Chart Rollback过程Helm将要回滚的Release的名称传递给TillerTiller根据Release的名称查找HistoryTiller从History中获取上一个ReleaseTiller将上一个Release发送给Kubernetes用于替换当前Release二、Helm部署现在越来越多的公司和团队开始使用Helm这个Kubernetes的包管理器我们也会使用Helm安装Kubernetes的常用组件。Helm由客户端命令helm工具和服务端tiller组成。helm的GitHub地址https://github.com/helm/helm2.1、安装方式[rootk8s-master01 ~]# mkdir helm [rootk8s-master01 helm]# wget https://get.helm.sh/helm-v3.14.0-linux-amd64.tar.gz [rootk8s-master01 helm]# tar -zxvf helm-v3.14.0-linux-amd64.tar.gz [rootk8s-master01 helm]# cd linux-amd64/ [rootk8s-master01 linux-amd64]# cp helm /usr/local/bin/ [rootk8s-master01 linux-amd64]# echo source (helm completion bash) ~/.bashrc [rootk8s-master01 linux-amd64]# source ~/.bashrc2.2、chart库配置做完上述设置后即可使用helm search搜索官方helm hub chart库helm search hub nginx添加第三方Chart库helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts helm repo add bitnami https://charts.bitnami.com/bitnami查看Chart库helm repo list从仓库中查找指定chart的名字helm search repo nginx2.3、Helm命令命令字中文释义作用completion完成生成特定Shell的自动补全脚本create创建使用给定的名称创建新图表dependency依赖管理图表的依赖关系env环境Helm客户端环境信息get获取下载已命名发布的扩展信息help帮助关于任何命令的帮助history历史获取发布历史记录install安装安装图表lint检查检查图表可能存在的问题list列表列出发布package打包将图表目录打包成图表存档plugin插件安装、列出或卸载Helm插件pull拉取从存储库下载图表并可选在本地目录中解包push推送将图表推送到远程存储库registry注册表登录或注销注册表repo仓库添加、列出、删除、更新和索引图表存储库rollback回滚将发布回滚到先前版本search搜索在图表中搜索关键字show显示显示图表的信息status状态显示指定发布的状态template模板本地渲染模板test测试运行发布的测试uninstall卸载卸载发布upgrade升级升级发布verify验证验证给定路径的图表已签名并且有效version版本打印客户端版本信息三、Helm Chart 详解3.1、chart目录结构# 通过helm create命令创建一个新的chart包 [rootk8s-master01 helm]# helm create nginx Creating nginx [rootk8s-master01 nginx]# tree . ├── charts ├── Chart.yaml ├── templates │ ├── deployment.yaml │ ├── _helpers.tpl │ ├── hpa.yaml │ ├── ingress.yaml │ ├── NOTES.txt │ ├── serviceaccount.yaml │ ├── service.yaml │ └── tests │ └── test-connection.yaml └── values.yaml ​ 3 directories, 10 files ####目录结构解析#### nginx/ ├── charts #依赖其他包的charts文件 ├── Chart.yaml # 该chart的描述文件,包括ico地址,版本信息等 ├── templates # #存放k8s模板文件目录 │ ├── deployment.yaml # 创建k8s资源的yaml 模板 │ ├── _helpers.tpl # 下划线开头的文件,可以被其他模板引用 │ ├── hpa.yaml # 弹性扩缩容配置服务资源CPU 内存 │ ├── ingress.yaml # ingress 配合service域名访问的配置 │ ├── NOTES.txt # 说明文件,helm install之后展示给用户看的内容 │ ├── serviceaccount.yaml # 服务账号配置 │ ├── service.yaml # kubernetes Serivce yaml 模板 │ └── tests # 测试模块 │ └── test-connection.yaml └── values.yaml # 给模板文件使用的变量3.2、Chart.yamlapiVersion: # chart API 版本信息, 通常是 v1 (必须) name: # chart 的名称 (必须) version: # chart 包的版本 (必须) kubeVersion: # 指定 Kubernetes 版本 (可选) type: # chart类型 可选 description: # 对项目的描述 (可选) keywords: - # 有关于项目的一些关键字 (可选) home: # 项目 HOME 页面的 URL 地址 (可选) sources: - # 项目源码的 URL 地址 (可选) dependencies: # chart 必要条件列表 可选 - name: # chart名称 (nginx) version: # chart版本 (1.2.3) repository: # 可选仓库URL (https://example.com/charts) 或别名 (repo-name) condition: # 可选 解析为布尔值的yaml路径用于启用/禁用chart (e.g. subchart1.enabled ) tags: # 可选 - # 用于一次启用/禁用 一组chart的tag import-values: # 可选 - # ImportValue 保存源值到导入父键的映射。每项可以是字符串或者一对子/父列表项 alias: # 可选 chart中使用的别名。当你要多次添加相同的chart时会很有用 maintainers: # 可选维护者信息 - name: # 维护者的名称 email: # 维护者的邮件地址 url: # 维护者的个人主页 engine: gotpl # 模板引擎的名称可选默认为 gotpl icon: # 可选指定 chart 图标的 SVG 或 PNG 图像的 URL appVersion: # 应用程序包含的版本 deprecated: # 可选使用布尔值该 chart 是否被废弃 annotations: example: # 按名称输入的批注列表 可选.从 v3.3.2不再允许额外的字段。推荐的方法是在annotations中添加自定义元数据。每个 chart 都必须有个版本号version。版本必须遵循 语义化版本 2 标准。不像经典 Helm Helm v2 以及后续版本会使用版本号作为发布标记。仓库中的包通过名称加版本号标识。比如 nginx chart 的版本字段 version: 1.2.3 按照名称被设置为nginx-1.2.3.tgz三、helm部署案例部署Nginx应用[rootk8s-master01 nginx-helm]# helm pull bitnami/nginx --version 15.3.5 [rootk8s-master01 nginx-helm]# ls nginx-15.3.5.tgz [rootk8s-master01 nginx-helm]# tar xf nginx-15.3.5.tgz [rootk8s-master01 nginx-helm]# ls nginx nginx-15.3.5.tgz [rootk8s-master01 nginx-helm]# cd nginx [rootk8s-master01 nginx]# vim values.yaml 532 service: 533 ## param service.type Service type 534 ## 535 type: ClusterIP 536 ## param service.ports.http Service HTTP port 537 ## param service.ports.https Service HTTPS port 538 ## 539 ports: 540 http: 80 541 https: 443 ###安装chart### [rootk8s-master01 nginx]# helm install nginx-server . NAME: nginx-server LAST DEPLOYED: Sat Feb 3 15:57:33 2024 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: CHART NAME: nginx CHART VERSION: 15.3.5 APP VERSION: 1.25.3 ** Please be patient while the chart is being deployed ** NGINX can be accessed through the following DNS name from within your cluster: nginx-server.default.svc.cluster.local (port 80) To access NGINX from outside the cluster, follow the steps below: 1. Get the NGINX URL by running these commands: export SERVICE_PORT$(kubectl get --namespace default -o jsonpath{.spec.ports[0].port} services nginx-server) kubectl port-forward --namespace default svc/nginx-server ${SERVICE_PORT}:${SERVICE_PORT} echo http://127.0.0.1:${SERVICE_PORT} ####查看pod和service### [rootk8s-master01 nginx]# kubectl get deployments.apps NAME READY UP-TO-DATE AVAILABLE AGE nginx-deploy 3/3 3 3 23h nginx-deploy1 3/3 3 3 22h nginx-deploy2 3/3 3 3 22h nginx-server 1/1 1 1 56s [rootk8s-master01 nginx]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx-deploy-5f87d95c-7ph78 1/1 Running 1 (151m ago) 23h nginx-deploy-5f87d95c-dswvq 1/1 Running 1 (151m ago) 23h nginx-deploy-5f87d95c-vk9vg 1/1 Running 1 (151m ago) 23h nginx-deploy1-c8d58b5c7-7dfrd 1/1 Running 1 (151m ago) 22h nginx-deploy1-c8d58b5c7-d2hd7 1/1 Running 1 (151m ago) 22h nginx-deploy1-c8d58b5c7-pfvhn 1/1 Running 1 (151m ago) 22h nginx-deploy2-db98bd9d9-2jl74 1/1 Running 1 (151m ago) 22h nginx-deploy2-db98bd9d9-h67n6 1/1 Running 1 (151m ago) 22h nginx-deploy2-db98bd9d9-wfcmw 1/1 Running 1 (151m ago) 22h nginx-server-ff5765f8-4wbms 1/1 Running 0 2m5s pod-controller-qk5jl 1/1 Running 1 (151m ago) 19h pod-controller-scsxt 1/1 Running 1 (151m ago) 19h [rootk8s-master01 nginx]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.10.0.1 none 443/TCP 14d nginx-server ClusterIP 10.10.127.16 none 80/TCP 2m32s nginx-svc ClusterIP 10.10.83.76 none 80/TCP 23h nginx-svc1 LoadBalancer 10.10.168.131 192.168.115.167 80:31261/TCP 22h nginx-svc2 NodePort 10.10.14.245 none 80:31110/TCP 22h ####测试访问### [rootk8s-master01 nginx]# curl 10.10.127.16 !DOCTYPE html html head titleWelcome to nginx!/title style html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } /style /head body h1Welcome to nginx!/h1 pIf you see this page, the nginx web server is successfully installed and working. Further configuration is required./p pFor online documentation and support please refer to a hrefhttp://nginx.org/nginx.org/a.br/ Commercial support is available at a hrefhttp://nginx.com/nginx.com/a./p pemThank you for using nginx./em/p /body /html四、升级与回滚修改配置文件[rootk8s-master01 nginx]# vim values.yaml 123 replicaCount: 3 124 ## param revisionHistoryLimit The number of old history to retain to allow rollback 125 ##升级[rootk8s-master01 nginx]# helm upgrade nginx-server .查看升级结果[rootk8s-master01 nginx]# kubectl get pod [rootk8s-master01 nginx]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx-deploy-5f87d95c-7ph78 1/1 Running 1 (166m ago) 23h nginx-deploy-5f87d95c-dswvq 1/1 Running 1 (166m ago) 23h nginx-deploy-5f87d95c-vk9vg 1/1 Running 1 (166m ago) 23h nginx-deploy1-c8d58b5c7-7dfrd 1/1 Running 1 (166m ago) 23h nginx-deploy1-c8d58b5c7-d2hd7 1/1 Running 1 (166m ago) 23h nginx-deploy1-c8d58b5c7-pfvhn 1/1 Running 1 (166m ago) 23h nginx-deploy2-db98bd9d9-2jl74 1/1 Running 1 (166m ago) 22h nginx-deploy2-db98bd9d9-h67n6 1/1 Running 1 (166m ago) 22h nginx-deploy2-db98bd9d9-wfcmw 1/1 Running 1 (166m ago) 22h nginx-server-ff5765f8-4p6sh 1/1 Running 0 31s nginx-server-ff5765f8-4wbms 1/1 Running 0 16m nginx-server-ff5765f8-lnkkg 1/1 Running 0 31s查看记录[rootk8s-master01 nginx]# helm history nginx-server REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION 1 Sat Feb 3 15:57:33 2024 superseded nginx-15.3.5 1.25.3 Install complete 2 Sat Feb 3 16:13:44 2024 deployed nginx-15.3.5 1.25.3 Upgrade complete回滚[rootk8s-master01 nginx]# helm rollback nginx-server 1验证回滚[rootk8s-master01 nginx]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx-deploy-5f87d95c-7ph78 1/1 Running 1 (170m ago) 23h nginx-deploy-5f87d95c-dswvq 1/1 Running 1 (170m ago) 23h nginx-deploy-5f87d95c-vk9vg 1/1 Running 1 (170m ago) 23h nginx-deploy1-c8d58b5c7-7dfrd 1/1 Running 1 (170m ago) 23h nginx-deploy1-c8d58b5c7-d2hd7 1/1 Running 1 (170m ago) 23h nginx-deploy1-c8d58b5c7-pfvhn 1/1 Running 1 (170m ago) 23h nginx-deploy2-db98bd9d9-2jl74 1/1 Running 1 (170m ago) 22h nginx-deploy2-db98bd9d9-h67n6 1/1 Running 1 (170m ago) 22h nginx-deploy2-db98bd9d9-wfcmw 1/1 Running 1 (170m ago) 22h nginx-server-ff5765f8-lnkkg 1/1 Running 0 4m44s御载[rootk8s-master01 nginx]# helm uninstall nginx-server
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

酷炫网站设计风格宁波公司建设网站

教育机构合作项目:共建TensorFlow教学实验室 在人工智能技术加速渗透各行各业的今天,高校和职业培训机构正面临一个共同挑战:如何让学生真正掌握“能用、好用、可用”的AI技能?课堂上讲授的理论知识往往难以匹配企业真实项目中的…

张小明 2025/12/31 0:56:22 网站建设

网站的域名空间北京模型设计制作

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 制作一个交互式Redis Lua脚本学习工具,从最简单的Hello World脚本开始,逐步引导用户完成:1) 变量声明 2) 调用Redis命令 3) 返回值处理。每个步骤…

张小明 2026/1/5 18:27:48 网站建设

在哪个网站做ppt模板赚钱网站公司怎么做业务

1.实验背景在网络攻防中,“远程控制”是攻击者获取权限后的重要阶段WebShell(网页后门)实现这一目标的常见手段之一。本次实验旨在通过最基础的PHP代码,理解“一句话木马”的工作原理,并演示如何通过Web请求在目标服务…

张小明 2025/12/31 6:07:27 网站建设

做详情页的网站武威市住房和城乡建设局网站

MRiLab数值磁共振成像仿真平台:完整使用指南 【免费下载链接】MRiLab A Numerical Magnetic Resonance Imaging (MRI) Simulation Platform 项目地址: https://gitcode.com/gh_mirrors/mr/MRiLab MRiLab是一款专业的数值磁共振成像仿真平台,为磁共…

张小明 2026/1/1 5:05:23 网站建设

网站 工作室东城网站建设

第一章:Dify工作流依赖检查概述在构建基于 Dify 的自动化工作流时,确保各节点之间的依赖关系正确无误是保障流程稳定运行的关键环节。依赖检查机制能够识别节点间的输入输出匹配性、资源可用性以及执行顺序的合理性,从而避免因配置错误导致的…

张小明 2026/1/10 18:20:01 网站建设

做暖暖XO网站接单做一个网站多少钱

Playnite扩展集合:30免费插件彻底革新你的游戏库管理体验 【免费下载链接】PlayniteExtensionsCollection Collection of extensions made for Playnite. 项目地址: https://gitcode.com/gh_mirrors/pl/PlayniteExtensionsCollection 还在为混乱的游戏库而烦…

张小明 2026/1/1 2:38:03 网站建设