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

德国设计网站北辰做网站公司

德国设计网站,北辰做网站公司,几级英语可以做外贸网站seo,网站做抢红包活动广告语大家好#xff0c;欢迎来到《云原生核心技术》系列的最终章#xff01; 我们一起走过了漫长而充实的旅程。从 Docker 的集装箱#xff0c;到 K8s 这座自动化的数字港口#xff1b;从部署单个 Pod#xff0c;到构建复杂的有状态应用。现在#xff0c;我们站在了实现全自动…大家好欢迎来到《云原生核心技术》系列的最终章 我们一起走过了漫长而充实的旅程。从 Docker 的集装箱到 K8s 这座自动化的数字港口从部署单个 Pod到构建复杂的有状态应用。现在我们站在了实现全自动化的最后一站。 在上一篇中我们理解了 CI/CD 的核心理念——那条连接开发与运维、通往高效与可靠的自动化高速公路。今天我们不再纸上谈兵而是要亲手铺设这条公路的每一块砖石。 我们将使用一个强大且整合度极高的工具——GitLab CI/CD为我们第十篇中的 Spring Boot MySQL Redis 应用项目打造一条从代码提交到自动部署至 Kubernetes 的完整流水线。 读完并实践本篇文章你将获得一项在现代软件工程中极具价值的技能将 DevOps 思想落地实现应用的自动化、可靠化交付。 准备好让我们开始最后的施工为这个系列画上一个完美的句号 第一步环境准备与规划 在开始之前请确保你已经拥有 一个 GitLab 账号和项目你可以使用 GitLab.com 的免费版或者自建的 GitLab 实例。将我们第十篇的 Spring Boot 项目代码推送到这个 GitLab 仓库中。一个运行中的 K8s 集群继续使用我们的 Minikube 集群。minikube start一个 Docker 镜像仓库比如 Docker Hub。你需要一个可以推送镜像的账号。kubectl 和 helm 命令行工具Helm 是 K8s 的包管理器我们将用它来方便地安装 GitLab Runner。 我们的流水线规划如下 test 阶段运行 Maven 测试确保代码质量。build 阶段使用 Docker 构建 Spring Boot 应用的镜像。push 阶段将构建好的镜像推送到 Docker Hub。deploy 阶段使用 kubectl 命令更新 K8s 中对应 Deployment 的镜像版本触发滚动更新。 第二步在 K8s 中安装 GitLab Runner GitLab Runner 是执行 .gitlab-ci.yml 文件中定义任务的代理程序。最云原生的方式就是把它直接安装在我们的 K8s 集群里。 获取 Runner 注册信息 打开你的 GitLab 项目在左侧导航栏找到 Settings - CI/CD。展开 Runners 部分。你会看到一个 URL (https://gitlab.com/) 和一个注册令牌 (registration token)类似 GR13489...。把这两项复制下来后面会用到。 使用 Helm 安装 GitLab Runner 添加 GitLab Helm 仓库helm repo add gitlab https://charts.gitlab.io helm repo update创建一个 values.yaml 配置文件用于定制我们的 Runner。# values.yaml gitlabUrl: https://gitlab.com/ # 填入你复制的 GitLab URL runnerRegistrationToken: GR13489... # 填入你复制的注册令牌# Runner 的配置 runners:# Runner 的标签后面在 .gitlab-ci.yml 中会用它来选择 Runnertags: kubernetes,minikube执行 Helm 安装命令helm install --namespace gitlab-runner --create-namespace gitlab-runner \ -f values.yaml \ gitlab/gitlab-runner验证安装稍等片刻然后检查 Pod 是否在 gitlab-runner 命名空间中成功运行。kubectl get pods -n gitlab-runner # 你应该能看到一个名为 gitlab-runner-gitlab-runner-xxxx 的 Pod 正在运行回到 GitLab 项目的 Runner 设置页面你应该能看到一个新的 Runner 已经注册成功并显示为绿色可用状态。 第三步配置 GitLab CI/CD 变量 为了安全我们不能把敏感信息如 Docker Hub 密码、K8s 凭证直接写在 .gitlab-ci.yml 文件里。我们需要将它们存储在 GitLab 的 CI/CD 变量中。 进入 Settings - CI/CD展开 Variables 部分。添加以下变量 Docker Hub 凭证 DOCKER_USER: 你的 Docker Hub 用户名。DOCKER_PASS: 你的 Docker Hub 密码或访问令牌 (Access Token)。(建议设置为 Masked 类型) K8s 集群凭证 (kubeconfig) 我们需要让 GitLab Runner 能够访问我们的 Minikube 集群。在你的本地电脑上找到 ~/.kube/config 文件并将其内容完整复制下来。在 GitLab 变量设置中创建一个新变量 Key: KUBE_CONFIGType: File (这很重要它会将变量内容作为文件提供给 Runner)Value: 粘贴你刚才复制的 kubeconfig 全部内容。 第四步编写 .gitlab-ci.yml定义流水线 这是最核心的一步。在你的 Spring Boot 项目根目录下创建 .gitlab-ci.yml 文件内容如下 # .gitlab-ci.yml# 定义流水线的各个阶段任务会按此顺序执行 stages:- test- build- push- deploy# 定义一些全局变量 variables:# Maven 镜像用于测试阶段MAVEN_IMAGE: maven:3.8-openjdk-17# Docker 镜像名称。$CI_PROJECT_NAME 是 GitLab 预定义变量代表项目名IMAGE_NAME: $CI_REGISTRY_USER/$CI_PROJECT_NAME# 镜像标签。$CI_COMMIT_SHORT_SHA 是提交的短哈希值确保每次构建的标签唯一IMAGE_TAG: $CI_COMMIT_SHORT_SHA# --- 阶段一测试 --- maven_test:stage: testimage: $MAVEN_IMAGEscript:- echo Running Maven tests...- ./mvnw testtags:- kubernetes # 指定使用我们安装在 K8s 里的 Runner# --- 阶段二构建 Docker 镜像 --- docker_build:stage: build# 使用 Docker-in-Docker (dind) 镜像以便在容器内执行 Docker 命令image: docker:20.10.16services:- docker:20.10.16-dindscript:- echo Building Docker image...- docker build -t $IMAGE_NAME:$IMAGE_TAG .# 保存镜像为 tar 文件以便在后续阶段使用- docker save $IMAGE_NAME:$IMAGE_TAG image.tar# artifacts 用于在不同阶段之间传递文件artifacts:paths:- image.tartags:- kubernetes# --- 阶段三推送 Docker 镜像 --- docker_push:stage: pushimage: docker:20.10.16services:- docker:20.10.16-dind# 需要上一个阶段构建的镜像文件needs:- docker_buildscript:- echo Pushing Docker image...# 加载镜像文件- docker load image.tar# 登录 Docker Hub使用我们之前定义的 CI/CD 变量- echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin- docker push $IMAGE_NAME:$IMAGE_TAGtags:- kubernetes# --- 阶段四部署到 Kubernetes --- deploy_to_k8s:stage: deploy# 使用一个包含 kubectl 的镜像image:name: bitnami/kubectl:latestentrypoint: []needs:- docker_pushscript:- echo Deploying to Kubernetes...# 配置 kubectl让它使用我们通过变量传入的 KUBE_CONFIG- export KUBECONFIG$KUBE_CONFIG# 使用 kubectl set image 命令来更新 Deployment 的镜像触发滚动更新# 将 springboot-app-deployment 替换为你在 K8s 中实际的 Deployment 名称- kubectl set image deployment/springboot-app-deployment springboot-app$IMAGE_NAME:$IMAGE_TAG- echo Deployment updated successfully!tags:- kubernetes请注意 将 springboot-app-deployment 和容器名 springboot-app 替换成你在第十篇中使用的实际名称。$CI_REGISTRY_USER 默认是你的 GitLab 用户名你也可以硬编码为你的 Docker Hub 用户名。 第五步触发流水线见证自动化魔法 现在一切准备就绪。 提交并推送代码将包含 .gitlab-ci.yml 的项目推送到你的 GitLab 仓库。 git add . git commit -m feat: Add GitLab CI/CD pipeline for automated deployment git push观察流水线 立刻打开你的 GitLab 项目页面进入 CI/CD - Pipelines。你会看到一个新的流水线被触发了状态为 running。点击这个流水线你可以看到我们定义的四个阶段 test, build, push, deploy 正在依次执行。你可以点击每一个 job 查看详细的实时日志输出。 验证部署 当 deploy 阶段成功完成后打开你的终端。检查你的 Deployment你会看到它的镜像已经被更新为最新的版本带有新的 commit 哈希标签。kubectl describe deployment springboot-app-deployment检查 Pod你会看到 K8s 已经完成了滚动更新新的 Pod 正在运行。kubectl get pods现在尝试修改一下 Spring Boot 代码中的某个字符串然后再次 git push。你将再次看到整个自动化流程被触发几分钟后你的线上应用就被无缝地更新了 总结与展望你的云原生之旅才刚刚开始 恭喜你你已经成功地走完了从 Docker 到 Kubernetes 再到自动化 CI/CD 的全过程 回顾这12篇的旅程我们从最基础的概念开始一步一个脚印最终搭建起了一套现代、高效、自动化的云原生应用交付系统。你不再是一个简单的代码编写者或服务器管理者而是一个能够掌控从代码到生产完整生命周期的现代工程师。 但这并不是终点而是一个全新的起点。 云原生的世界浩瀚无垠还有更多激动人心的领域等待你去探索 服务网格 (Service Mesh): 使用 Istio, Linkerd 来实现更高级的流量管理、可观测性和安全性。可观测性 (Observability): 深入学习 Prometheus, Grafana, Jaeger打造全方位的监控、日志和追踪系统。Serverless/FaaS: 探索 Knative, OpenFaaS让你的应用真正做到按需运行极致弹性。GitOps: 学习 ArgoCD, Flux将 Git 作为管理基础设施和应用的唯一真实来源。 希望这个系列能为你打开一扇通往云原生世界的大门。保持好奇持续学习愿你在这片广阔的数字海洋中乘风破浪扬帆远航 感谢你的一路相伴我们的系列到此结束。江湖再见
http://www.pierceye.com/news/758212/

