如何制作钓鱼网站,公司建设网站的优缺点,wordpress批量导入标签,网站设计论文介绍一#xff0c;Argo安装配置
Argo是一个基于Kubernetes的容器本地工作流引擎#xff0c;可以帮助用户在Kubernetes上创建、运行和维护容器化应用程序。下面是Argo安装配置的步骤#xff1a;
首先确保你已经安装了kubectl和helm添加chart仓库
$ helm repo add argo https:/…一Argo安装配置
Argo是一个基于Kubernetes的容器本地工作流引擎可以帮助用户在Kubernetes上创建、运行和维护容器化应用程序。下面是Argo安装配置的步骤
首先确保你已经安装了kubectl和helm添加chart仓库
$ helm repo add argo https://argoproj.github.io/argo-helm
创建namespace
$ kubectl create namespace argocd
安装 Argo CD
$ helm install argocd argo/argo-cd --version 3.8.5 -n argocd \--set server.extraArgs{--insecure} \--set rbac.createtrue \--set server.service.typeLoadBalancer
其中server.extraArgs{--insecure} 表示允许不受信任的证书。
rbac.createtrue 表示启用RBAC。
server.service.typeLoadBalancer 表示使用 LoadBalancer 类型的 Service。
查看 Argo CD 的服务地址
$ kubectl get svc -n argocd | grep argocd-server
argocd-server LoadBalancer xxx.xxx.xxx.xxx pending 80:xxxxx/TCP,443:xxxxx/TCP 5m47s
访问 Argo CD UI
在浏览器中输入 http://EXTERNAL-IP:80 访问 Argo CD 的 UI 界面用户名为 admin密码为 kubectl get secret argocd-initial-admin-secret -o jsonpath{.data.password} | base64 -d其中 EXTERNAL-IP 为上面 kubectl get svc 命令输出的 LoadBalancer IP。
使用 Argo CD
现在你已经可以使用 Argo CD 来创建、运行和维护容器化应用程序了。
二Argo CD持续交付
Argo CD 是一个基于 Kubernetes 的 GitOps 持续交付工具可以将应用程序的所有部署和管理任务都自动化从而提高生产力和可靠性。下面是使用 Argo CD 进行持续交付的步骤
准备工作
首先你需要安装并配置好以下工具
Kubernetes 集群kubectl 工具Helm 包管理器Argo CD 工具
创建应用程序
在 Argo CD 的 UI 界面中创建一个新的应用程序并指定该应用程序所在的 Git 仓库和分支。例如你可以使用以下 YAML 文件创建名为 myapp 的应用程序
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:name: myapp
spec:destination:namespace: defaultserver: https://kubernetes.default.svc.cluster.localproject: defaultsource:path: .repoURL: https://github.com/username/myapp.gittargetRevision: HEADsyncPolicy:automated:prune: trueselfHealTimeout: 3600s
其中destination.namespace 表示目标命名空间destination.server 表示目标 Kubernetes API Server 地址project 表示项目名称source.path 表示源代码路径source.repoURL 表示 Git 仓库地址source.targetRevision 表示要同步的 Git 分支或提交。
定义部署模板
在 Git 仓库中定义 Kubernetes 部署模板例如使用 Helm Chart。
启用自动同步
在应用程序的 syncPolicy 中启用自动同步这样 Argo CD 就会自动检测 Git 仓库中的变更并将其同步到 Kubernetes 集群中。例如
syncPolicy:automated:prune: trueselfHealTimeout: 3600s
其中prune 表示删除未在 Git 仓库中定义的资源selfHealTimeout 表示重新同步之前等待的时间。
定义环境
在 Argo CD 的 UI 界面中创建一个新的环境如开发环境、测试环境、生产环境等并指定该环境所在的 Kubernetes 集群和命名空间。例如
apiVersion: argoproj.io/v1alpha1
kind: Environment
metadata:name: dev
spec:clusterName: myclusternamespace: development
定义发布策略
在 Argo CD 的 UI 界面中定义发布策略例如当代码提交到 master 分支时自动触发部署到生产环境。
自动化测试
使用测试框架对应用程序进行自动化测试并将测试结果作为注释添加到 Git 提交信息中。例如
$ go test ./... -v | tee (kubectl annotate deployment/myapp --overwritetest-results/dev/stdin)
其中kubectl annotate deployment/myapp --overwritetest-results/dev/stdin 表示将测试结果作为注释添加到名为 myapp 的 Deployment 中。
执行持续交付
当代码提交到 Git 仓库时Argo CD 就会自动检测变更并执行持续交付流程。如果所有的自动化测试都通过了应用程序就会被部署到指定的 Kubernetes 集群和命名空间中
三Argo Canary和BlueGreen部署
Argo CD 支持 Canary 和 Blue-Green 部署模式以下是使用 Argo CD 进行 Canary 和 Blue-Green 部署的步骤
Canary 部署
Canary 部署模式可以让你逐渐将新版本应用程序引入到生产环境中并在确保稳定性的情况下逐步增加流量。
准备工作
首先你需要安装并配置好以下工具
Kubernetes 集群kubectl 工具Helm 包管理器Argo CD 工具
创建应用程序
在 Argo CD 的 UI 界面中创建一个新的应用程序并指定该应用程序所在的 Git 仓库和分支。例如你可以使用以下 YAML 文件创建名为 myapp 的应用程序
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:name: myapp
spec:destination:namespace: defaultserver: https://kubernetes.default.svc.cluster.localproject: defaultsource:path: .repoURL: https://github.com/username/myapp.gittargetRevision: HEADsyncPolicy:automated:prune: trueselfHealTimeout: 3600s
其中destination.namespace 表示目标命名空间destination.server 表示目标 Kubernetes API Server 地址project 表示项目名称source.path 表示源代码路径source.repoURL 表示 Git 仓库地址source.targetRevision 表示要同步的 Git 分支或提交。
定义部署模板
在 Git 仓库中定义 Kubernetes 部署模板例如使用 Helm Chart。
启用自动同步
在应用程序的 syncPolicy 中启用自动同步这样 Argo CD 就会自动检测 Git 仓库中的变更并将其同步到 Kubernetes 集群中。例如
syncPolicy:automated:prune: trueselfHealTimeout: 3600s
其中prune 表示删除未在 Git 仓库中定义的资源selfHealTimeout 表示重新同步之前等待的时间。
定义环境
在 Argo CD 的 UI 界面中创建一个新的环境如开发环境、测试环境、生产环境等并指定该环境所在的 Kubernetes 集群和命名空间。例如
apiVersion: argoproj.io/v1alpha1
kind: Environment
metadata:name: dev
spec:clusterName: myclusternamespace: development
定义发布策略
定义 Canary 发布策略例如
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:name: myapp-canary-rollout
spec:strategy: Canary
其中strategy 表示采用 Canary 策略。
定义 Canary 规则
在 Kubernetes 中定义 Canary 规则例如
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: myapp-canary-vs
spec:hosts:- myapp.example.comhttp:- route:- destination:host: myappsubset: v1 weight: 90 - destination:host: myappsubset: v2 weight: 10
其中subset 表示版本号weight 表示流量占比。
执行持续交付
当代码提交到 Git 仓库时Argo CD 就会自动检测变更并执行持续交付流程。新版本的应用程序会先部署到 Canary 环境中并将一小部分流量引入到生产环境中。如果没有发现问题就可以逐步增加流量。
Blue-Green 部署
Blue-Green 部署模式可以让你在完全安装新版本应用程序之前在一个与生产环境相同的环境中进行测试和验证。
准备工作
首先你需要安装并配置好以下工具
Kubernetes 集群kubectl 工具Helm 包管理器Argo CD 工具
创建应用程序
在 Argo CD 的 UI 界面中创建一个新的应用程序并指定该应用程序所在的 Git 仓库和分支。例如你可以使用以下 YAML 文件创建名为 myapp 的应用程序
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:name: myapp
spec:destination:namespace: defaultserver: https://kubernetes.default.svc.cluster.localproject: defaultsource:path: .repoURL: https://github.com/username/myapp.gittargetRevision: HEADsyncPolicy:automated:prune: trueselfHealTimeout: 3600s
其中destination.namespace 表示目标命名空间destination.server 表示目标 Kubernetes API Server 地址project 表示项目名称source.path 表示源代码路径source.repoURL 表示 Git 仓库地址source.targetRevision 表示要同步的 Git 分支或提交。
定义部署模板
在 Git 仓库中定义 Kubernetes 部署模板例如使用 Helm Chart。
启用自动同步
在应用程序的 syncPolicy 中启用自动同步这样 Argo CD 就会自动检测 Git 仓库中的变更并将其同步到 Kubernetes 集群中。例如
syncPolicy:automated:prune: trueselfHealTimeout: 3600s
其中prune 表示删除未在 Git 仓库中定义的资源selfHealTimeout 表示重新同步之前等待的时间。
定义环境
在 Argo CD 的 UI 界面中创建一个新的环境如开发环境、测试环境、生产环境等并指定该环境所在的 Kubernetes 集群和命名空间。例如
apiVersion: argoproj.io/v1alpha1
kind: Environment
metadata:name: dev
spec:clusterName: myclusternamespace: development
定义发布策略
定义 Blue-Green 发布策略例如
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:name: myapp-bluegreen-rollout
spec:strategy: BlueGreen
其中strategy 表示采用 Blue-Green 策略。
定义新版本规则
在 Kubernetes 中定义新版本规则例如
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:name: myapp-new-ingress
spec:rules:- host: myapp.example.com http:paths:- pathType: Prefix path: / backend:servicePort: 80 serviceName: myapp-new
其中serviceName 表示使用新版本服务servicePort 表示服务端口号。
执行持续交付
当代码提交到 Git 仓库时Argo CD 就会自动检测变更并执行持续交付流程。新版本的应用程序会先部署到与生产环境相同的环境中并进行测试和验证。如果一切正常就可以切换流量到新版本应用程序上。