长沙做网站公司只做鞋子的网站

张小明 2026/1/19 20:25:06
长沙做网站公司,只做鞋子的网站,版面设计教案,手机网站 jquery 特效文章目录前言一、介绍1. 概念2. 优势3. 云原生技术体系微服务容器化DevOps持续交付4. 十二要素应用程序5. 总结二、实战1. 整体流程概览#xff08;执行顺序#xff09;2. 各组件详解与参数传递机制1. **Dockerfile**#xff1a;定义容器镜像内容2. **Kubernetes Deployment…文章目录前言一、介绍1. 概念2. 优势3. 云原生技术体系微服务容器化DevOps持续交付4. 十二要素应用程序5. 总结二、实战1. 整体流程概览执行顺序2. 各组件详解与参数传递机制1. **Dockerfile**定义容器镜像内容2. **Kubernetes Deployment**定义应用部署策略(1) **镜像标签最关键参数**(2) **环境变量覆盖 Dockerfile 中的 ENV**(3) **启动参数 / 命令**3. **CI/CD 流水线如 Jenkins、GitLab CI、GitHub Actions、Tekton**▶ 步骤 1定义参数Pipeline Parameters▶ 步骤 2构建镜像传递 ARG▶ 步骤 3部署到 K8s传递 IMAGE_TAG 到 Deployment方式 A使用 sed 替换简单场景方式 B使用 **Helm**推荐方式 C使用 **Kustomize**3. 参数传递全景图4. 最佳实践5. 示例完整 GitLab CI 流水线片段前言云原生‌云原生就是在云中构建、运行应用程序的一套完整的技术体系和方法论。 这里的技术体系和方法论就目前来说指的是微服务容器化DevOps持续交付。一、介绍1. 概念CNCFCloud Native Computing Foundation云原生计算基金会是云原生领域的权威组织其对云原生提供了官方定义云原生技术使组织能够在新式动态环境如公有云、私有云和混合云中构建和运行可缩放的应用程序。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。2. 优势对于应用程序来说 云原生可以赋予其更快速开发上线的能力。应用程序可以更实时、更稳定、更频繁地被部署而无需完全重新部署。并且还可以针对特定的服务进行扩缩容以节省资源。对于开发者来说云原生提供的一些开箱即用的能力比如服务治理能力、DveOps可以帮助我们更高效地进行开发。你不需要再花精力搭建复杂的持续交付环境敏捷基础设施如 K8S、Docke开箱即用自带一站式微服务开发解决方案。3. 云原生技术体系微服务单体架构由于承载的业务庞大服务内部逻辑变得复杂扩展性非常差。这个时候我们往往需要将单体架构拆分为整体更松散模块更内聚的微服务架构。微服务架构的优势就是服务解耦高内聚易变更。另外结合DDD领域驱动设计来进行微服务划分则是大型应用的主流架构设计方式。每个微服务都在运行在独立的线程下它们之间通过轻量级通信机制通常是 REST进行通信。并且各个微服务可以使用不同的技术栈不同的存储技术。各个微服务独立部署对于单个微服务的修改我们仅仅需要重新部署对应的微服务而不需要重新部署整个系统。并且系统中不同的微服务访问压力不同我们可以对具体的微服务进行扩容缩容这样更节省资源节约成本。微服务架构下服务治理是不得不面临的一个难题。业界缺少一个多语言的、框架无关、支持异构基础设施的服务治理标准实现。网关是整个微服务架构的流量入口负责认证授权、请求分发、认证授权、限流、API 管 理、负载均衡等工作是微服务架构中非常重要的一个组件。ServiceMeshService Mesh(服务网格) 是 CNCF 推广的新一代微服务架构是微服务时代的 TCP 协议致力于解决微服务架构下的服务管理问题比如服务发现、负载均衡、服务监控提供开箱即用的运维能力比如金丝雀发布、访问控制。你可以将 Service Mesh 看作是为了简化开发工作专门抽象出来的一层通常作为透明的一层接入到现有的分布式应用程序里。服务网格的实现依赖于 Sidecar。这是一轻量级的网络代理与应用程序部署在一起但对应用程序来说是透明。所有应用程序间的流量都会通过 Sidecar这样的话它就可以对所有流入与流出的网络请求进行拦截处理进而实现服务发现、负载均衡、服务监控、金丝雀发布等功能。如下图所示Sidecar 连接成网状结构组成了 Service Mesh。Istio 和 Linkerd 是目前比较流行的服务网格解决方案都是开源软件。容器化没有容器之前我们本地部署正常的应用程序到了生产环境很容易出现问题经常修复各种部署错误就要花费数天的时间。有了容器化技术之后就不存在这种问题了。容器通过操作系统虚拟化的方式为应用程序提供了环境兼容性和平台无关性。容器化技术是云原生发展的基石应用最为广泛的容器引擎Docker提出一次构建到处运行的口号。容器平台和工具有很多Docker 占据了最大长市场份额已经成为打包、部署和运行云原生应用程序的事实上的标准。容器化为微服务提供实施保障起到应用隔离作用K8s是容器编排系统用于容器管理扩缩容容器间的负载均衡。Kubernetes对于一些大型的项目来说一个应用程序的部署可能会涉及到成千上万台容器。这个时候人工部署和管理容器就不太现实了。于是由 Google 主导孕育的 Kubernetes简称 K8s 就出现了它就是帮助我们来做这些事情的可以方便我们自动部署、扩缩和管理容器化的应用程序减少重复劳动和出错的可能性。K8s 被称为云原生时代的操作系统云原生应用的优势与其提供的功能息息相关。我们把一个有效的 Kubernetes 部署称为集群。你可以将 Kubernetes 集群视为两个部分控制平面容器编排层它暴露 API 和接口来定义、 部署容器和管理容器的生命周期。节点节点由控制平面管理。通常集群中会有若干个节点每个节点都是其自己的 Linux 环境并且可以是物理机或虚拟机。一个节点中通常运行有多个容器。为了提升节点资源利用率解决节点维护、资源规划等各种各样的运维问题部分云厂商在 Kubernetes 的基础上提供了自己的解决方案来解决这些问题就比如腾讯云新推出的TKE HouseKeeper 原生节点。HouseKeeper 在产品能力上有这些特点K8s 运维新范式提供基础设施声明式 API像管理 workload 一样管理节点可通过 kubernetes api、云 API、控制台三种方式管理节点自研智能运维系统支持操作系统/运行时/k8s 层面的故障检测和自动升级多维度助力用户降低运维负担结合主流云厂商内部云原生技术实践对操作系统、运行时、kubernetes 进行全方位参数调优和适配节点初始化稳定性显著增强DevOpsDevOps 是一种软件交付的理念和方法。从名字可以看出DevOps 是个组合词DevOps将开发Development和运维Operations合体。不过DevOps 所代表的理念和实践要比这广阔还包括测试等。DevOps是一个敏捷思维是一个沟通文化也是组织形式为云原生提供持续交付能力。DevOps 关注的是如何实现应用程序的全生命周期开发测试运维自动化管理从而实现更快速、更高质量、更频繁、更稳定的软件交付。DevOps 团队通常会使用微服务架构来构建应用程序借助于持续集成和持续部署CI/CD来实施 DevOps。持续交付持续交付Continuous Delivery, CD是 DevOps 实践中的核心理念之一目标是让软件在任何时刻都处于可安全、快速、可靠地发布到生产环境的状态。它强调自动化、质量内建和快速反馈是实现高效软件交付的关键能力。定义来自《持续交付》作者 Jez Humble David Farley持续交付是一种软件工程方法通过在短周期内完成软件的构建、测试和发布使软件可以随时可靠地部署到生产环境。持续交付不是工具而是一种能力。它通过自动化 质量内建 快速反馈让团队能够以低风险、高频率的方式向用户交付价值。4. 十二要素应用程序十二要素应用程序定义了构建一个优雅的互联网应用需要遵循的一些基本原则和方法论也被用来指导开发者构建专为云环境优化的应用程序。基于这些基本原则和方法论构建的系统可以快速部署适合云上部署、快速扩展可移植性和可维护性也增强不少。十二要素应用程序内容如下图所示。《超越十二要素应用》这本书补充了反映当今新式云应用程序设计的三个额外要素。5. 总结云原生就是在云中构建、运行应用程序的一套完整的技术体系和方法论。对于开发者来说云原生提供的一些开箱即用的能力可以帮助我们更高效地进行开发。你不需要再花精力搭建复杂的持续交付环境敏捷基础设施如 K8S、Docke开箱即用自带一站式微服务开发解决方案。在不久的将来掌握云原生技术会成为发者必备的能力之一。下面是云原生时代开发者必须掌握的一些能力微服务更适合云原生的一种架构模式ServiceMesh服务网格新一代微服务架构容器一次构建到处运行Kubernetes自动部署、扩缩和管理容器化的应用程序DevOps实现应用程序的全生命周期自动化管理十二要素应用程序指导开发者构建专为云环境优化的应用程序二、实战在现代云原生开发与交付流程中Dockerfile → Kubernetes Deployment → CI/CD流水线 构成了从代码到生产部署的核心链路。1. 整体流程概览执行顺序1. 开发者编写应用代码 Dockerfile ↓ 2. CI 流水线触发如 Git Push ├─ 构建镜像docker build -t ... ├─ 推送镜像到镜像仓库docker push ↓ 3. CD 流水线触发或与 CI 合并 ├─ 渲染 K8s Deployment YAML注入镜像标签等参数 ├─ kubectl apply -f deployment.yaml ↓ 4. Kubernetes 调度 Pod拉取镜像并运行容器✅ 关键点参数如镜像 tag、环境变量、资源限制等从流水线 → Deployment → 容器逐层传递。2. 各组件详解与参数传递机制1.Dockerfile定义容器镜像内容作用声明如何构建应用的运行环境。参数传递方式ARG构建时传入仅在构建阶段可用1ARG APP_VERSION1.0 2ENV VERSION$APP_VERSION构建命令1docker build --build-argAPP_VERSIONv2.1 -t myapp:v2.1.ENV设置容器运行时环境变量可被覆盖1ENV DB_HOSTlocalhost⚠️ARG不会保留在最终镜像中除非赋值给ENV而ENV会。2.Kubernetes Deployment定义应用部署策略作用声明 Pod 副本数、更新策略、容器配置等。参数注入方式(1)镜像标签最关键参数yaml编辑1spec: 2 template: 3 spec: 4 containers: 5 - name: app 6 image: registry.example.com/myapp:{{IMAGE_TAG}} # ← 需动态替换实际 YAML 中不能直接写{{}}需通过模板引擎如 Helm、Kustomize或脚本替换。(2)环境变量覆盖 Dockerfile 中的 ENVyaml编辑1env: 2 - name: DB_HOST 3 value: prod-db.internal 4 - name: LOG_LEVEL 5 valueFrom: 6 configMapKeyRef: 7 name: app-config 8 key: log_level(3)启动参数 / 命令yaml编辑1args: [--port, 8080, --debug] 2# 或 3command: [/app/start.sh]3.CI/CD 流水线如 Jenkins、GitLab CI、GitHub Actions、Tekton作用自动化构建、测试、部署。参数定义与传递流程▶ 步骤 1定义参数Pipeline Parametersyaml编辑1# GitLab CI 示例 (.gitlab-ci.yml) 2variables: 3 IMAGE_TAG: $CI_COMMIT_SHORT_SHA # 自动从 Git 提取 4 APP_ENV: production▶ 步骤 2构建镜像传递 ARGbash编辑1docker build --build-arg GIT_COMMIT$CI_COMMIT_SHA -t my-registry/app:$IMAGE_TAG . 2docker push my-registry/app:$IMAGE_TAG▶ 步骤 3部署到 K8s传递 IMAGE_TAG 到 Deployment方式 A使用sed替换简单场景1seds/{{IMAGE_TAG}}/$IMAGE_TAG/gdeployment.yaml|kubectl apply -f -方式 B使用Helm推荐1helm upgrade --install myapp ./chart\2--set image.tag$IMAGE_TAG\3--setenv$APP_ENV\4--namespace prodHelm values.yaml 中定义默认值--set覆盖。方式 C使用Kustomize1# kustomization.yaml2images:3- name: myapp4newTag:$IMAGE_TAG56# 流水线中7kustomize editsetimagemyappmy-registry/app:$IMAGE_TAG8kubectl apply -k.3. 参数传递全景图层级参数来源传递目标机制流水线Git Commit、用户输入、环境变量Docker Build--build-argDockerfileARG→ENV镜像元数据构建时固化流水线构建后的镜像 tagK8s Deployment模板替换 / Helm / KustomizeDeploymentYAML 中的env/args容器运行时Kubernetes 注入到 Pod容器环境变量、命令行参数应用进程应用读取os.environ或sys.argv4. 最佳实践镜像标签使用 Git Commit SHA保证可追溯性如myapp:abc1234避免使用latest敏感参数不硬编码使用 K8sSecrets/ConfigMaps流水线中通过 Vault 或外部密钥管理注入Deployment 模板化优先使用Helm或Kustomize避免手写 YAML参数分层管理全局参数如 registry 地址→ 流水线变量环境特有参数如 DB 地址→ Helm values-per-env 或 Kustomize overlays验证部署结果流水线最后加入健康检查如kubectl rollout status5. 示例完整 GitLab CI 流水线片段stages:-build-deploybuild-image:stage:buildscript:-docker build--build-arg COMMIT_SHA$CI_COMMIT_SHA-t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA .-docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHAdeploy-prod:stage:deployscript:-helm upgrade--install myapp ./helm-chart \--set image.repository$CI_REGISTRY_IMAGE \--set image.tag$CI_COMMIT_SHORT_SHA \--set environmentproduction \--namespace prodonly:-main如有具体工具链如 Jenkins Helm、Argo CD、Tekton 等或语言框架如 Spring Boot、Node.js需求则需要进一步细化参数传递方案。本文的引用仅限自我学习如有侵权请联系作者删除。参考知识一文讲明白什么是云原生有什么优势云原生技术详解
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做网站抬头网站好玩新功能

