ChatGPT 帮我跑了一个完整的 DevOps 流水线,离了个大谱...

本文作者分享了如何借助ChatGPT完成从编写Gin应用代码、构建Docker镜像,到部署Kubernetes集群和实现GitOps持续部署的全过程。ChatGPT不仅提供了高质量的解决方案,还帮助创建了ArgoCD的Application编排文件,实现了半自动的CI/CD流水线。作者对于这种自动化带来的效率提升感到惊讶,同时也对技术的未来发展感到既期待又担忧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,我是米开朗基杨。

上篇文章给大家介绍了👉如何将 N 个 ChatGPT 账号接入微信,今天就来给大家演示一下如何利用 ChatGPT 帮我工作,让自己有更多的时间摸鱼!

上篇文章还没看的赶紧去看👇

5e6d4dafcf0e7ea13dbddfb738c22e34.jpeg

我将 9 个 ChatGPT 账号接入微信,我现在整个人都麻了...


作为一名云原生搬砖工程师,我经常需要给各路大神演示各种 Demo 环境,奈何自己太菜,总是会遇到各种各样的小问题,有时候需要花上半天时间来解决问题,太折磨人啦!我太菜啦!

于是乎我冒出个想法,ChatGPT 不是上知天文下知地理啥都会嘛,想必云原生也不在话下喽。我想让他给我整个 Gin 应用,然后通过 GitOps 的方式把它部署到 Kubernetes 集群中,这点小小的需求对他来说应该不过分吧??

不试不知道,以试吓一跳。ChatGPT 给出的方案质量高的吓人啊,挑不出啥毛病来,大家可以一起来鉴别一下。

首先需要说明一下规则:ChatGPT 只是一个语言模型,他只会说话,所以我只能向他描述我的需求,然后他给我提供详细的方案和编排文件,最后我再到实际环境中去验证。

编写代码,构建镜像

第一步当然是编写应用代码,并构建 Docker 镜像推送到镜像仓库中。

我提出的需求如下:

你好!

我需要你的帮助来编写一个模拟的 Gin 应用。

这个应用将会有一个路由 “/homepage”,并会在页面中显示一条消息,消息内容是 “OpenFunction is a cloud-native open-source FaaS (Function as a Service) platform aiming to let you focus on your business logic without having to maintain the underlying runtime environment and infrastructure. You can concentrate on developing business-related source code in the form of functions.”。

“/homepage” 页面在“OpenFunction is a cloud-native open-source FaaS (Function as a Service) platform aiming to let you focus on your business logic without having to maintain the underlying runtime environment and infrastructure. You can concentrate on developing business-related source code in the form of functions.”这条消息下面显示一张 OpenFunction 的架构图。

OpenFunction 的架构图可以从这个链接获取:https://openfunction.dev/openfunction-0.5-architecture.svg

请注意:这张架构图的格式是 svg

请确保我的 Gin 应用绑定了所有主机端口(例如,0.0.0.0)。

Gin 应用必须使用容器化,并使用我自己的用户名 “yangchuansheng” 构建镜像推送到 Docker Hub。容器镜像体积越小越好。

你能帮我构建所有需要的编排文件吗?

谢谢!

这是 ChatGPT 的回答:

e7d183cf47dc78183f028b7bbf414b39.png f7247c38e5dacaa3d6af0691b34f7b8b.png

我按照 ChatGPT 的指示操作完了之后开始运行容器进行测试:

$ docker run -d -p 8080:8080 yangchuansheng/my-gin-app

完美!👇

f29203f63b31fbec5fd7b81488dd110d.jpeg

部署到 Kubernetes

接下来我需要将应用部署到 Kubernetes 中,并将编排文件上传到 GitHub 仓库。

对话开始:

非常棒,谢谢。

现在我需要将这个应用部署到我的 Kubernetes 集群中。

请生成所需的 YAML 编排文件,这些编排文件将会生成一个多副本的 Deployment 来部署我的 Gin 应用。

Deployment 会使用我上面提到的 DockerHub 用户名拉取“my-gin-app”镜像。

此外还需要生成两个 YAML 文件,一个是内部的 ClusterIP Service,另一个是暴露到外部的 Ingress,以便将我的应用向外界公开(您可以留空“hostname”字段)。请确保路由指向“/homepage”路径。

此外,还需要你告诉我如何将这些 YAML 文件推送到我的 GitHub 仓库(我的 GitHub 用户名是“yangchuansheng”)。

谢谢!

