chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

馬哥Linux運維 ? 來源:CSDN技術社區(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

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

2. Argo CD基礎知識

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

2.1 學習基礎知識

? 閱讀在線 Docker 和 Kubernetes 教程:

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

?Kubernetes 簡介

?教程

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

?Kustomize

?helm

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

?GitHub Actions 文檔

?Jenkins 用戶指南

3. Argo CD核心概念

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

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

?應用程序源類型使用哪種工具來構建應用程序。

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

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

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

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

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

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

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

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

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

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

4. 架構

4.1 架構概述

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

4.2 組成

4.2.1 API 服務器

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

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

? 調用應用程序操作(例如同步、回滾、用戶定義的操作)

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

? 身份驗證和授權委托給外部身份提供商

? RBAC 實施

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

4.2.2 存儲庫服務器

存儲庫服務器是一項內部服務,它維護保存應用程序清單的 Git 存儲庫的本地緩存。它負責在提供以下輸入時生成并返回 Kubernetes 清單:

? 存儲庫 URL

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

? 應用程序路徑

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

4.2.3 應用程序控制器

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

4.3 怎么運行的

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

?自定義應用程序部署

?helmcharts

?jsonnet文件

? YAML/json 清單的純目錄

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

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

5. Argo CD入門

要求

? 已安裝kubectl命令行工具。

? 有一個kubeconfig文件(默認位置是~/.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 服務和應用程序資源將存儲在其中。

注意:

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

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

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

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

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

注意:

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

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

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

注意:

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

5.2 下載 Argo CD CLI

從github中下載最新的 Argo CD 版本。可以通過CLI 安裝文檔找到更詳細的安裝說明。

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

brew install argocd

5.3 訪問 Argo CD API 服務器

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

? 將 argocd-server 服務類型更改為LoadBalancer

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

? ingress

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

? 轉發(fā)端口

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

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

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

5.4 使用 CLI 登錄

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

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

argocd admin initial-password -n argocd

提示:

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

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

argocd login 

注意:

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

? 向每個 CLI 命令添加--port-forward-namespace argocd標志。

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

使用以下命令更改密碼:

argocd account update-password

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

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

首先列出當前 kubeconfig 中的所有集群上下文:

kubectl config get-contexts -o name

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

argocd cluster add docker-desktop

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

注意:

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

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

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

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

首先,我們需要運行以下命令將當前命名空間設置為 argocd:

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

使用以下命令創(chuà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)建應用程序

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

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

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

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

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

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

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

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

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

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

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

5.7 同步應用程序

?通過 CLI 同步

一旦創(chuà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


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

$ 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清單。留言簿應用程序現(xiàn)已運行,您現(xiàn)在可以查看其資源組件、日志、事件和評估的健康狀況。

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

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

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

    關注

    0

    文章

    521

    瀏覽量

    22800
  • 虛擬機
    +關注

    關注

    1

    文章

    968

    瀏覽量

    30156
  • Argo
    +關注

    關注

    0

    文章

    4

    瀏覽量

    4225
  • kubernetes
    +關注

    關注

    0

    文章

    256

    瀏覽量

    9403

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

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

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

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

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

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

    受限于單個文件不能超過5M,所以分成10個壓縮包分別上傳。 野火STM32系列叢書《STM32 HAL 庫開發(fā)實戰(zhàn)指南—基于H750》,內容殷實,講解詳細,適合入門和提高,非常不錯
    發(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學習入門經典教材
    發(fā)表于 11-02 15:44 ?0次下載

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

    本文檔內容介紹了基于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ā)》經典案例

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

    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 ?57次下載

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

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

    emWin 實戰(zhàn)指南

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

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

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