一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Argo CD入門實戰(zhàn)指南

馬哥Linux運維 ? 來源:CSDN技術(shù)社區(qū) ? 2025-05-15 17:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Argo CD入門、實戰(zhàn)指南

1. Argo CD概述

1.1 什么是 Argo CD

Argo CD 是針對 Kubernetes 的聲明式 GitOps 持續(xù)交付工具。

aad0954e-2fde-11f0-afc8-92fbcf53809c.gif

Argo CD 是針對 Kubernetes 的聲明式 GitOps 持續(xù)交付工具

1.2 為什么選擇 Argo CD

應(yīng)用程序定義、配置和環(huán)境應(yīng)具有聲明性并受版本控制。應(yīng)用程序部署和生命周期管理應(yīng)自動化、可審計且易于理解。

2. Argo CD基礎(chǔ)知識

在有效使用 Argo CD 之前,有必要了解該平臺所基于的底層技術(shù)。還需要了解提供給您的功能及其使用方法。以下部分提供了一些有用的鏈接來幫助您加深這種理解。

2.1 學(xué)習(xí)基礎(chǔ)知識

? 閱讀在線 Docker 和 Kubernetes 教程

?適合初學(xué)者的容器、虛擬機和 Docker 簡介

?Kubernetes 簡介

?教程

? 根據(jù)您計劃如何模板化您的應(yīng)用程序:

?Kustomize

?helm

? 如果您要與 CI 工具集成:

?GitHub Actions 文檔

?Jenkins 用戶指南

3. Argo CD核心概念

到此,您應(yīng)該已經(jīng)熟悉核心 Git、Docker、Kubernetes、持續(xù)交付和 GitOps 概念。以下是一些特定于 Argo CD 的概念。

?應(yīng)用程序:清單定義的一組 Kubernetes 資源。這是一個自定義資源定義 (CRD)。

?應(yīng)用程序源類型使用哪種工具來構(gòu)建應(yīng)用程序。

?目標(biāo)狀態(tài)應(yīng)用程序的所需狀態(tài),以 Git 存儲庫中的文件表示。

?實時狀態(tài)該應(yīng)用程序的實時狀態(tài)。部署了哪些 pod 等。

?同步狀態(tài)實時狀態(tài)是否與目標(biāo)狀態(tài)匹配。部署的應(yīng)用程序是否與 Git 所說的一致?

?同步使應(yīng)用程序移動到其目標(biāo)狀態(tài)的過程。例如通過將更改應(yīng)用于 Kubernetes 集群。

?同步操作狀態(tài)同步是否成功。

?刷新 將Git 中的最新代碼與實時狀態(tài)進(jìn)行比較。找出不同之處。

?健康應(yīng)用程序的健康狀況,是否正常運行? 是否可以處理請求?

?工具從文件目錄創(chuàng)建清單的工具。例如 Kustomize。請參閱應(yīng)用程序源類型。

?配置管理工具請參閱工具。

?配置管理插件自定義工具。

4. 架構(gòu)

4.1 架構(gòu)概述

Argo CD 被實現(xiàn)為 Kubernetes 控制器,它持續(xù)監(jiān)控正在運行的應(yīng)用程序并將當(dāng)前的實時狀態(tài)與所需的目標(biāo)狀態(tài)(如 Git 存儲庫中指定)進(jìn)行比較。已部署的應(yīng)用程序的實時狀態(tài)與目標(biāo)狀態(tài)有偏差,則被視為已部署應(yīng)用程序OutOfSync。Argo CD 報告并可視化差異,同時提供將實時狀態(tài)自動或手動同步回所需目標(biāo)狀態(tài)的功能。對 Git 存儲庫中所需目標(biāo)狀態(tài)所做的任何修改都可以自動應(yīng)用并反映在指定的目標(biāo)環(huán)境中。

4.2 組成

4.2.1 API 服務(wù)器

API 服務(wù)器是一個 gRPC/REST 服務(wù)器,用于公開 Web UI、CLI 和 CI/CD 系統(tǒng)使用的 API。它具有以下職責(zé):

? 應(yīng)用程序管理和狀態(tài)報告

? 調(diào)用應(yīng)用程序操作(例如同步、回滾、用戶定義的操作)

? 存儲庫和集群憑證管理(存儲為 K8s 機密)