智能学习助手3分钟快速配置指南:实现职业教育时间管理自动化 【免费下载链接】hcqHome 简单好用的刷课脚本[支持平台:职教云,智慧职教,资源库] 项目地址: https://gitcode.com/gh_mirrors/hc/hcqHome 在职业教育学习过程中,如何有效管理在线课程学…

张小明 2026/1/17 16:46:08 网站建设

二手房网站建设做网站要钱嘛

第一章:为什么顶尖开发者都在关注thudm/Open-AutoGLM?在人工智能快速演进的当下,thudm/Open-AutoGLM 凭借其开源性、高效推理能力和对多模态任务的深度支持,迅速成为顶尖开发者关注的焦点。该项目由清华大学团队推出,旨…

张小明 2026/1/17 16:46:09 网站建设

岳阳做网站费用如何做网站的需求分析

第一章:AI视频创作革命的背景与Open-AutoGLM的崛起 人工智能正以前所未有的速度重塑内容创作领域,尤其在视频生成方向,传统依赖人工脚本、拍摄与剪辑的流程正在被自动化、智能化的AI系统取代。这一变革的核心驱动力来自多模态大模型的发展&am…

张小明 2026/1/17 16:46:09 网站建设

东莞网站设计建设如何用oss做视频网站

控制台日志提示:Error parsing Mapper XML.The XML location is XXX.xml Cause: org.apache.ibatis.builder. BuilderException: Error resolving class.....这种提示:一般是maven打包编译的问题是全量和增量打包问题全量打包 mvn clean package 增量打包 mvn package 出现这种…

张小明 2026/1/17 16:46:12 网站建设

唐山做网站建设公司南京软件定制

腾讯混元1.8B开源:轻量化AI的高效推理新选择 【免费下载链接】Hunyuan-1.8B-Pretrain 腾讯开源混元大语言模型系列中的高效预训练模型,具备1.8B参数规模,支持256K超长上下文与混合推理模式,适配从边缘设备到高并发服务器的广泛部署…

张小明 2026/1/17 16:46:12 网站建设