做盗文网站烟台网站建设薇企汇互联见效付款

张小明 2026/1/10 18:34:09
做盗文网站,烟台网站建设薇企汇互联见效付款,地区门户网站 wap app,wordpress 默认账号#x1f449; 这是一个或许对你有用的社群#x1f431; 一对一交流/面试小册/简历优化/求职解惑#xff0c;欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料#xff1a; 《项目实战#xff08;视频#xff09;》#xff1a;从书中学#xff0c;往事上…这是一个或许对你有用的社群 一对一交流/面试小册/简历优化/求职解惑欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料《项目实战视频》从书中学往事上“练”《互联网高频面试题》面朝简历学习春暖花开《架构 x 系统设计》摧枯拉朽掌控面试高频场景题《精进 Java 学习指南》系统学习互联网主流技术栈《必读 Java 源码专栏》知其然知其所以然这是一个或许对你有用的开源项目国产Star破10w的开源项目前端包括管理后台、微信小程序后端支持单体、微服务架构RBAC权限、数据权限、SaaS多租户、商城、支付、工作流、大屏报表、ERP、CRM、AI大模型、IoT物联网等功能多模块https://gitee.com/zhijiantianya/ruoyi-vue-pro微服务https://gitee.com/zhijiantianya/yudao-cloud视频教程https://doc.iocoder.cn【国内首批】支持 JDK17/21SpringBoot3、JDK8/11Spring Boot2双版本来源juejin.cn/post/7439403354056359947引子认识Docker与KubernetesDockerKubernetes实操1.开发Web应用2.创建Kubernetes集群3.创建阿里云容器镜像服务ACR4.配置GitHub仓库Secrets5.创建GitHub Actions工作流6.创建Kubernetes集群配置7.访问以及版本管理小结引子在许多小团队中开发人员不仅要编写应用代码还需要负责将应用部署到生产环境。对于没有专职运维人员的团队每次手动部署都不仅费时费力还容易出错。因此采用CI/CD持续集成/持续部署 来实现自动化部署成为了解决这一问题的最佳方式。本文将演示如何使用GitHub Actions和阿里云KubernetesACK来实现Java Web 应用的自动化部署。我们的目标是开发人员无需将精力耗费在运维任务上而是通过现成的云服务来简化部署过程。需要说明的是本文的核心目标是降低部署的运维成本因此选择了多个云服务来演示整个流程但在实际应用中大家可以根据团队的情况进行调整。例如如果团队有足够的精力也可以自行部署CI/CD工具如Jenkins、GitLab CI而Kubernetes 提供商的选择也非常多甚至可以自行搭建Kubernetes集群。本文的重点不在于具体工具的选择而在于对整个自动化部署流程的掌握。一旦理解了基本流程切换到其他工具或平台时上手速度会非常快因为它们的流程都大差不差的。基于 Spring Boot MyBatis Plus Vue Element 实现的后台管理系统 用户小程序支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能项目地址https://github.com/YunaiV/ruoyi-vue-pro视频教程https://doc.iocoder.cn/video/认识Docker与Kubernetes在正式开始操作前如果是第一次接触的同学可以先阅读下第二章节来对Docker与Kubernetes建立起一个认识Docker如果把一个应用程序比作一件商品那么Docker就像是为这件商品打包的“集装箱”。在没有Docker的年代开发人员在本地运行的应用往往在部署到服务器时会遇到各种问题比如依赖库不一致、操作系统版本不同等。就像你将一件精心制作的商品从一个国家运到另一个国家可能会因为不同的运输环境、气候条件等因素导致商品在到达目的地时无法正常使用。Docker就像是一个标准化的“集装箱”它能把你的应用程序和它需要的所有依赖打包在一起形成一个独立的“镜像”image。无论你是在开发环境、测试环境还是生产环境Docker镜像都能确保应用在每个环境中以相同的方式运行就像集装箱能在全球范围内标准化运输一样。它解决了“我本地运行没问题为什么服务器上就不行” 这个历史难题。用个例子说明一下你要制作一份美味的蛋糕并寄给朋友。没有Docker的话你只能把蛋糕装进一个普通的纸箱然后寄出去。结果朋友收到后发现蛋糕因为运输颠簸、天气变化变得面目全非。而使用Docker就相当于你把蛋糕放进一个坚固的保温集装箱确保在任何运输条件下蛋糕能保持新鲜、完整。无论你把这个蛋糕寄到哪里朋友收到的蛋糕都和你制作时一模一样。Kubernetes上文中提到Docker是打包应用的“集装箱”那么Kubernetes就是管理这些集装箱的“码头系统”。在实际生产环境中应用程序往往需要部署到多个服务器上或者称为节点还需要根据流量的变化灵活调整应用实例的数量。手动管理这些工作量大且容易出错就像手工管理码头上成百上千个集装箱一样效率低下。Kubernetes 的出现让这一切变得自动化和可控。它提供了一个强大的管理平台用来自动调度和管理运行中的 Docker容器。Kubernetes不仅能够帮你决定应用容器应该在哪台服务器上运行还能根据流量自动扩容或者缩容确保应用始终保持高可用性。再举个例子假设你经营一个全球连锁的快递公司每天都有成千上万的集装箱到达各个港口。如果没有一个智能的管理系统你需要手动决定每个集装箱应该放在哪个仓库、什么时候发货、运输中如何调度甚至在货物需求增加时你还得临时增加人手来处理这些集装箱。而Kubernetes就是这个智能的“码头管理系统”。它会根据你的需求自动分配集装箱到各个港口确保货物按时到达。如果某个港口的集装箱积压了它可以自动将多余的货物调度到别的港口保证高效运转。当货物需求增加时它甚至可以“雇佣”更多的卡车来处理这些集装箱——这就是Kubernetes的自动扩展功能。整体的架构与关系可以用这张图表示Docker将应用打包成标准化的容器确保在不同环境下都能一致运行。Kubernetes管理和调度这些容器自动分配资源、扩展应用并保证高可用性。基于 Spring Cloud Alibaba Gateway Nacos RocketMQ Vue Element 实现的后台管理系统 用户小程序支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能项目地址https://github.com/YunaiV/yudao-cloud视频教程https://doc.iocoder.cn/video/实操在上文中已经明确了我们本次所使用的服务这里再详细说明下每个服务所起的作用GitHub ActionsGitHub 的 CI/CD 工具帮助我们实现代码提交后的自动化流程。阿里云 KubernetesACK阿里云的托管 Kubernetes 服务。阿里云容器镜像服务ACRDocker 镜像仓库用于存储和管理 Docker 镜像。Spring Boot作为示例的 Java Web 应用框架。同时再对我们整个操作流程画图说明一下如下1.开发Web应用本篇的重点不在于应用所以我们用Spring Boot简单起个应用写个hello World的接口可以访问到就行主要代码如下RestController public class HelloController { GetMapping(/hello) public String hello() { return Hello World!; } }编写完成后先在本地启动测试下确保应用可以正常使用如下然后把它推送到Github仓库即可。2.创建Kubernetes集群直接登录阿里云控制台搜索ACK即可找到容器服务 Kubernetes如下我们这里只是演示越简单越好就买ACK托管版就可以了配置就选最便宜的然后一路下一步就行如下等待几分钟集群创建成功如下集群创建完成后进入集群的详情页面点击连接信息下载kubeconfig文件这个文件包含你的集群配置信息后续会用到它来访问集群。这里提一下我们要的是公网访问的配置文件如下3.创建阿里云容器镜像服务ACR我们需要一个存储Docker镜像的地方阿里云容器镜像服务ACR就是用来存储和管理 Docker 镜像的。在控制台搜索容器镜像服务如下这里创建个人实例即可如下点击 创建命名空间为镜像仓库创建一个命名空间如下创建完命名空间后再点击 创建镜像仓库如下创建完成后可以得到仓库的连接相关信息如下这些凭证将用于GitHub Actions登录ACR推送Docker 镜像。4.配置GitHub仓库Secrets接下来我们需要将阿里云的相关凭证添加到GitHub仓库的Secrets中这样GitHub Actions才能安全地访问阿里云的资源。首先打开你的 GitHub 仓库点击Settings然后选择左侧的Secrets and variables下的Actions再点击New repository secret如下然后添加相关的Secrets这里需要注意一下因为后续的配置需要用到它们所以这里的名称需要和后续的配置文件中保持一致否则读取不到打包会报错的如下ALIYUN_REGISTRY_USERNAME阿里云容器镜像服务ACR的用户名。ALIYUN_REGISTRY_PASSWORD阿里云容器镜像服务ACR的密码。ALIYUN_REGISTRY_URLACR 镜像仓库的登录地址。ALIYUN_NAMESPACEACR 命名空间。ALIYUN_REPO_NAMEACR 镜像仓库名称。ALIYUN_KUBECONFIG将之前下载的 kubeconfig 文件内容复制粘贴到这里用于后续 GitHub Actions 通过 kubectl 访问 Kubernetes 集群。5.创建GitHub Actions工作流接下来在项目的根目录中创建一个文件.github/workflows/ci-cd.ymlPs文件名随意目录必须一致并添加以下内容name: CI/CD for Spring Boot Hello World on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkoutv2 - name: Set up JDK 17 uses: actions/setup-javav2 with: distribution: temurin java-version: 17 - name: Build with Maven run: mvn clean package - name: Set up Docker Buildx uses: docker/setup-buildx-actionv2 - name: Log in to ACR run: | docker login \ --username${{ secrets.ALIYUN_REGISTRY_USERNAME }} \ ${{ secrets.ALIYUN_REGISTRY_URL }} \ --password${{ secrets.ALIYUN_REGISTRY_PASSWORD }} - name: Build and Push Docker image run: | # 构建本地镜像 docker build -t springboot-hello-world:latest . # 打标签 docker tag springboot-hello-world:latest ${{ secrets.ALIYUN_REGISTRY_URL }}/${{ secrets.ALIYUN_NAMESPACE }}/${{ secrets.ALIYUN_REPO_NAME }}:latest # 推送镜像 docker push ${{ secrets.ALIYUN_REGISTRY_URL }}/${{ secrets.ALIYUN_NAMESPACE }}/${{ secrets.ALIYUN_REPO_NAME }}:latest deploy: needs: build runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkoutv2 - name: Set up kubectl uses: azure/setup-kubectlv3 with: version: latest - name: Configure kubectl run: | mkdir -p $HOME/.kube echo ${{ secrets.ALIYUN_KUBECONFIG }} $HOME/.kube/config chmod 600 $HOME/.kube/config - name: Deploy to Kubernetes run: | kubectl set image deployment/springboot-hello-world springboot-hello-world${{ secrets.ALIYUN_REGISTRY_URL }}/${{ secrets.ALIYUN_NAMESPACE }}/${{ secrets.ALIYUN_REPO_NAME }}:latest项目打包需要我们编写Dockerfile也很简单根据实际情况简单配下就行示例如下FROM eclipse-temurin:17-jre-alpine WORKDIR /app COPY target/*.jar app.jar EXPOSE 8080 ENTRYPOINT [java, -jar, app.jar]现在我们往Master分支上提交代码就会自动触发action来帮助我们打包镜像如下在实际业务场景中我们会存在测试、生产等多个环境的分支都需要进行自动化构建也是很简单在上面的配置里加上其他分支即可。由于我们的应用非常简单所以整个打包的时间也相对较短打包成功后如下6.创建Kubernetes集群配置最后还需要我们在项目里添加一下Kubernetes集群的相关配置如下apiVersion: apps/v1 kind: Deployment metadata: name: springboot-hello-world spec: replicas: 1 selector: matchLabels: app: springboot-hello-world template: metadata: labels: app: springboot-hello-world spec: containers: - name: springboot-hello-world image: registry.cn-hangzhou.aliyuncs.com/my-app/springboot-hello-world:latest ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: name: springboot-hello-world-service spec: selector: app: springboot-hello-world ports: - protocol: TCP port: 80 targetPort: 8080 type: LoadBalancer提交到仓库后可以在Kubernetes集群的控制台里看到我们的服务实例了如下7.访问以及版本管理部署成功后访问下公网ip也可以正常访问我们的应用如下按照我们现有的配置我们后续每次向Master分支提交代码都会自动打包以及更新我们的服务比如我们在接口的响应上加上123代码如下RestController public class HelloController { GetMapping(/hello) public String hello() { return Hello World! 123; } }等待打包成功后再次访问会看到已经更新了如下如果我们发布的新版本应用有BUG需要回滚操作也是非常简单进入到集群详情-历史版本里就可以看到我们的版本记录如下想要回滚到哪个版本直接点击回滚到该版本即可。小结相信大家看到这里对于整个流程也有了清晰的认识可以根据自己的实际选择适合的来替换某个节点的服务或工具。另外可能有人会说把代码发到Github上等于把业务泄露了。我这里说下我的看法本身针对小团队肯定越快越好自然不用搭建的是最快的。另外把仓库设为私有仓库开发人员的权限简单配置下就足够用了。等你体量做大了自然也不需要用它了。欢迎加入我的知识星球全面提升技术能力。 加入方式“长按”或“扫描”下方二维码噢星球的内容包括项目实战、面试招聘、源码解析、学习路线。文章有帮助的话在看转发吧。 谢谢支持哟 (*^__^*
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设必备的功能模块网站开发流程电话