? 身份驗證和授權(quán)委托給外部身份提供商

? RBAC 實施

? Git webhook 事件的監(jiān)聽器/轉(zhuǎn)發(fā)器

4.2.2 存儲庫服務(wù)器

存儲庫服務(wù)器是一項內(nèi)部服務(wù),它維護(hù)保存應(yīng)用程序清單的 Git 存儲庫的本地緩存。它負(fù)責(zé)在提供以下輸入時生成并返回 Kubernetes 清單:

? 存儲庫 URL

? 修訂(提交、標(biāo)記、分支)

? 應(yīng)用程序路徑

? 模板特定設(shè)置:參數(shù)、helm values.yaml

4.2.3 應(yīng)用程序控制器

應(yīng)用程序控制器是一個 Kubernetes 控制器,它持續(xù)監(jiān)控正在運行的應(yīng)用程序,并將當(dāng)前實時狀態(tài)與所需的目標(biāo)狀態(tài)(如存儲庫中指定)進(jìn)行比較。它檢測OutOfSync應(yīng)用程序狀態(tài)并選擇性地采取糾正措施。它負(fù)責(zé)調(diào)用任何用戶定義的生命周期事件鉤子(PreSync、Sync、PostSync)

4.3 怎么運行的

Argo CD 遵循GitOps模式,使用 Git 存儲庫作為定義所需應(yīng)用程序狀態(tài)的真實來源。Kubernetes 清單可以通過多種方式指定:

?自定義應(yīng)用程序部署

?helmcharts

?jsonnet文件

? YAML/json 清單的純目錄

? 任何配置為配置管理插件的自定義配置管理工具

Argo CD 可自動在指定的目標(biāo)環(huán)境中部署所需的應(yīng)用程序狀態(tài)。應(yīng)用程序部署可以跟蹤 Git 提交時對分支、標(biāo)簽或固定到特定版本清單的更新。有關(guān)可用的不同跟蹤策略的更多詳細(xì)信息,后續(xù)會博文會繼續(xù)講解。

5. Argo CD入門

要求

? 已安裝kubectl命令行工具。

? 有一個kubeconfig文件(默認(rèn)位置是~/.kube/config)。

? 已安裝CoreDNS插件。

5.1 安裝 Argo CD

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

這將創(chuàng)建一個新的命名空間argocd,Argo CD 服務(wù)和應(yīng)用程序資源將存儲在其中。

注意:

安裝清單包含ClusterRoleBinding引用命名空間的資源argocd。如果您要將 Argo CD 安裝到不同的命名空間,請確保更新命名空間引用。

此默認(rèn)安裝將具有自簽名證書,如果不進(jìn)行額外操作則無法訪問。請執(zhí)行以下任一操作:

? 按照說明配置證書(并確??蛻舳?a target="_blank">操作系統(tǒng)信任它)。

? 配置客戶端操作系統(tǒng)以信任自簽名證書。

? 在本指南的所有 Argo CD CLI 操作中使用 --insecure 標(biāo)志。

注意:

kubectl必須將配置的默認(rèn)命名空間設(shè)置為argocd。這只對以下命令有用,因為前面的命令已經(jīng)有 -n argocd 了:

kubectl config set-context --current --namespace=argocd

用于argocd login --core配置CLI訪問并跳過步驟 3-5。

注意:

argocd-redisRedis 的默認(rèn)安裝使用密碼驗證。Redis 密碼與密鑰一起存儲在auth安裝 Argo CD 的命名空間中的 Kubernetes 機密中。

5.2 下載 Argo CD CLI

從github中下載最新的 Argo CD 版本??梢酝ㄟ^CLI 安裝文檔找到更詳細(xì)的安裝說明。

也可在 Mac、Linux 和 WSL Homebrew 中使用:

brew install argocd

5.3 訪問 Argo CD API 服務(wù)器

默認(rèn)情況下,Argo CD API 服務(wù)器不會通過外部 IP 公開。要訪問 API 服務(wù)器,請選擇以下三種技術(shù)之一來暴露 Argo CD API 服務(wù):

? 將 argocd-server 服務(wù)類型更改為LoadBalancer

kubectl patch svc argocd-server -n argocd -p'{"spec": {"type": "LoadBalancer"}}'

? ingress

按照Argo CD ingress 文檔了解如何使用入口配置 Argo CD。

