日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

本文介紹使用GitOps時的常見問題及解決方案。

GitOps如何連接私有Git倉庫?

私有Git倉庫通常會因安全問題而不能開通公網訪問,所以要使用ACK One GitOps連接私有Git倉庫發布應用,最主要的問題是解決網絡連通問題,其次是如何配置連接。

步驟一、配置域名解析,使GitOps可訪問私有Git倉庫

以下示例以Git倉庫域名git.abc.cn為例進行配置。

  1. 連通云下和云上ACK One VPC網絡。連接方式,請參見連接本地IDC和云上VPC

  2. 使用內網DNS解析來實現VPC內域名解析。

    1. 登錄云解析 DNS控制臺,在內網DNS解析 (PrivateZone)頁面單擊用戶域名頁簽,然后單擊添加域名(Zone),在彈出的面板中配置以下參數,單擊確定

      • 內置權威域名 (Zone)abc.cn(以Git倉庫域名git.abc.cn為例)

      • 子域名遞歸解析代理開啟

      • 域名生效范圍 > 阿里云VPC內網:選擇ACK One綁定的VPC

    2. 在域名列表中找到剛剛創建的PrivateZone,在其操作列單擊解析記錄,進入解析記錄頁面。

    3. 解析記錄頁面單擊添加記錄,在彈出的面板中配置以下參數,然后單擊確定

      • 記錄類型A

      • 主機記錄git(以Git倉庫域名git.abc.cn為例)

      • 記錄值:填寫內部Git倉庫的IP地址

    完成配置后,ACK One GitOps可以訪問到上面配置的私有Git倉庫,您可以通過GitOps控制臺/CLI連接倉庫,用于發布應用。

步驟二、通過控制臺或CLI連接Git倉庫

域名解析配置完成后,ACK One GitOps就可以訪問到對應的私有Git倉庫,您可以通過GitOps控制臺/CLI連接Git倉庫,用于發布應用。具體操作,請參見Private Repositories

GitOps控制臺上的Applications如何展示分組?

當GitOps控制臺上的Applications數量較多時,通過分組展示可以獲得更好的使用體驗。

在GitOps控制臺左側菜單欄,您可根據Favorites OnlySYNC STATUSHEALTH STATUS進行篩選,也可以通過LABELSPROJECTSCLUSTERSNAMESPACESAUTO SYNC進行分組展示。

image

運維人員如何控制應用發布?

在應用發布過程中,尤其在自動化CI/CD流水線中,往往需要控制發布,您可以通過以下方式進行控制:

  • 使用ManualSync模式的應用。運維人員在代碼推送后,檢查和確認應用是否符合要求,符合要求后手動點擊Sync同步應用到目標集群。

  • 修改應用部署倉庫中的鏡像版本:在非自動化監測鏡像倉庫鏡像變化時,運維人員需要對鏡像進行確認。確認無誤后,可以手動修改應用部署倉庫中的鏡像版本,以自動觸發ArgoCD的應用同步。

  • 建立code review機制:在自動化CI/CD流水線中,對業務代碼倉庫建立code review機制。運維人員code review通過后合并代碼,自動觸發CI build&push鏡像,ArgoCD自動監測鏡像變更,并自動發布到配置AutoSync的環境,您也可以手動發布到ManualSync的環境。

AgroCD的repo-server出現Out of diskspace報錯怎么辦?

問題現象

通過kubectl -nargocd logs xxxx命令查看日志,看到repo-server出現如下報錯信息:

'git checkout --force xxx' failed exit status 128: error: unable to write file templates/deployment.yaml\nfat al: sha1 file '/tmp/_argocd-repo/xxx/.git/index.lock' write error. Out of diskspace...

解決方案

該問題可通過增加ACK One GitOps ArgoCD組件的Pod的臨時存儲來解決。

當前ACK One GitOps ArgoCD組件使用ECI運行,默認具有30GiB的臨時存儲空間,增加臨時存儲空間的步驟如下,具體費用請參見臨時存儲空間計費

  1. ACK One控制臺獲取艦隊實例的KubeConfig,并通過Kubectl連接至艦隊實例。具體操作,請參見通過kubectl連接Kubernetes集群

  2. 在對應Deployment的Pod Template中,為Pod添加annotation k8s.aliyun.com/eci-extra-ephemeral-storage: "20Gi",其中臨時存儲空間大小可自定義。

    • 如果GitOps處于默認模式,在Deployment argocd-server中添加。

      kubectl edit deployment -nargocd argocd-server
    • 如果GitOps處于高可用模式,在Deployment argocd-dex-imageupdate-repo-server中添加。

      kubectl edit deployment -nargocd argocd-dex-imageupdate-repo-server
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      ...
    ...
    spec:
      template:
        metadata:
          annotations:
            ## 在30GiB的基礎上增加20GiB,共50GiB。增加的臨時存儲空間大小可自定義。
            k8s.aliyun.com/eci-extra-ephemeral-storage: "20Gi"
          ...
        ...
      ...

如何避免GitOps Application跟蹤到非應用資源?

背景信息

Argo CD使用labelapp.kubernetes.io/instance來追蹤K8s資源,當資源有這個label,并且值和Application Name一致,就會被Application追蹤到,造成應用的狀態一直處于OutOfSync,也可能會一直刪除這個非應用資源,為了避免這類非預期行為,有以下兩種解決方案。

解決方案

  • 方案1:在艦隊的argocd/argocd-cm中添加resource.exclusions來忽略被追蹤到的非應用資源,如下配置可忽略CiliumIdentity資源。

apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-cm
  labels:
    app.kubernetes.io/name: argocd-cm
    app.kubernetes.io/part-of: argocd
data:
  ...
  resource.exclusions: |
    - apiGroups:
      - cilium.io
      kinds:
      - CiliumIdentity
      clusters:
      - "*"
  • 方案2:在艦隊的argocd/argocd-cm中添加自定義標簽application.instanceLabelKey: argocd.argoproj.io/instance。添加后,使用Argo CD下發的應用的資源則會包含labelargocd.argoproj.io/instance,從而不會追蹤到僅有labelapp.kubernetes.io/instance的資源。配置生效后,現有的Application狀態可能顯示為OutOfSync

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: argocd-cm
      labels:
        app.kubernetes.io/name: argocd-cm
        app.kubernetes.io/part-of: argocd
    data:
      ...
      application.instanceLabelKey: argocd.argoproj.io/instance