在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

Argo CD入門、實(shí)戰(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é)者的容器、虛擬機(jī)和 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 存儲庫中的文件表示。

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

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

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

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

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

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

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

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

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

4. 架構(gòu)

4.1 架構(gòu)概述

Argo CD 被實(shí)現(xiàn)為 Kubernetes 控制器,它持續(xù)監(jiān)控正在運(yùn)行的應(yīng)用程序并將當(dāng)前的實(shí)時狀態(tài)與所需的目標(biāo)狀態(tài)(如 Git 存儲庫中指定)進(jìn)行比較。已部署的應(yīng)用程序的實(shí)時狀態(tài)與目標(biāo)狀態(tài)有偏差,則被視為已部署應(yīng)用程序OutOfSync。Argo CD 報告并可視化差異,同時提供將實(shí)時狀態(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 機(jī)密)

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

? RBAC 實(shí)施

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

4.2.2 存儲庫服務(wù)器

存儲庫服務(wù)器是一項(xiàng)內(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ùn)行的應(yīng)用程序,并將當(dāng)前實(shí)時狀態(tài)與所需的目標(biāo)狀態(tài)(如存儲庫中指定)進(jìn)行比較。它檢測OutOfSync應(yīng)用程序狀態(tài)并選擇性地采取糾正措施。它負(fù)責(zé)調(diào)用任何用戶定義的生命周期事件鉤子(PreSync、Sync、PostSync)

4.3 怎么運(yùn)行的

Argo CD 遵循GitOps模式,使用 Git 存儲庫作為定義所需應(yīng)用程序狀態(tài)的真實(shí)來源。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í)行以下任一操作:

? 按照說明配置證書(并確保客戶端操作系統(tǒng)信任它)。

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

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

注意:

kubectl必須將配置的默認(rèn)命名空間設(shè)置為argocd。這只對以下命令有用,因?yàn)榍懊娴拿钜呀?jīng)有 -n argocd 了:

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

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

注意:

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

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命名的機(jī)密字段中。

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

argocd admin initial-password -n argocd

提示:

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

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

argocd login 

注意:

CLI 環(huán)境必須能夠與 Argo CD API 服務(wù)器通信。如果無法按照上述步驟 5.3 中的說明直接訪問,您可以通過以下機(jī)制之一告訴 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ùn)行的同一集群),應(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 上下文,運(yùn)行:

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)限才能正常運(yù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)用程序

首先,我們需要運(yùn)行以下命令將當(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/主機(jī)名并使用步驟 4 中設(shè)置的憑據(jù)登錄。

登錄后,點(diǎn)擊+ New App按鈕,如下圖:

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

為您的應(yīng)用命名guestbook,使用該項(xiàng)目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

填寫完以上信息后,點(diǎn)擊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àn)閼?yīng)用程序尚未部署,并且尚未創(chuàng)建任何 Kubernetes 資源。要同步(部署)應(yīng)用程序,請運(yùn)行:

$ 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)已運(yù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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    509

    瀏覽量

    22440
  • 虛擬機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    966

    瀏覽量

    29316
  • Argo
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    4190
  • kubernetes
    +關(guān)注

    關(guān)注

    0

    文章

    243

    瀏覽量

    9062

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

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

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

    Android開發(fā)入門實(shí)戰(zhàn)

    Android開發(fā)入門實(shí)戰(zhàn)
    發(fā)表于 03-30 13:25

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    emWin 實(shí)戰(zhàn)指南

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

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

    LwIP應(yīng)用開發(fā)實(shí)戰(zhàn)指南—基于野火STM32—20210122
    發(fā)表于 01-17 14:34 ?8次下載
    主站蜘蛛池模板: 酒色激情网 | 亚洲qingse中文字幕久久 | 天堂网中文在线 | 99久热只有精品视频免费观看17 | 欧美另类xx | 色老头永久免费网站 | 深夜释放自己vlog糖心旧版本 | 午夜影剧院 | 深夜视频免费看 | 美人岛福利 | 国产欧美综合在线 | 国产福利午夜自产拍视频在线 | 日本一本一道久久香蕉免费 | ww欧洲ww在线视频看 | 99xxxx开心 | 天天干天天澡 | 日本加勒比黑人 | 中文字幕一区二区三区乱码aⅴ | 黄色免费的视频 | 日本黄视频在线观看 | 免费看曰批女人爽的视频网址 | 看毛片网站 | 国产精品福利一区 | 色视网站 | 啪啪小视频网站 | 一区二区三区精品视频 | 夜夜视频| 狠狠色噜噜狠狠狠狠888奇米 | 色秀网站 | 精品噜噜噜噜久久久久久久久 | 国产亚洲精品激情都市 | 亚洲免费网站 | 又粗又长又大又黄的日本视频 | 色天使亚洲综合在线观看 | 美日韩一级 | 日本亚洲精品成人 | 人人爱人人爽 | 久久影院朴妮唛 | 四虎影院国产精品 | 国产精品你懂的在线播放 | 在线观看高清免费播放 |