? 轉(zhuǎn)發(fā)端口

Kubectl 端口轉(zhuǎn)發(fā)也可用于連接 API 服務(wù)器而無需公開服務(wù)。

kubectl port-forward svc/argocd-server -n argocd 8080:443

然后可以使用 https://localhost:8080 訪問 API 服務(wù)器

5.4 使用 CLI 登錄

帳戶的初始密碼admin是自動生成的,并以明文形式存儲在 Argo CD 安裝命名空間中password命名的機密字段中。

您可以使用CLI 快速的檢索此密碼

argocd admin initial-password -n argocd

提示:

更改密碼后,您應(yīng)該從 Argo CD 命名空間中刪除argocd-initial-admin-secret。該密鑰除了以明文形式存儲最初生成的密碼外,沒有其他用途,并且可以隨時安全地刪除。如果必須重新生成新的管理員密碼,Argo CD 將根據(jù)需要重新創(chuàng)建它。

使用上面的用戶名admin和密碼登錄 Argo CD 的 IP 或主機名:

argocd login 

注意:

CLI 環(huán)境必須能夠與 Argo CD API 服務(wù)器通信。如果無法按照上述步驟 5.3 中的說明直接訪問,您可以通過以下機制之一告訴 CLI 使用端口轉(zhuǎn)發(fā)來訪問它

? 向每個 CLI 命令添加--port-forward-namespace argocd標(biāo)志。

? 設(shè)置ARGOCD_OPTS環(huán)境變量:export ARGOCD_OPTS='--port-forward-namespace argocd'。

使用以下命令更改密碼:

argocd account update-password

5.5 注冊集群以部署應(yīng)用程序(可選)

此步驟將集群的憑據(jù)注冊到 Argo CD,并且僅在部署到外部集群時才需要。在內(nèi)部部署時(部署到 Argo CD 正在運行的同一集群),應(yīng)使用 https://kubernetes.default.svc 作為應(yīng)用程序的 K8s API 服務(wù)器地址。

首先列出當(dāng)前 kubeconfig 中的所有集群上下文:

kubectl config get-contexts -o name

從列表中選擇一個上下文名稱并將其提供給argocd cluster add CONTEXTNAME。例如,對于 docker-desktop 上下文,運行:

argocd cluster add docker-desktop

上述命令將 ServiceAccount (argocd-manager) 安裝到該 kubectl 上下文的 kube-system 命名空間中,并將服務(wù)帳戶綁定到管理員級別的 ClusterRole。Argo CD 使用此服務(wù)帳戶令牌執(zhí)行其管理任務(wù)(即部署/監(jiān)控)。

注意:

可以修改角色規(guī)則argocd-manager-role,使其僅對有限的命名空間、組、種類具有create、update、patch、權(quán)限。但是,Argo CD 需要在集群范圍內(nèi)具有 、 、權(quán)限才能正常運行。delete``get``list``watch

5.6 從 Git 存儲庫創(chuàng)建應(yīng)用程序

包含留言簿應(yīng)用程序的示例存儲庫可在 https://github.com/argoproj/argocd-example-apps.git上找到,以演示 Argo CD 的工作原理。

?通過 CLI 創(chuàng)建應(yīng)用程序

首先,我們需要運行以下命令將當(dāng)前命名空間設(shè)置為 argocd:

kubectl config set-context --current --namespace=argocd

使用以下命令創(chuàng)建示例留言簿應(yīng)用程序:

argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default

?通過 UI 創(chuàng)建應(yīng)用程序

打開瀏覽器進(jìn)入 Argo CD 外部 UI,通過訪問瀏覽器中的 IP/主機名并使用步驟 4 中設(shè)置的憑據(jù)登錄。

登錄后,點擊+ New App按鈕,如下圖:

ab007822-2fde-11f0-afc8-92fbcf53809c.png

為您的應(yīng)用命名guestbook,使用該項目default,并保留同步策略Manual:

ab0e7364-2fde-11f0-afc8-92fbcf53809c.png

通過將存儲庫 URL 設(shè)置為 github 存儲庫 URL,將https://github.com/argoproj/argocd-example-apps.git存儲庫連接到 Argo CD,將修訂保留為HEAD,并將路徑設(shè)置為guestbook:

ab1c5dee-2fde-11f0-afc8-92fbcf53809c.png

