• Argo CD快速入门教程(gitee+argo+k8s)


    1、简介

    Argo CD 是一个为 Kubernetes 而生的,遵循声明式 GitOps 理念的持续部署(CD)工具,支持多种配置管理/模板工具(例如 Kustomize、Helm、Ksonnet、Jsonnet、plain-YAML)。

    Argo CD 被实现为一个 Kubernetes 控制器,它持续监控正在运行的应用程序并将当前的实时状态与所需的目标状态(例如 Git 仓库中的配置文件)进行比较,在 Git 仓库更改时自动同步和部署应用程序。

    2、部署

    环境准备:
    1、一套k8s集群(部署教程可以看k8s专栏,亲测无坑)
    2、git仓库(此处为了方便演示cd过程,所以使用gitee作为演示)

    部署:

    # 创建命名空间
    kubectl create namespace argocd 
    
    # 下载yaml文件
    wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
    
    #修改argo-server的service的tpye为NodePort
    vim install.yaml
    ...
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app.kubernetes.io/component: server
        app.kubernetes.io/name: argocd-server
        app.kubernetes.io/part-of: argocd
      name: argocd-server
    spec:
      type: NodePort   #对外暴露端口
      ports:
      - name: http
        port: 80
        protocol: TCP
        targetPort: 8080
      - name: https
        port: 443
        protocol: TCP
        targetPort: 8080
      selector:
        app.kubernetes.io/name: argocd-server
    ...
    
    #部署(需要等待几分钟,拉取镜像的过程比较慢)
    kubectl apply -n argocd -f install.yaml
    
    #查看服务情况
    kubectl get svc,deploy -n argocd
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    浏览器访问 ip:port

    默认账号admin

    密码获取方式:
    kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=“{.data.password}” | base64 -d

    3、持续部署至k8s

    1、环境准备

    在gitee上创建一个仓库argocd ,创建一个名为test的文件夹下面放yaml配置文件。配置文件如下:

    # myapp-deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: myapp
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: myapp
      template:
        metadata:
          labels:
            app: myapp
        spec:
          containers:
          - image: registry.cn-shanghai.aliyuncs.com/public-namespace/myapp:v1
            name: myapp
            ports:
            - containerPort: 80
     
    # myapp-service.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: myapp
    spec:
      ports:
      - port: 80
        targetPort: 80
        nodePort: 32060
      type: NodePort
      selector:
        app: myapp
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    实验所需的镜像已经在阿里云的镜像仓库中准备好了,大家可以直接使用

    在这里插入图片描述

    2、argo配置

    1、配置仓库认证
    在这里插入图片描述
    配置过程省略

    2、创建项目

    #创建k8s名称空间,本次项目部署在该处
    kubectl create namespace devops

    在这里插入图片描述

    在这里插入图片描述
    创建成功会看到这个
    在这里插入图片描述
    访问 ip+port

    3、更新与回滚

    更新
    修改gitee上deploy的版本为v2
    在这里插入图片描述
    观察argo,自动更新
    在这里插入图片描述
    访问 ip+port

    2、回退
    在这里插入图片描述
    在这里插入图片描述

    访问 ip+port

  • 相关阅读:
    动态规划 台阶问题四(爱思创)
    尚硅谷kafka3.0.0
    交流耐压试验目的
    RabbitMQ中Direct交换机的用法
    东方通中间件弱密码漏洞检测方法
    c语言open函数追加模式的疑问
    Spring IOC源码:finishBeanFactoryInitialization详解
    Vue3创建项目(一)新手教程
    如何安全得下载官方的Notepad++
    创建第一个Servlet程序“hello world“(创建流程+页面出错情况)
  • 原文地址:https://blog.csdn.net/litaimin/article/details/125533854