配置Keel自动化更新docker镜像

安装完 Keel 之后,您需要进行一些后续步骤来配置和验证 Keel 的正常工作。

  1. 验证 Keel 是否运行:
    使用 Helm 提供的命令来检查 Keel 的 Pods 是否都在运行中:
   kubectl --namespace=kube-system get pods -l "app=keel"
  1. 检查 Keel 的服务:
    如果 Keel 需要作为服务被其他组件调用,确保 Keel 服务已经正确创建。您可以使用以下命令查看服务:
   kubectl --namespace=kube-system get svc -l "app=keel"
  1. 配置触发器:
    Keel 支持多种触发器类型,包括定时轮询、Webhook、标签轮询等。您需要根据您的需求配置适当的触发器。
  2. 设置 Keel 注释:
    为了让 Keel 能够管理您的部署,您需要在 Kubernetes 部署的注解中添加 Keel 的相关配置。例如:
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     annotations:
       keel.sh/policy: all
       keel.sh/trigger: poll
       keel.sh/pollSchedule: "@every 5m"

这将告诉 Keel 每5分钟检查一次部署的更新。

  1. 推送新的镜像:
    为了测试 Keel 的自动部署功能,您可以将一个新的 Docker 镜像推送到您的容器镜像仓库。
  2. 监控部署:
    一旦触发器被触发,Keel 将尝试更新您的部署。您可以使用 Kubernetes 的命令行工具来监控这个过程:
   kubectl rollout status deployment <your-deployment-name>
  1. 查看 Keel 日志:
    如果需要调试或查看 Keel 的活动,您可以查看 Keel Pod 的日志:
   kubectl --namespace=kube-system logs -l "app=keel"
  1. 配置 Webhook (可选):
    如果使用的是 Helm 或其他方法来部署应用,并且想要 Keel 在部署后执行某些操作,可以配置 Helm 的 hooks 或者使用 Keel 的 Webhook 功能。
  2. 阅读官方文档:
    Keel 的官方文档包含了更详细的信息和高级配置选项。建议阅读官方文档以获取更深入的理解和最佳实践。
  3. 锁定和保护:
    如果希望 Keel 仅用于特定的部署,您可以通过 Keel 的保护机制来锁定特定的命名空间或部署。

通过这些步骤,可以确保 Keel 正确地集成到你的 Kubernetes 环境中,并且能够自动管理部署更新。记得根据您的具体需求调整配置和流程。

例如

要为 chatgpt-next-web 部署添加 Keel 的注解,您需要在 metadata 部分的 annotations 字段中添加相应的配置。以下是修改后的 chatgpt-next-web-deployment.yaml 文件的示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: chatgpt-next-web
  annotations:
    keel.sh/policy: all # 所有的实例都需要更新
    keel.sh/trigger: poll # 使用定时轮询的方式触发更新
    keel.sh/pollSchedule: "@every 5m" # 每5分钟轮询一次
  labels:
    app: chatgpt-next-web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: chatgpt-next-web
  template:
    metadata:
      labels:
        app: chatgpt-next-web
    spec:
      containers:
      - name: chatgpt-next-web
        image: yidadaa/chatgpt-next-web:latest
        ports:
        - containerPort: 3000
        env:
        - name: OPENAI_API_KEY
          value: "Sk-..."
        - name: CODE
          value: "20031027yy"
        - name: BASE_URL
          value: "https://api.openai-proxy.com"
  # 其他配置...

请注意以下几点:

  • 注解被添加到了 metadata 部分,它们位于 labels 同级。
  • 原始 YAML 文件中的 spec 部分不变,只添加了 Keel 的注解。
  • 确保在实际部署环境中不要暴露敏感信息,如 API 密钥。在上述示例中,OPENAI_API_KEY 是一个示例值,需要替换为您自己的密钥。

完成编辑后,保存文件并使用以下命令应用更改:

kubectl apply -f chatgpt-next-web-deployment.yaml

这将更新您的部署,添加 Keel 的注解。Keel 将会根据注解中的配置,定时检查 yidadaa/chatgpt-next-web 镜像是否有更新,并在必要时触发更新。

在应用更改后,您可以使用以下命令来验证注解是否已经正确添加:

kubectl get deployment chatgpt-next-web -o jsonpath='{.metadata.annotations}'

这将输出 chatgpt-next-web 部署的注解,您可以检查 Keel 的注解是否已经包含在内。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容