對于目標(biāo),將集群 URL 設(shè)置為https://kubernetes.default.svc(或in-cluster集群名稱),并將命名空間設(shè)置為default:

ab2977cc-2fde-11f0-afc8-92fbcf53809c.png

填寫完以上信息后,點擊UI頂部的Createguestbook來創(chuàng)建應(yīng)用程序:

ab37d880-2fde-11f0-afc8-92fbcf53809c.png

5.7 同步應(yīng)用程序

?通過 CLI 同步

一旦創(chuàng)建了留言簿應(yīng)用程序,您現(xiàn)在可以查看其狀態(tài):

$ argocd app get guestbook
Name:        argocd/guestbook
Project:      default
Server:       https://kubernetes.default.svc
Namespace:     default
URL:        https://192.168.1.241:30786/applications/guestbook
Repo:        https://github.com/argoproj/argocd-example-apps.git
Target:
Path:        guestbook
SyncWindow:     Sync Allowed
Sync Policy:    
Sync Status:    OutOfSync from (d7927a2)
Health Status:   Missing

GROUP KIND    NAMESPACE NAME     STATUS   HEALTH  HOOK MESSAGE
   Service   default  guestbook-ui OutOfSync Missing
apps  Deployment default  guestbook-ui OutOfSync Missing


應(yīng)用程序狀態(tài)最初處于OutOfSync狀態(tài),因為應(yīng)用程序尚未部署,并且尚未創(chuàng)建任何 Kubernetes 資源。要同步(部署)應(yīng)用程序,請運行:

$ argocd appsyncguestbook
TIMESTAMP         GROUP    KIND  NAMESPACE         NAME  STATUS  HEALTH    HOOK MESSAGE
2024-07-09T1549+08:00      Service   default     guestbook-ui OutOfSync Missing
2024-07-09T1549+08:00  apps Deployment   default     guestbook-ui OutOfSync Missing
2024-07-09T1550+08:00      Service   default     guestbook-ui OutOfSync Missing       service/guestbook-ui created
2024-07-09T1550+08:00  apps Deployment   default     guestbook-ui OutOfSync Missing       deployment.apps/guestbook-ui created
2024-07-09T1550+08:00      Service   default     guestbook-ui  Synced Healthy         service/guestbook-ui created
2024-07-09T1550+08:00  apps Deployment   default     guestbook-ui  Synced Progressing       deployment.apps/guestbook-ui created

Name:        argocd/guestbook
Project:      default
Server:       https://kubernetes.default.svc
Namespace:     default
URL:        https://192.168.1.241:30786/applications/guestbook
Repo:        https://github.com/argoproj/argocd-example-apps.git
Target:
Path:        guestbook
SyncWindow:     Sync Allowed
Sync Policy:    
Sync Status:    Synced to (d7927a2)
Health Status:   Progressing

Operation:     Sync
Sync Revision:   d7927a27b4533926b7d86b5f249cd9ebe7625e90
Phase:       Succeeded
Start:       2024-07-09 1549 +0800 CST
Finished:      2024-07-09 1550 +0800 CST
Duration:      1s
Message:      successfully synced (all tasks run)

GROUP KIND    NAMESPACE NAME     STATUS HEALTH    HOOK MESSAGE
   Service   default  guestbook-ui Synced Healthy      service/guestbook-ui created
apps  Deployment default  guestbook-ui Synced Progressing    deployment.apps/guestbook-ui created


此命令從存儲庫檢索清單并執(zhí)行kubectl apply清單。留言簿應(yīng)用程序現(xiàn)已運行,您現(xiàn)在可以查看其資源組件、日志、事件和評估的健康狀況。

接下來可以使用如下命令到K8S集群中查看服務(wù)部署情況:

root@k8s-master01:~# kubectl get pods -o wide -n default
NAME              READY  STATUS  RESTARTS  AGE  IP       NODE      NOMINATED NODE  READINESS GATES
guestbook-ui-76f97c94c-gnznn  1/1   Running  0     10m  10.233.125.49  k8s-worker01        

?通過 UI 同步

ab45b040-2fde-11f0-afc8-92fbcf53809c.png

在這里插入圖片描述

ab6149ea-2fde-11f0-afc8-92fbcf53809c.png