相关文章:

  • 东莞市住房建设局网站编程能干什么
  • asp做一个简单网站推广图片素材
  • 新网站一直不被收录wordpress 视频 广告
  • 网站建设费账务处理一个小胖子从网站做任务的网站故事
  • 国外被墙网站东营建设信息网最新消息
  • iphone下载网页视频北京百度seo排名公司
  • 怎么自己做网站免费的衡阳seo网站推广
  • 一键生成论文的网站做亚马逊有哪些网站可以清货
  • 一屏网站模板下载 迅雷下载 迅雷下载地址网站建设合并但与那个
  • 营销型网站四大功能吉林市网站制作
  • 如何制作钓鱼网站网页制作基础教程9787121095306教案
  • 专业定制网站企业吉林省住房城乡建设厅网站首页
  • 免费高清素材网站方维网络科技有限公司
  • 长春行业网站重庆智能建站模板
  • 北湖区网站建设公司wordpress的cute主题
  • 沈阳网站建设 景乔科技网站制作杭州
  • 网站维护工程师月薪多少精品网站建设公
  • 永久免费企业网站申请网站开发主框架一般用什么布局
  • 网站做非经营性广告需备案python免费看电影的应用
  • 网站分哪些种类自己做网站模版
  • 汪峰做的音乐网站长沙制作公园仿竹护栏实体厂家
  • 深圳专业网站建设公司排名好的h5网站模板
  • h5做网站教程网店营销的推广方法有哪些
  • 网站关键词快速排名工具wordpress子主题
  • 做百度网站那家好google 网站质量问题
  • 网站建设维护书网站资料清单
  • 网站建设公司 深圳信科网站维护计划
  • 做网站用什么语言比较简单网站seo优化总结
  • 四川省工程建设信息网站南京好的网站设计公司
  • 城市建设单招网站合肥哪个公司做网站好