随着汽车智能化和网联化的飞速发展,车载以太网已成为下一代汽车骨干网络的核心。上海合兴软件科技有限公司现隆重推出万兆车载以太网转换器HN2206B,为您带来高效、稳定的车载通信开发与测试解决方案!产品概述:高速率,低…

张小明 2026/1/9 15:16:31 网站建设

seo网站做推广的公司牛网站

B612:专为航空显示设计的开源字体家族 【免费下载链接】b612 Eclipse B612 项目地址: https://gitcode.com/gh_mirrors/b6/b612 在当今数字化时代,字体的可读性直接影响着信息传达的效率和准确性。B612开源字体项目正是基于这一理念,专…

张小明 2026/1/9 15:16:31 网站建设

黄河道网站建设wordpress增加用户权限

深入 ES6 函数参数默认值的作用域:不只是语法糖,而是作用域的精密设计你可能已经用过无数次这样的代码:function greet(name 用户) {console.log(你好,${name}!); }简洁、直观、语义清晰——ES6 的参数默认值似乎是理…

张小明 2026/1/9 2:58:24 网站建设

浙江交工宏途交通建设有限公司网站无锡网站建设策划方案

ARM架构入门指南:从零理解现代嵌入式系统的基石你有没有想过,为什么你的手机能连续用一整天而不发烫?为什么一块硬币大小的智能手环可以监测心率、计步、收消息,还续航一周?背后的“大脑”很可能就是一颗基于ARM架构的…

张小明 2026/1/9 15:16:32 网站建设

视频手机网站开发网站开发总结报告

在端侧AI技术快速发展的今天,微软开源的VibeVoice-1.5B模型为智能语音交互领域带来了哪些实质性突破?这款轻量化TTS部署方案能否真正满足实时语音生成优化的需求?本文将基于三个典型应用场景,深入剖析其技术优势与用户体验。 【免…

张小明 2026/1/9 15:16:36 网站建设

我有域名有服务器怎么建设网站零食网站色调搭配怎么做

CosyVoice3语音生成失败怎么办?五大常见问题排查与解决方法 在智能语音应用日益普及的今天,声音克隆技术正从实验室走向大众。阿里开源的 CosyVoice3 凭借“3秒复刻音色”“自然语言控制语气”等亮点功能,迅速成为开发者和内容创作者的新宠。…

张小明 2026/1/9 15:16:36 网站建设