鏈接:https://blog.csdn.net/u010589700/article/details/140299197

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    511

    瀏覽量

    22456
  • 虛擬機
    +關(guān)注

    關(guān)注

    1

    文章

    966

    瀏覽量

    29369
  • Argo
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    4192
  • kubernetes
    +關(guān)注

    關(guān)注

    0

    文章

    245

    瀏覽量

    9070

原文標(biāo)題:5分鐘上手Argo CD:從零到生產(chǎn)級的實戰(zhàn)指南

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Linux Shell腳本入門實戰(zhàn)詳解

    Linux Shell腳本入門實戰(zhàn)詳解
    發(fā)表于 02-17 15:03 ?785次閱讀

    ARDUINO開發(fā)實戰(zhàn)指南

    ARDUINO開發(fā)實戰(zhàn)指南
    發(fā)表于 09-21 05:40

    物聯(lián)網(wǎng)實戰(zhàn)指南

    物聯(lián)網(wǎng)實戰(zhàn)指南
    發(fā)表于 02-23 10:50

    《STM32 HAL 庫開發(fā)實戰(zhàn)指南—基于H750》

    受限于單個文件不能超過5M,所以分成10個壓縮包分別上傳。 野火STM32系列叢書《STM32 HAL 庫開發(fā)實戰(zhàn)指南—基于H750》,內(nèi)容殷實,講解詳細(xì),適合入門和提高,非常不錯
    發(fā)表于 01-14 10:09

    LabVIEW入門實戰(zhàn)開發(fā)100例

    LabVIEW入門實戰(zhàn)開發(fā)100例LabVIEW入門實戰(zhàn)開發(fā)100例LabVIEW入門實戰(zhàn)
    發(fā)表于 02-18 11:44 ?0次下載

    PIC單片機入門實戰(zhàn)-掃描版

    PIC單片機入門實戰(zhàn)-掃描版,PIC學(xué)習(xí)入門經(jīng)典教材
    發(fā)表于 11-02 15:44 ?0次下載

    Scala動手實戰(zhàn)入門

    本文檔內(nèi)容介紹了基于Scala動手實戰(zhàn)入門,供參考
    發(fā)表于 04-13 15:13 ?8次下載

    樹莓派(Raspberry Pi)實戰(zhàn)指南.pdf

    樹莓派實戰(zhàn)指南
    發(fā)表于 05-07 15:17 ?130次下載

    《labview入門實戰(zhàn)開發(fā)》經(jīng)典案例

    labview入門實戰(zhàn)開發(fā)案例100例書中的案例資料供大家學(xué)習(xí)
    發(fā)表于 01-11 18:10 ?184次下載

    arduino開發(fā)實戰(zhàn)指南

    arduino開發(fā)實戰(zhàn)指南
    發(fā)表于 02-22 14:56 ?0次下載

    LabVIEW入門實戰(zhàn)開發(fā)100例

    LabVIEW入門實戰(zhàn)開發(fā)100例,實用例子
    發(fā)表于 10-26 15:25 ?55次下載

    STM32庫開發(fā)實戰(zhàn)指南

    STM32庫開發(fā)實戰(zhàn)指南-劉火良,電子 epub格式,清晰非掃描
    發(fā)表于 10-27 16:25 ?24次下載

    emWin 實戰(zhàn)指南

    電子發(fā)燒友網(wǎng)站提供《emWin 實戰(zhàn)指南.pdf》資料免費下載
    發(fā)表于 12-22 11:03 ?6次下載

    LwIP應(yīng)用開發(fā)實戰(zhàn)指南—基于野火STM32

    LwIP應(yīng)用開發(fā)實戰(zhàn)指南—基于野火STM32—20210122
    發(fā)表于 01-17 14:34 ?8次下載

    爬蟲數(shù)據(jù)獲取實戰(zhàn)指南:從入門到高效采集

    爬蟲數(shù)據(jù)獲取實戰(zhàn)指南:從入門到高效采集 ? ? 在數(shù)字化浪潮中,數(shù)據(jù)已成為驅(qū)動商業(yè)增長的核心引擎。無論是市場趨勢洞察、競品動態(tài)追蹤,還是用戶行為分析,爬蟲技術(shù)都能助你快速捕獲目標(biāo)信息。然而,如何既
    的頭像 發(fā)表于 03-24 14:08 ?623次閱讀