这里面有几个难点需要 ChatGPT 理解:

  1. 我想部署一个多副本的 Deployment;

  2. 我想看看 ChatGPT 能不能记住我之前提到的用户名。

下面是 ChatGPT 的回复:

d3866e9b3434a7375b45b979868a245e.png

我选择使用 KubeSphere 来验证该方案的正确性,毕竟鼠标点两下就完事了。

首先新建一个工作负载,将 Deployment 的内容粘贴进去:

c409856f30df0b4694fb2a440e599793.png

成功运行了 3 个副本:

74606dd4ddc198446cee1b9e3ff2acf8.png

再创建一个服务:

a8a1996ffc3173a11c2e0969802d73c6.png

最后再创建一个应用路由:

b92445b52b92db34fc02c26b692c7ec6.png

ChatGPT 给出的 Ingress 编排文件是有问题的,还是之前的旧语法(因为他从互联网上获取的知识只停留在 2021 年),这也不能怪他,我自己改下吧。

打开页面验证:

494f9e66e4d9ad33cdf1e8e99c6c99ac.jpeg

完美!!!

使用 GitOps 进行部署

最后一个挑战:让他给我提供一个 ArgoCD 的持续部署方案。

对话开始:

太🐂️🍺️了,谢谢!

最后,我希望我的应用能够适用于 GitOps 架构。

我目前使用的是 ArgoCD,请帮助我生成用于 ArgoCD 应用部署的 “Application” 编排文件。

我希望这个 GitOps 应用会自动同步,并使用 CreateNamespace=true 选项自动创建名为“gin-app-k8s”的命名空间。

我的 git 仓库名称为“gin-app-k8s”,请使用我的 GitHub 用户名。

该仓库是扁平的,没有子目录,因此无需访问特定路径。

请注意:我使用的是“kubectl”命令行,而不是“argo”命令行。

这里也有几个难点:

  1. 我希望 ChatGPT 能够理解我在使用 ArgoCD,并给出相应的 Application 编排文件;

  2. 我要看看 ChatGPT 能不能记住我之前说过的 DockerHub 用户名和 GitHub 用户名。

来看看ChatGPT 的回复:

482d67cd77d0edd5c1813123a3870f3e.png

他给出的编排文件还是有点小问题,我给他提供反馈,告诉他哪里有问题,最终在我的引导下给出了正确的编排文件:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: gin-app-k8s
  namespace: argocd
spec:
  destination:
    namespace: gin-app-k8s
    server: https://kubernetes.default.svc
  source:
    repoURL: https://github.com/yangchuansheng/gin-app-k8s
    path: ./
    targetRevision: HEAD
  project: default
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
    - createNamespace=true

创建 Application 成功:

f1d75536f5cdd786b9da3e43a329cc51.png

查看应用路由:

df1be247e3db057baca154198e7ab0ce.png

访问应用 URL:

cfc92efcf26f1ee2cfed8cf00170e1b3.png

完全没问题!离了个大谱!

自己不用写一行代码,就实现了一个半自动的 CI/CD 流水线。

我是该高兴呢?还是该恐惧呢?

总结

ChatGPT 表现出来的能力确实令人震惊,他就像一个潘朵拉魔盒,你永远不知道他还能做什么,只能不断去尝试,让人又期待又害怕呢,渣男!

从今天起我就是云原生摸鱼专家,工作上的事情麻烦找 ChatGPT,谢谢🙏

76d9fdb275021315a9d070197dad9785.gif

2ecbb690073ed3567389ac29e68e580b.png

你可能还喜欢

点击下方图片即可阅读

我将 9 个 ChatGPT 账号接入微信,我现在整个人都麻了...

2022-12-10

294d228f3323393c41fc718b426437fa.jpeg

AI 对话模型被网友玩坏了!这次还可以运行 Docker 容器...

2022-12-04

8d1bfea519a616bae2b8e277a8f7c8a9.jpeg

为什么 APISIX Ingress 是比 Traefik 更好的选择?

2022-12-19

9c4fcf06c15b6d4eb4158f003e68394e.jpeg

K8s 最强 CNI Cilium 网络故障排查指南

2022-12-16

a9e40c60a72f451980b5acd42b9374cc.jpeg

e034d838a2f44e1522d21d6847bfefab.gif

云原生是一种信仰 🤘

b01aa8a029968dd5c352281a1f9d5cd6.gif

efa50540a7e4962702674214720bbe68.gif

点击 "阅读原文" 获取更好的阅读体验!

发现朋友圈变“安静”了吗?

3eecd353bee5b8b5e4dd2047a777fff1.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值