<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # GitLab Managed Apps > 原文:[https://docs.gitlab.com/ee/user/clusters/applications.html](https://docs.gitlab.com/ee/user/clusters/applications.html) * [Installing applications](#installing-applications) * [Helm](#helm) * [Enable or disable local Tiller](#enable-or-disable-local-tiller-core-only) * [cert-manager](#cert-manager) * [GitLab Runner](#gitlab-runner) * [Ingress](#ingress) * [Determining the external endpoint automatically](#determining-the-external-endpoint-automatically) * [Determining the external endpoint manually](#determining-the-external-endpoint-manually) * [Using a static IP](#using-a-static-ip) * [Pointing your DNS at the external endpoint](#pointing-your-dns-at-the-external-endpoint) * [Web Application Firewall (ModSecurity)](#web-application-firewall-modsecurity) * [Logging and blocking modes](#logging-and-blocking-modes) * [WAF version updates](#waf-version-updates) * [Viewing Web Application Firewall traffic](#viewing-web-application-firewall-traffic) * [JupyterHub](#jupyterhub) * [Jupyter Git Integration](#jupyter-git-integration) * [Knative](#knative) * [Prometheus](#prometheus) * [Crossplane](#crossplane) * [Elastic Stack](#elastic-stack) * [Optional: deploy Kibana to perform advanced queries](#optional-deploy-kibana-to-perform-advanced-queries) * [Fluentd](#fluentd) * [Future apps](#future-apps) * [Install using GitLab CI/CD (alpha)](#install-using-gitlab-cicd-alpha) * [Usage](#usage) * [Important notes](#important-notes) * [Install Ingress using GitLab CI/CD](#install-ingress-using-gitlab-cicd) * [Install cert-manager using GitLab CI/CD](#install-cert-manager-using-gitlab-cicd) * [Install Sentry using GitLab CI/CD](#install-sentry-using-gitlab-cicd) * [Install PostHog using GitLab CI/CD](#install-posthog-using-gitlab-cicd) * [Install Prometheus using GitLab CI/CD](#install-prometheus-using-gitlab-cicd) * [Install GitLab Runner using GitLab CI/CD](#install-gitlab-runner-using-gitlab-cicd) * [Install Cilium using GitLab CI/CD](#install-cilium-using-gitlab-cicd) * [Install Falco using GitLab CI/CD](#install-falco-using-gitlab-cicd) * [Install Vault using GitLab CI/CD](#install-vault-using-gitlab-cicd) * [Install JupyterHub using GitLab CI/CD](#install-jupyterhub-using-gitlab-cicd) * [Install Elastic Stack using GitLab CI/CD](#install-elastic-stack-using-gitlab-cicd) * [Install Crossplane using GitLab CI/CD](#install-crossplane-using-gitlab-cicd) * [Install Fluentd using GitLab CI/CD](#install-fluentd-using-gitlab-cicd) * [Install Knative using GitLab CI/CD](#install-knative-using-gitlab-cicd) * [Knative Metrics](#knative-metrics) * [Uninstall Knative](#uninstall-knative) * [Install AppArmor using GitLab CI/CD](#install-apparmor-using-gitlab-cicd) * [Using AppArmor profiles in your deployments](#using-apparmor-profiles-in-your-deployments) * [Upgrading applications](#upgrading-applications) * [Uninstalling applications](#uninstalling-applications) * [Troubleshooting applications](#troubleshooting-applications) * [Error installing managed apps on EKS cluster](#error-installing-managed-apps-on-eks-cluster) * [Unable to install Prometheus](#unable-to-install-prometheus) # GitLab Managed Apps[](#gitlab-managed-apps "Permalink") GitLab 提供**GitLab 托管應用程序** ,一鍵安裝各種應用程序,可以直接將其添加到配置的集群中. 使用[Auto DevOps](../../topics/autodevops/index.html)時, [Review Apps](../../ci/review_apps/index.html)和[部署](../../ci/environments/index.html)需要這些應用程序. 您可以在[創建集群](../project/clusters/add_remove_clusters.html)后安裝它們. ## Installing applications[](#installing-applications "Permalink") 由 GitLab `gitlab-managed-apps`將安裝到`gitlab-managed-apps`命名空間中. 該名稱空間: * 與用于項目部署的名稱空間不同. * 創建一次. * 具有不可配置的名稱. 查看可用安裝的應用程序列表. 為一個: * [項目級集群](../project/clusters/index.html) ,導航到項目的 **運營> Kubernetes** . * [小組級別的集群](../group/clusters/index.html) ,導航到您小組的 **Kubernetes**頁面. **注意:**從 GitLab 11.6 開始,Helm 將在安裝任何應用程序之前升級到 GitLab 支持的最新版本. 可以安裝以下應用程序: * [Helm](#helm) * [Ingress](#ingress) * [cert-manager](#cert-manager) * [Prometheus](#prometheus) * [GitLab Runner](#gitlab-runner) * [JupyterHub](#jupyterhub) * [Knative](#knative) * [Crossplane](#crossplane) * [Elastic Stack](#elastic-stack) * [Fluentd](#fluentd) 除 Knative 外,這些應用程序將安裝在名為`gitlab-managed-apps`的專用命名空間中. **注意:**某些應用程序僅可用于項目級集群安裝. 計劃在將來的發行版中支持在組級群集中安裝這些應用程序. 有關更新,請參閱[問題跟蹤進度](https://gitlab.com/gitlab-org/gitlab/-/issues/24411) .**注意:**如果您現有的 Kubernetes 集群已安裝 Helm,則應謹慎使用,因為 GitLab 無法檢測到它. 在這種情況下,通過應用程序安裝 Helm 將導致集群對其進行兩次配置,這可能導致部署期間的混亂. ### Helm[](#helm "Permalink") 版本歷史 * 在 GitLab 10.2 中針對項目級集群引入. * 在 GitLab 11.6 中針對組級集群引入. * 在 GitLab 13.2 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/209736)了本地 Tiller 選項,該選項在功能標記后(默認情況下啟用). * 在 GitLab.com 上啟用了本地 Tiller 的功能標志. [Helm](https://helm.sh/docs/)是 Kubernetes 的軟件包管理器,用于安裝 GitLab 管理的應用程序. GitLab 在集群內`gitlab-managed-apps`命名空間內的 pod 中運行每個`helm`命令. 從 GitLab 13.2 開始,集成默認使用本地[Tiller](https://v2.helm.sh/docs/glossary/#tiller) . 使用本地 Tiller 時,不需要安裝 Helm 應用程序,也不會顯示在應用程序列表中. **注意:** GitLab 的 Helm 集成不支持在代理后面安裝應用程序,但是可以使用一種[解決方法](../../topics/autodevops/index.html#install-applications-behind-a-proxy) . ### Enable or disable local Tiller[](#enable-or-disable-local-tiller-core-only "Permalink") 版本歷史 * 在 GitLab 13.2 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/209736) * [計劃](https://gitlab.com/gitlab-org/gitlab/-/issues/209736)在 GitLab 13.3 中[刪除](https://gitlab.com/gitlab-org/gitlab/-/issues/209736)禁用本地 Tiller 的選項 本地分 iller 正在開發中,但已準備好用于生產. 它部署在**默認情況下啟用**的功能標志的后面. [有權訪問 GitLab Rails 控制臺的 GitLab 管理員](../../administration/feature_flags.html)可以為您的實例啟用它. 要啟用它: ``` # Instance-wide Feature.enable(:managed_apps_local_tiller) ``` 禁用它: ``` # Instance-wide Feature.disable(:managed_apps_local_tiller) ``` ### cert-manager[](#cert-manager "Permalink") 在 GitLab 11.6 中針對項目級和組級集群引入. [cert-manager](https://cert-manager.io/docs/)是本地 Kubernetes 證書管理控制器,可幫助頒發證書. 在群集上安裝 cert-manager 將通過[Let's Encrypt](https://letsencrypt.org/)頒發證書,并確保證書有效和最新. 用于安裝此應用程序的圖表取決于所使用的 GitLab 版本. 在: * 在 GitLab 12.3 及更高版本中, [jetstack / cert-manager](https://github.com/jetstack/cert-manager)圖表與[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/cert_manager/values.yaml)文件一起使用. * 在 GitLab 12.2 和更早版本中,使用了[穩定/證書管理器](https://github.com/helm/charts/tree/master/stable/cert-manager)圖表. 如果您在 GitLab 12.3 之前安裝了 cert-manager,那么我們加密將[阻止來自較早版本 cert-manager 的請求](https://community.letsencrypt.org/t/blocking-old-cert-manager-versions/98753) . 要解決此問題: 1. 卸載 cert-manager(考慮[備份任何其他配置](https://cert-manager.io/docs/tutorials/backup/) ). 2. 再次安裝 cert-manager. ### GitLab Runner[](#gitlab-runner "Permalink") 版本歷史 * 在 GitLab 10.6 中針對項目級集群引入. * 在 GitLab 11.10 中針對組級集群引入. [GitLab Runner](https://docs.gitlab.com/runner/)是一個開源項目,用于運行您的作業并將結果發送回 GitLab. 它與[GitLab CI / CD](../../ci/README.html)結合使用, [GitLab CI / CD](../../ci/README.html)是 GitLab 隨附的用于協調作業的開源持續集成服務. 如果該項目在 GitLab.com 上,則可以使用共享的 Runners(前 2000 分鐘是免費的,以后您可以[購買更多](../../subscriptions/index.html#purchasing-additional-ci-minutes) ),并且如果它們足以滿足您的需求,則不必部署它. 如果需要特定于項目的運行器,或者沒有共享的運行器,則部署它很容易. 請注意,已部署的 Runner 將設置為**privileged** ,這意味著它實際上將具有對基礎計算機的 root 訪問權限. 這是構建 Docker 映像所必需的,因此它是默認設置. 在部署前,請確保已閱讀[安全隱患](../project/clusters/index.html#security-implications) . **注意:** [`runner/gitlab-runner`](https://gitlab.com/gitlab-org/charts/gitlab-runner)圖表用于使用[預先配置的`values.yaml`](https://gitlab.com/gitlab-org/charts/gitlab-runner/-/blob/master/values.yaml)文件安裝此應用程序. 不支持通過修改此文件來自定義安裝. ### Ingress[](#ingress "Permalink") 版本歷史 * 在 GitLab 10.2 中針對項目級集群引入. * 在 GitLab 11.6 中針對組級集群引入. [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/)提供開箱即用的負載平衡,SSL 終止和基于名稱的虛擬主機. 它充當應用程序的 Web 代理,如果要使用[Auto DevOps](../../topics/autodevops/index.html)或部署自己的 Web 應用程序,則很有用. 安裝的 Ingress Controller 是[Ingress-NGINX](https://kubernetes.io/docs/concepts/services-networking/ingress/) ,由 Kubernetes 社區支持. **注意:**通過以下過程,必須在群集中安裝負載均衡器才能獲取端點. 如果使用 Knative,則可以使用 Ingress 或 Knative 自己的負載平衡器( [Istio](https://istio.io) ). In order to publish your web application, you first need to find the endpoint which will be either an IP address or a hostname associated with your load balancer. 要安裝它,請點擊 Ingress 的**安裝**按鈕. GitLab 將嘗試確定外部端點,并且它應在幾分鐘之內可用. #### Determining the external endpoint automatically[](#determining-the-external-endpoint-automatically "Permalink") 在 GitLab 10.6 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17052) . 安裝 Ingress 之后,外部端點應在幾分鐘之內可用. **提示:**可以使用`KUBE_INGRESS_BASE_DOMAIN`環境變量將此端點用于[Auto DevOps 基礎域](../../topics/autodevops/index.html#auto-devops-base-domain) . 如果沒有出現端點,并且您的集群在 Google Kubernetes Engine 上運行: 1. [在 Google Kubernetes Engine 上](https://console.cloud.google.com/kubernetes)檢查您的[Kubernetes 集群,](https://console.cloud.google.com/kubernetes)以確保其節點上沒有錯誤. 2. 確保您在 Google Kubernetes Engine 上有足夠的[配額](https://console.cloud.google.com/iam-admin/quotas) . 有關更多信息,請參見[資源配額](https://cloud.google.com/compute/quotas) . 3. 檢查[Google Cloud 的狀態,](https://status.cloud.google.com/)以確保它們沒有任何中斷. 安裝后,您可能會看到一個`?` 取決于云提供商的"入口 IP 地址". 特別是對于 EKS,這是因為 ELB 是使用 DNS 名稱而不是 IP 地址創建的. 如果 GitLab 仍然無法確定您的 Ingress 或 Knative 應用程序的端點,則可以[手動確定它](#determining-the-external-endpoint-manually) . **注意:** [`stable/nginx-ingress`](https://github.com/helm/charts/tree/master/stable/nginx-ingress)圖表用于通過[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/ingress/values.yaml)文件安裝此應用程序. #### Determining the external endpoint manually[](#determining-the-external-endpoint-manually "Permalink") 如果群集位于 GKE 上,請單擊" **高級設置"中**的**Google Kubernetes Engine**鏈接,或直接轉到[Google Kubernetes Engine 儀表板,](https://console.cloud.google.com/kubernetes/)然后選擇適當的項目和群集. 然后單擊" **連接"** ,然后在本地終端或使用**Cloud Shell**執行`gcloud`命令. 如果集群不在 GKE 上,請按照 Kubernetes 提供程序的特定說明使用正確的憑據配置`kubectl` . 以下示例的輸出將顯示集群的外部端點. 然后,可以使用此信息來設置 DNS 條目和轉發規則,以允許外部訪問已部署的應用程序. If you installed Ingress via the **Applications**, run the following command: ``` kubectl get service --namespace=gitlab-managed-apps ingress-nginx-ingress-controller -o jsonpath='{.status.loadBalancer.ingress[0].ip}' ``` 有些 Kubernetes 集群會返回主機名,例如[Amazon EKS](https://aws.amazon.com/eks/) . 對于這些平臺,運行: ``` kubectl get service --namespace=gitlab-managed-apps ingress-nginx-ingress-controller -o jsonpath='{.status.loadBalancer.ingress[0].hostname}' ``` 對于 Istio / Knative,命令將有所不同: ``` kubectl get svc --namespace=istio-system istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip} ' ``` 否則,您可以列出所有負載均衡器的 IP 地址: ``` kubectl get svc --all-namespaces -o jsonpath='{range.items[?(@.status.loadBalancer.ingress)]}{.status.loadBalancer.ingress[*].ip} ' ``` **注意:**如果使用 EKS,還將創建一個[Elastic Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/) ,這將產生額外的 AWS 成本.**注意:**在某些 Kubernetes 版本上,您可能會看到尾隨`%` , **但不要包括它** . 入口現在在此地址可用,并將基于請求中的 DNS 名稱將傳入請求路由到適當的服務. 為此,應為所需的域名創建通配符 DNS CNAME 記錄. 例如, `*.myekscluster.com`將指向之前獲得的 Ingress 主機名. #### Using a static IP[](#using-a-static-ip "Permalink") 默認情況下,臨時外部 IP 地址與群集的負載平衡器關聯. 如果您將臨時 IP 與 DNS 關聯,并且 IP 更改,則將無法訪問您的應用程序,因此您必須再次更改 DNS 記錄. 為了避免這種情況,您應該將其更改為靜態保留的 IP. 閱讀如何[在 GKE 中提升臨時外部 IP 地址](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address#promote_ephemeral_ip) . #### Pointing your DNS at the external endpoint[](#pointing-your-dns-at-the-external-endpoint "Permalink") 設置外部終結點后,應將其與[通配符 DNS 記錄(](https://en.wikipedia.org/wiki/Wildcard_DNS_record)例如`*.example.com.`相關聯`*.example.com.` 為了能夠訪問您的應用. 如果您的外部端點是 IP 地址,請使用 A 記錄. 如果您的外部端點是主機名,請使用 CNAME 記錄. #### Web Application Firewall (ModSecurity)[](#web-application-firewall-modsecurity "Permalink") 在 GitLab 12.7 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21966) . Web 應用程序防火墻(WAF)可以檢查正在發送或接收的流量,并可以在惡意流量到達您的應用程序之前對其進行阻止. WAF 的好處是: * 實時監控您的應用程序 * 將所有 HTTP 通信記錄到應用程序 * 您的應用程序的訪問控制 * 高度可配置的日志記錄和阻止規則 開箱即用,GitLab 為您提供了一個稱為[`ModSecurity`](https://www.modsecurity.org/)的 WAF. ModSecurity 是用于實時 Web 應用程序監視,日志記錄和訪問控制的工具包. 借助 GitLab 的產品,將自動應用[OWASP 的 Core Rule Set](https://www.modsecurity.org/CRS/Documentation/) (提供通用的攻擊檢測功能). 此功能: * 除非另有配置,否則以"僅檢測模式"運行. * 通過檢查您的 Ingress 控制器的`modsec`日志中是否有違反規則可以查看. 例如: ``` kubectl logs -n gitlab-managed-apps $(kubectl get pod -n gitlab-managed-apps -l app=nginx-ingress,component=controller --no-headers=true -o custom-columns=:metadata.name) modsecurity-log -f ``` 要啟用 WAF,請在安裝或更新[Ingress 應用程序](#ingress)時將其相應的切換開關切換到啟用位置. 如果這是您首次使用 GitLab 的 WAF,我們建議您遵循[快速入門指南](../../topics/web_application_firewall/quick_start_guide.html) . 通過啟用 ModSecurity,性能開銷很小. 如果這對于您的應用程序而言很重要,則可以通過以下任何一種方式為已部署的應用程序禁用 ModSecurity 的規則引擎: 1. Setting [the deployment variable](../../topics/autodevops/index.html) `AUTO_DEVOPS_MODSECURITY_SEC_RULE_ENGINE` to `Off`. This will prevent ModSecurity from processing any requests for the given application or environment. 2. 將其各自的切換開關切換到禁用位置,然后通過" **保存更改"**按鈕應用更改. 這將使用最新更改重新安裝 Ingress. [![Disabling WAF](https://img.kancloud.cn/8e/7b/8e7bb7fc885eba0f9e5a9731251037a3_1936x1040.png)](../../topics/web_application_firewall/img/guide_waf_ingress_save_changes_v12_10.png) ##### Logging and blocking modes[](#logging-and-blocking-modes "Permalink") 為了幫助您調整 WAF 規則,可以將 WAF 全局設置為" **日志記錄"**或" **阻止"**模式: * **日志記錄模式** -允許符合規則的流量通過并記錄事件. * **阻止模式** -阻止符合規則的流量通過,并記錄事件. 更改 WAF 的模式: 1. 如果尚未[安裝 ModSecurity](../../topics/web_application_firewall/quick_start_guide.html) ,請[安裝它](../../topics/web_application_firewall/quick_start_guide.html) . 2. 導航 **運營>州長** . 3. In **Applications**, scroll to **Ingress**. 4. 在" **全局默認值"下** ,選擇所需的模式. 5. Click **保存更改**. ##### WAF version updates[](#waf-version-updates "Permalink") 由于[Helm 的](https://helm.sh/)限制,在以后的發行版中可能會克服這些問題,因此僅在同一版本的[Ingress 中](#ingress)才允許啟用,禁用或更改**ModSecurity**的日志記錄模式. 如果所部署的版本與 GitLab 中可用的版本不同,則將禁用**ModSecurity** UI 控件,而仍可以執行[Ingress](#ingress)級別的操作,例如卸載: [![WAF settings disabled](https://img.kancloud.cn/df/5c/df5c3cbeec51e09317dcb3958533c668_1930x936.png)](../../topics/web_application_firewall/img/guide_waf_ingress_disabled_settings_v12_10.png) 將[Ingress](#ingress)更新到最新版本使您能夠利用錯誤修復,安全修復和性能改進. 要更新[Ingress 應用程序](#ingress) ,您必須首先將其卸載,然后按照[Install ModSecurity 中的說明](../../topics/web_application_firewall/quick_start_guide.html)進行重新[安裝](../../topics/web_application_firewall/quick_start_guide.html) . ##### Viewing Web Application Firewall traffic[](#viewing-web-application-firewall-traffic "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14707) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.9. 您可以通過導航到項目的" **安全性和合規性">"威脅監視"**頁面來查看 Web 應用程序防火墻的流量. 從那里,您可以看到隨著時間的推移進行跟蹤: * 您的應用程序的總流量. * Web 應用程序防火墻的默認[OWASP 規則集](https://www.modsecurity.org/CRS/Documentation/)認為異常的流量比例. 如果很大一部分流量是異常的,則應[檢查](#web-application-firewall-modsecurity)潛在的威脅,這可以通過[檢查 Web 應用程序防火墻日志](#web-application-firewall-modsecurity)來完成. [![Threat Monitoring](https://img.kancloud.cn/d9/9a/d99ac2bca0e495e783d18476c9de5ced_1185x1008.png)](img/threat_monitoring_v12_9.png) ### JupyterHub[](#jupyterhub "Permalink") 版本歷史 * 在 GitLab 11.0 中針對項目級集群引入. * 在 GitLab 12.3 中針對組和實例級集群引入. [JupyterHub](https://jupyterhub.readthedocs.io/en/stable/)是用于在團隊中管理筆記本的多用戶服務. [Jupyter Notebook](https://jupyter-notebook.readthedocs.io/en/latest/)提供了一個基于 Web 的交互式編程環境,用于數據分析,可視化和機器學習. Authentication will be enabled only for [project members](../project/members/index.html) for project-level clusters and group members for group-level clusters with [Developer or higher](../permissions.html) access to the associated project or group. 我們使用一個[自定義的 Jupyter 映像](https://gitlab.com/gitlab-org/jupyterhub-user-image/blob/master/Dockerfile) ,該[映像](https://gitlab.com/gitlab-org/jupyterhub-user-image/blob/master/Dockerfile)將在基礎 Jupyter 之上安裝其他有用的軟件包. 您還將看到使用 Nurtch 的[Rubix 庫](https://github.com/Nurtch/rubix)構建的即用型 DevOps Runbook. 有關創建可執行運行本的更多信息,請參見[我們的運行本文檔](../project/clusters/runbooks/index.html#configure-an-executable-runbook-with-gitlab) . 請注意,必須先安裝 Ingress 并分配 IP 地址,然后才能安裝 JupyterHub. **注意:** [`jupyter/jupyterhub`](https://jupyterhub.github.io/helm-chart/)圖表用于通過[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/jupyter/values.yaml)文件安裝此應用程序. #### Jupyter Git Integration[](#jupyter-git-integration "Permalink") 版本歷史 * 在 GitLab 12.0 中針對項目級集群[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/28783) . * 在 GitLab 12.3 中針對組和實例級集群[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/32512) . 將 JupyterHub 安裝到 Kubernetes 集群上時,將使用已驗證用戶的身份自動配置和配置[JupyterLab 的 Git 擴展](https://github.com/jupyterlab/jupyterlab-git) : * Name. * Email. * 新創建的訪問令牌. JupyterLab 的 Git 擴展使您能夠對筆記本進行完整版本控制,并在 Jupyter 中發布 Git 命令. Git 命令可以通過左側面板上的**Git**選項卡或 Jupyter 的命令行提示符發出. **注意:** JupyterLab 的 Git 擴展將用戶令牌以加密格式存儲在 JupyterHub DB 中,并以純文本形式存儲在單個用戶 Jupyter 實例中. 這是因為[Git 要求將憑據存儲為純文本](https://git-scm.com/docs/git-credential-store) . 潛在地,如果一個邪惡的用戶在單用戶 Jupyter 實例中找到一種從文件系統讀取的方法,則他們可以檢索令牌. [![Jupyter's Git Extension](https://img.kancloud.cn/79/eb/79eb87439ae548107887cae1fd2e3650_709x515.png)](img/jupyter-git-extension.gif) 您可以從 Jupyter 的"文件"選項卡中克隆存儲庫: [![Jupyter clone repository](https://img.kancloud.cn/2c/76/2c7665bf161a30e42c89fbf48b7dcc7f_1138x694.png)](img/jupyter-gitclone.png) ### Knative[](#knative "Permalink") 版本歷史 * 在 GitLab 11.5 中針對項目級集群引入. * 在 GitLab 12.3 中針對組和實例級集群引入. [Knative](https://cloud.google.com/knative/)提供了一個平臺,用于從 Kubernetes 集群創建,部署和管理無服務器工作負載. 它與[Istio](https://istio.io)結合使用并包括在內, [以為 Knative](https://istio.io)托管的所有程序提供外部 IP 地址. 系統將提示您輸入一個通配符域,您的應用程序將在該域中公開. 配置您的 DNS 服務器以使用該域的外部 IP 地址. 對于創建和安裝的任何應用程序,可以通過`<program_name>.<kubernetes_namespace>.<domain_name>` . 這將要求您的 Kubernetes 群集[啟用 RBAC](../project/clusters/add_remove_clusters.html#rbac-cluster-resources) . **Note:** The [`knative/knative`](https://storage.googleapis.com/triggermesh-charts) chart is used to install this application. ### Prometheus[](#prometheus "Permalink") 版本歷史 * 在 GitLab 10.4 中針對項目級集群引入. * 在 GitLab 11.11 中針對組級集群引入. [Prometheus](https://s0prometheus0io.icopy.site/docs/introduction/overview/)是一個開源監視和警報系統,可用于監督已部署的應用程序. GitLab 能夠使用[Prometheus 集成](../project/integrations/prometheus.html)自動監視應用程序. Kubernetes 容器的 CPU 和內存指標將自動收集,響應指標也將從 NGINX Ingress 檢索. 要啟用監視,只需使用" **安裝"**按鈕將 Prometheus 安裝到群集中. **注意:** [`stable/prometheus`](https://github.com/helm/charts/tree/master/stable/prometheus)圖表用于通過[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/prometheus/values.yaml)文件安裝此應用程序. ### Crossplane[](#crossplane "Permalink") 版本歷史 * 在 GitLab 12.5 中針對項目級集群[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/34702) . [Crossplane](https://crossplane.github.io/docs/v0.9/)是一種多云控制平面,可用于跨多個云管理應用程序和基礎架構. 它使用以下方法擴展了 Kubernetes API: * 自定義資源. * 監視那些自定義資源的控制器. Crossplane 通過抽象特定于云提供商的配置,以統一的方式允許跨云提供商進行基礎架構組件的供應和生命周期管理. Crossplane GitLab 管理的應用程序: * 在連接到項目存儲庫的 Kubernetes 集群上使用選擇的提供程序安裝 Crossplane. * 然后可以用于通過 Auto DevOps 管道來配置基礎結構或托管應用程序,例如 PostgreSQL(例如,來自 GCP 的 CloudSQL 或來自 AWS 的 RDS)以及該應用程序所需的其他服務. 有關配置群集上安裝的 Crossplane 的信息,請參閱[Crossplane 配置](crossplane.html) . **注意:** [`alpha/crossplane`](https://github.com/crossplane/crossplane/tree/v0.4.1/cluster/charts/crossplane) crossplane 圖表 v0.4.1 用于通過[`values.yaml`](https://github.com/crossplane/crossplane/blob/master/cluster/charts/crossplane/values.yaml.tmpl)文件安裝 Crossplane. ### Elastic Stack[](#elastic-stack "Permalink") 在 GitLab 12.7 中針對項目級和組級集群引入. [Elastic Stack](https://www.elastic.co/elastic-stack)是一個完整的端到端日志分析解決方案,可幫助深入搜索,分析和可視化從不同計算機生成的日志. GitLab 能夠自動從集群中的 Pod 收集日志. Filebeat 將在集群中的每個節點上作為 DaemonSet 運行,并將容器日志發送到 Elasticsearch 進行查詢. 然后,GitLab 將連接到 Elasticsearch 以獲取日志而不是 Kubernetes API,您將可以使用更高級的查詢功能. 使用[Curator](https://www.elastic.co/guide/en/elasticsearch/client/curator/5.5/about.html)在 30 天后會自動刪除日志數據. 要啟用日志傳送: 1. 確保您的集群至少包含 3 個實例類型大于`f1-micro` , `g1-small`或`n1-standard-1`節點. 2. 導航 **運營>州長** . 3. 在**Kubernetes Cluster 中** ,選擇一個集群. 4. 在" **應用程序"**部分中,找到" **Elastic Stack"** ,然后單擊" **安裝"** . **注意:** [`gitlab/elastic-stack`](https://gitlab.com/gitlab-org/charts/elastic-stack)圖用于通過[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/elastic_stack/values.yaml)文件安裝此應用程序.**注意:**該圖表部署了 3 個相同的 Elasticsearch Pod,這些 Pod 無法共置,每個 Pod 需要 1 個 CPU 和 2 GB RAM,從而使其與包含少于 3 個節點或由`f1-micro` , `g1-small` , `n1-standard-1`組成的集群不兼容`n1-standard-1`或`*-highcpu-2`實例類型.**注意:** Elastic Stack 群集應用程序旨在用作日志聚合解決方案,并且與我們的[Advanced Global Search](../search/advanced_global_search.html)功能無關,后者使用單獨的 Elasticsearch 群集. #### Optional: deploy Kibana to perform advanced queries[](#optional-deploy-kibana-to-perform-advanced-queries "Permalink") 如果您是高級用戶,并且可以使用`kubectl`和`helm`直接訪問 Kubernetes 集群,則可以手動部署 Kibana. 下面假設`helm`已經[初始化](https://v2.helm.sh/docs/helm/)與`helm init` . 將以下內容保存到`kibana.yml` : ``` elasticsearch: enabled: false filebeat: enabled: false kibana: enabled: true elasticsearchHosts: http://elastic-stack-elasticsearch-master.gitlab-managed-apps.svc.cluster.local:9200 ``` 然后將其安裝在您的集群上: ``` helm repo add gitlab https://charts.gitlab.io helm install --name kibana gitlab/elastic-stack --values kibana.yml ``` 要訪問 Kibana,請將端口轉發到本地計算機: ``` kubectl port-forward svc/kibana-kibana 5601:5601 ``` 然后,您可以通過`http://localhost:5601`訪問 Kibana. ### Fluentd[](#fluentd "Permalink") 在 GitLab 12.10 中針對項目級和組級集群引入. [Fluentd](https://www.fluentd.org/)是一個開源數據收集器,它使您能夠統一數據收集和使用以更好地使用和理解數據. Fluentd 以 syslog 格式發送日志. To enable Fluentd: 1. 導航 **操作> Kubernetes** ,然后單擊**應用程序** . 系統將提示您輸入主機,端口和協議,WAF 日志將通過 syslog 發送到該主機,端口和協議. 2. 在**SIEM Hostname 中**提供主機域名或 URL. 3. 在**SIEM Port 中**提供主機端口號. 4. 選擇一個**SIEM 協議** . 5. 選擇至少一個可用日志(例如 WAF 或 Cilium). 6. Click **保存更改**. [![Fluentd input fields](https://img.kancloud.cn/7c/85/7c8561b7676aa0e5c4392ba3e59b998d_1934x862.png)](img/fluentd_v13_0.png) ### Future apps[](#future-apps "Permalink") 有興趣貢獻一個新的 GitLab 托管應用程序嗎? 訪問[開發指南頁面](../../development/kubernetes.html#gitlab-managed-apps)以開始使用. ## Install using GitLab CI/CD (alpha)[](#install-using-gitlab-cicd-alpha "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20822) in GitLab 12.6. **警告:**這是*Alpha 版*功能,如有更改,恕不另行通知. 這種替代方法允許用戶使用 GitLab CI / CD 安裝由 GitLab 管理的應用程序. 它還允許使用 Helm `values.yaml`文件來自定義安裝. 支持的應用程序: * [Ingress](#install-ingress-using-gitlab-cicd) * [cert-manager](#install-cert-manager-using-gitlab-cicd) * [Sentry](#install-sentry-using-gitlab-cicd) * [GitLab Runner](#install-gitlab-runner-using-gitlab-cicd) * [Cilium](#install-cilium-using-gitlab-cicd) * [Falco](#install-falco-using-gitlab-cicd) * [Vault](#install-vault-using-gitlab-cicd) * [JupyterHub](#install-jupyterhub-using-gitlab-cicd) * [Elastic Stack](#install-elastic-stack-using-gitlab-cicd) * [Crossplane](#install-crossplane-using-gitlab-cicd) * [Fluentd](#install-fluentd-using-gitlab-cicd) * [Knative](#install-knative-using-gitlab-cicd) * [PostHog](#install-posthog-using-gitlab-cicd) * [Prometheus](#install-prometheus-using-gitlab-cicd) ### Usage[](#usage "Permalink") 您可以在[示例集群應用程序項目中](https://gitlab.com/gitlab-org/cluster-integration/example-cluster-applications/)找到并導入下面引用的所有文件. 要使用 GitLab CI / CD 安裝應用程序: 1. 將集群連接到[集群管理項目](management_project.html) . 2. 在該項目中,添加具有以下內容的`.gitlab-ci.yml`文件: ``` include: - template: Managed-Cluster-Applications.gitlab-ci.yml ``` **注意:**此模板提供的作業使用自定義 Docker 映像中提供的工具連接到集群. 它要求您具有在 Docker,Kubernetes 或 Docker Machine 執行器上注冊的運行程序. 3. 添加`.gitlab/managed-apps/config.yaml`文件,以定義要安裝的應用程序. 將已`installed`密鑰定義為`true`以安裝應用程序,將`false`為卸載應用程序. 例如,要安裝 Ingress: ``` ingress: installed: true ``` 4. (可選)定義`.gitlab/managed-apps/<application>/values.yaml`文件,以自定義已安裝應用程序的值. 然后,一個 GitLab CI / CD 管道將在`master`分支上運行,以安裝您配置的應用程序. 萬一管道發生故障, [Helm Tiller](https://v2.helm.sh/docs/install/#running-tiller-locally)二進制文件的輸出將另存為[CI 作業工件](../../ci/pipelines/job_artifacts.html) . ### Important notes[](#important-notes "Permalink") 請注意以下幾點: * 我們建議僅使用集群管理項目來管理集群的部署. 不要將應用程序的源代碼添加到此類項目中. * 當您將`installed`密鑰的值`installed`回`false` ,將從群集中取消配置該應用程序. * 如果使用新值更新`.gitlab/managed-apps/<application>/values.yaml` ,則將重新部署該應用程序. ### Install Ingress using GitLab CI/CD[](#install-ingress-using-gitlab-cicd "Permalink") 要安裝 Ingress,請使用以下命令定義`.gitlab/managed-apps/config.yaml`文件: ``` ingress: installed: true ``` 然后,Ingress 將安裝到集群的`gitlab-managed-apps`命名空間中. You can customize the installation of Ingress by defining a `.gitlab/managed-apps/ingress/values.yaml` file in your cluster management project. Refer to the [chart](https://github.com/helm/charts/tree/master/stable/nginx-ingress) for the available configuration options. **注意:** GitLab 配置組提供了對安裝 Ingress 托管應用程序的支持. 如果您遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并從[Configure 組中](https://about.gitlab.com/handbook/product/categories/#configure-group) ping 通至少 2 個人. ### Install cert-manager using GitLab CI/CD[](#install-cert-manager-using-gitlab-cicd "Permalink") 通過在`.gitlab/managed-apps/config.yaml`定義配置,使用 GitLab CI / CD 安裝了 cert-manager. cert-manager: * 已安裝到集群的`gitlab-managed-apps`命名空間中. * Can be installed with or without a default [Let’s Encrypt `ClusterIssuer`](https://cert-manager.io/docs/configuration/acme/), which requires an email address to be specified. The email address is used by Let’s Encrypt to contact you about expiring certificates and issues related to your account. 使用 GitLab CI / CD 安裝證書管理器需要以下配置: ``` certManager: installed: true letsEncryptClusterIssuer: installed: true email: "user@example.com" ``` 以下使用 GitLab CI / CD 安裝 cert-manager,而沒有默認的`ClusterIssuer` : ``` certManager: installed: true letsEncryptClusterIssuer: installed: false ``` 您可以通過在集群管理項目中定義`.gitlab/managed-apps/cert-manager/values.yaml`文件來自定義 cert-manager 的安裝. 請參閱[圖表](https://hub.helm.sh/charts/jetstack/cert-manager)以獲取可用的配置選項. **注意:** GitLab 配置組提供了對安裝 Cert Manager 托管應用程序的支持. 如果您遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并從[Configure 組中](https://about.gitlab.com/handbook/product/categories/#configure-group) ping 通至少 2 個人. ### Install Sentry using GitLab CI/CD[](#install-sentry-using-gitlab-cicd "Permalink") **注意:** Sentry Helm 圖表[建議](https://github.com/helm/charts/blob/f6e5784f265dd459c5a77430185d0302ed372665/stable/sentry/values.yaml#L284-L285)至少 3GB 的可用 RAM 用于數據庫遷移. To install Sentry, define the `.gitlab/managed-apps/config.yaml` file with: ``` sentry: installed: true ``` 然后,將 Sentry 安裝到集群的`gitlab-managed-apps`命名空間中. 您可以通過在集群管理項目中定義`.gitlab/managed-apps/sentry/values.yaml`文件來自定義 Sentry 的安裝. 請參閱[圖表](https://github.com/helm/charts/tree/master/stable/sentry)以獲取可用的配置選項. 我們建議您密切注意以下配置選項: * `email` . 需要邀請用戶加入您的 Sentry 實例并發送錯誤電子郵件. * `user` . 您可以在其中設置默認管理員用戶的登錄憑據. * `postgresql` . 有關在將來運行更新時可以使用的 PostgreSQL 密碼. **注意:**升級時,重要的是提供現有的 PostgreSQL 密碼(使用`postgresql.postgresqlPassword`密鑰提供),否則您將收到認證錯誤. 有關更多信息,請參見[PostgreSQL 圖表文檔](https://github.com/helm/charts/tree/master/stable/postgresql#upgrade) . 這是 Sentry 的示例配置: ``` # Admin user to create user: # Indicated to create the admin user or not, # Default is true as the initial installation. create: true email: "<your email>" password: "<your password>" email: from_address: "<your from email>" host: smtp port: 25 use_tls: false user: "<your email username>" password: "<your email password>" enable_replies: false ingress: enabled: true hostname: "<sentry.example.com>" # Needs to be here between runs. # See https://github.com/helm/charts/tree/master/stable/postgresql#upgrade for more info postgresql: postgresqlPassword: example-postgresql-password ``` **注意:** GitLab Health 組為安裝 Sentry 托管應用程序提供支持. 如果您遇到未知問題,請[打開一個新的問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并從[健康小組](https://about.gitlab.com/handbook/product/product-categories/#health-group) ping 至少 2 個人. ### Install PostHog using GitLab CI/CD[](#install-posthog-using-gitlab-cicd "Permalink") [PostHog](https://www.posthog.com)是開發人員友好的開源產品分析平臺. 要將 PostHog 安裝到群集的`gitlab-managed-apps`命名空間中,請使用以下`.gitlab/managed-apps/config.yaml`定義`.gitlab/managed-apps/config.yaml`文件: ``` posthog: installed: true ``` 您可以通過在群集管理項目中定義`.gitlab/managed-apps/posthog/values.yaml`來自定義`.gitlab/managed-apps/posthog/values.yaml`的安裝. 有關可用的配置選項,請參閱[PostHog 圖表的自述文件](https://github.com/PostHog/charts/tree/master/charts/posthog)的" [配置"部分](https://github.com/PostHog/charts/tree/master/charts/posthog) . **注意:**您必須在`postgresql.postgresqlPassword`提供 PostgreSQL 密碼,否則將收到身份驗證錯誤. 有關更多信息,請參見[PostgreSQL 圖表文檔](https://github.com/helm/charts/tree/master/stable/postgresql#upgrade) . Redis Pod 在升級之間重新啟動. 為防止停機,請使用`redis.password`鍵提供 Redis 密碼. 這樣可以防止在每次重新啟動時生成新密碼. 這是 PostHog 的示例配置: ``` ingress: enabled: true hostname: "<posthog.example.com>" # This will be autogenerated if you skip it. Include if you have 2 or more web replicas posthogSecret: 'long-secret-key-used-to-sign-cookies' # Needs to be here between runs. # See https://github.com/helm/charts/tree/master/stable/postgresql#upgrade for more info postgresql: postgresqlPassword: example-postgresql-password # Recommended to set this to a value to redis prevent downtime between upgrades redis: password: example-redis-password ``` **注意:** PostHog 團隊對 PostHog 托管應用程序提供支持. 如果遇到問題,請直接[打開支持憑單](https://github.com/PostHog/posthog/issues/new/choose) . ### Install Prometheus using GitLab CI/CD[](#install-prometheus-using-gitlab-cicd "Permalink") 在 GitLab 12.8 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25138) . [Prometheus](https://s0prometheus0io.icopy.site/docs/introduction/overview/)是用于監視已部署應用程序的開源監視和警報系統. 要將 Prometheus 安裝到群集的`gitlab-managed-apps`命名空間中,請使用以下`.gitlab/managed-apps/config.yaml`定義`.gitlab/managed-apps/config.yaml`文件: ``` prometheus: installed: true ``` 您可以通過在群集管理項目中定義`.gitlab/managed-apps/prometheus/values.yaml`來定制 Prometheus 的安裝. 有關可用的配置選項,請參閱[Prometheus 圖的 README](https://github.com/helm/charts/tree/master/stable/prometheus#configuration)的[Configuration(配置)部分](https://github.com/helm/charts/tree/master/stable/prometheus#configuration) . **注意:** GitLab APM 組提供了對安裝 Prometheus 托管應用程序的支持. 如果遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并 ping [APM 組中的](https://about.gitlab.com/handbook/product/product-categories/#apm-group)至少 2 個人. ### Install GitLab Runner using GitLab CI/CD[](#install-gitlab-runner-using-gitlab-cicd "Permalink") 通過在`.gitlab/managed-apps/config.yaml`定義配置,使用 GitLab CI / CD 安裝了 GitLab Runner. 使用 GitLab CI / CD 安裝 GitLab Runner 需要以下配置: ``` gitlabRunner: installed: true ``` GitLab Runner 已安裝到集群的`gitlab-managed-apps`命名空間中. 為了使 GitLab Runner 運行, **必須**指定以下內容: * `gitlabUrl`用于注冊 Runner 的 GitLab 服務器完整 URL(例如, `https://example.gitlab.com` `gitlabUrl` ). * `runnerRegistrationToken`用于將新的`runnerRegistrationToken`添加到 GitLab 的注冊令牌. 這必須[從您的 GitLab 實例中檢索](../../ci/runners/README.html) . 這些值可以使用[CI 變量](../../ci/variables/README.html)指定: * `GITLAB_RUNNER_GITLAB_URL`將用于`gitlabUrl` . * `GITLAB_RUNNER_REGISTRATION_TOKEN`將用于`runnerRegistrationToken` 您可以通過在集群管理項目中定義`.gitlab/managed-apps/gitlab-runner/values.yaml`文件來自定義 GitLab Runner 的安裝. 請參閱[圖表](https://gitlab.com/gitlab-org/charts/gitlab-runner)以獲取可用的配置選項. **注意:** GitLab Runner 組提供了對安裝 Runner 管理的應用程序的支持. 如果您遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并 ping [Runner 組中的](https://about.gitlab.com/handbook/product/product-categories/#runner-group)至少 2 個人. ### Install Cilium using GitLab CI/CD[](#install-cilium-using-gitlab-cicd "Permalink") [Introduced](https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/merge_requests/22) in GitLab 12.8. [Cilium](https://cilium.io/)是[Kubernetes](https://cilium.io/)的網絡插件,可用于實現對[NetworkPolicy](https://kubernetes.io/docs/concepts/services-networking/network-policies/)資源的支持. 有關更多信息,請參閱[網絡策略](../../topics/autodevops/stages.html#network-policy) . 有關概述,請參見[GitLab 12.8](https://www.youtube.com/watch?v=pgUEdhdhoUI)的[容器網絡安全演示](https://www.youtube.com/watch?v=pgUEdhdhoUI) . 在`.gitlab/managed-apps/config.yaml`文件中啟用 Cilium 進行安裝: ``` # possible values are gke, eks or you can leave it blank clusterType: gke cilium: installed: true ``` `clusterType`變量為相應的群集類型啟用建議的 Helm 變量. 默認值為空白. 您可以在官方文檔中檢查每種群集類型的建議變量: * [Google GKE](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-gke/#deploy-cilium) * [AWS EKS](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-eks/#deploy-cilium) 您可以通過在集群管理項目中定義`.gitlab/managed-apps/cilium/values.yaml`文件來自定義 Cilium 的 Helm 變量. 有關可用的配置選項,請參閱[Cilium 圖表](https://github.com/cilium/cilium/tree/master/install/kubernetes/cilium) . **注意:**安裝和拆卸纖毛的需要**手動** [重新啟動](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-gke/#restart-unmanaged-pods)在所有命名空間所有受影響的吊艙,以確保它們[管理](https://docs.cilium.io/en/stable/troubleshooting/#ensure-pod-is-managed-by-cilium)由正確的網絡插件.**注意:**主要升級可能需要其他設置步驟,請查閱官方[升級指南](https://docs.cilium.io/en/stable/install/upgrade/)以獲取更多信息. 默認情況下,Cilium 會在策略部署時丟棄所有不允許的數據包. 但是,在[auditmode](https://docs.cilium.io/en/v1.8/gettingstarted/policy-creation/?highlight=policy-audit#enable-policy-audit-mode)中,Cilium 不會丟棄不允許的數據包. 您可以使用`policy-verdict`日志來觀察與策略相關的決策. 您可以通過將以下內容添加到`.gitlab/managed-apps/cilium/values.yaml`來啟用審核模式: ``` config: policyAuditMode: true agent: monitor: eventTypes: ["drop", "policy-verdict"] ``` 用于流量的 Cilium 監視器日志由`cilium-monitor`邊車容器注銷. 您可以使用以下命令檢查這些日志: ``` kubectl -n gitlab-managed-apps logs cilium-XXXX cilium-monitor ``` 您可以在`.gitlab/managed-apps/cilium/values.yaml`禁用監視器日志: ``` agent: monitor: enabled: false ``` 默認情況下,啟用了[Hubble](https://github.com/cilium/hubble)監視守護程序,并將其設置為收集每個命名空間流指標. 可在" [威脅監控"](../application_security/threat_monitoring/index.html)儀表板上訪問此指標. 您可以通過將以下內容添加到`.gitlab/managed-apps/cilium/values.yaml`來禁用 Hubble: ``` global: hubble: enabled: false ``` 您還可以通過`.gitlab/managed-apps/cilium/values.yaml`來為哈勃調整 Helm 值: ``` global: hubble: enabled: true metrics: enabled: - 'flow:sourceContext=namespace;destinationContext=namespace' ``` **注意:** GitLab Container Security 組提供了對安裝 Cilium 托管應用程序的支持. 如果您遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并 ping 通至少來自[Container Security 組的](https://about.gitlab.com/handbook/product/product-categories/#container-security-group) 2 個人. ### Install Falco using GitLab CI/CD[](#install-falco-using-gitlab-cicd "Permalink") 在 GitLab 13.1 中[引入](https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/merge_requests/91) . GitLab 容器主機安全監視使用[Falco](https://falco.org/)作為運行時安全工具,該工具使用 eBPF 偵聽 Linux 內核. Falco 實時解析系統調用并針對可配置的規則引擎聲明流. 有關更多信息,請參見[Falco 的文檔](https://falco.org/docs/) . 您可以在`.gitlab/managed-apps/config.yaml`文件中啟用 Falco: ``` falco: installed: true ``` 您可以通過在集群管理項目中定義`.gitlab/managed-apps/falco/values.yaml`文件來自定義 Falco 的 Helm 變量. 有關可用的配置選項,請參考[Falco 圖表](https://github.com/falcosecurity/charts/tree/master/falco) . **警告:**默認情況下,eBPF 支持已啟用,Falco 將使用[eBPF 探針](https://falco.org/docs/event-sources/drivers/#using-the-ebpf-probe)將系統調用傳遞到用戶空間. 如果您的群集不支持此功能,則可以通過將以下內容添加到`.gitlab/managed-apps/falco/values.yaml` ,將其配置為使用 Falco 內核模塊: ``` ebpf: enabled: false ``` 在極少數情況下,無法在群集上自動安裝探針并且未預編譯內核/探針,您可能需要手動準備帶有[driverkit](https://github.com/falcosecurity/driverkit#against-a-kubernetes-cluster)的內核模塊或 eBPF 探針,并將其安裝在每個群集節點上. 默認情況下,Falco 部署的規則有限. 要添加更多規則,請將以下內容添加到`.gitlab/managed-apps/falco/values.yaml` (您可以從[Cloud Native Security Hub 中](https://securityhub.dev/)獲取示例): ``` customRules: file-integrity.yaml: |- - rule: Detect New File desc: detect new file created condition: > evt.type = chmod or evt.type = fchmod output: > File below a known directory opened for writing (user=%user.name command=%proc.cmdline file=%fd.name parent=%proc.pname pcmdline=%proc.pcmdline gparent=%proc.aname[2]) priority: ERROR tags: [filesystem] - rule: Detect New Directory desc: detect new directory created condition: > mkdir output: > File below a known directory opened for writing (user=%user.name command=%proc.cmdline file=%fd.name parent=%proc.pname pcmdline=%proc.pcmdline gparent=%proc.aname[2]) priority: ERROR tags: [filesystem] ``` 默認情況下,Falco 僅將安全事件作為 JSON 對象輸出到日志. 要將其設置為輸出到[外部 API](https://falco.org/docs/alerts/#https-output-send-alerts-to-an-https-end-point)或[應用程序](https://falco.org/docs/alerts/#program-output) ,請將以下內容添加到`.gitlab/managed-apps/falco/values.yaml` : ``` falco: programOutput: enabled: true keepAlive: false program: mail -s "Falco Notification" someone@example.com httpOutput: enabled: true url: http://some.url ``` 您可以使用以下命令檢查這些日志: ``` kubectl logs -l app=falco -n gitlab-managed-apps ``` **注意:** GitLab Container Security 組提供了對安裝 Falco 托管應用程序的支持. 如果您遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并 ping 通至少來自[Container Security 組的](https://about.gitlab.com/handbook/product/product-categories/#container-security-group) 2 個人. ### Install Vault using GitLab CI/CD[](#install-vault-using-gitlab-cicd "Permalink") 在 GitLab 12.9 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/9982) . [Hashicorp Vault](https://www.vaultproject.io/)是一個秘密管理解決方案,可用于安全地管理和存儲密碼,憑據,證書等. 可以利用 Vault 安裝為應用程序,GitLab CI / CD 作業等中使用的憑據提供一個安全的數據存儲. 它還可以用作向基礎結構中的系統和部署提供 SSL / TLS 證書的方式. 通過將 Vault 作為所有這些憑據的單一來源,可以通過對所有敏感憑據和證書具有單一的訪問,控制和可審核性來源,從而提高安全性. To install Vault, enable it in the `.gitlab/managed-apps/config.yaml` file: ``` vault: installed: true ``` 默認情況下,您將獲得基本的保險柜設置,沒有可擴展的存儲后端. 這對于簡單的測試和小規模部署就足夠了,盡管限制了它可以擴展的規模,并且由于它是單實例部署,因此在升級 Vault 應用程序時會遇到停機時間. 為了在生產環境中最佳地使用 Vault,理想的是充分了解 Vault 的內部結構以及如何配置它. 這可以通過閱讀[Vault 文檔](https://www.vaultproject.io/docs/internals)以及 Vault Helm 圖表[`values.yaml`文件來完成](https://github.com/hashicorp/vault-helm/blob/v0.3.3/values.yaml) . 至少您可能會設置: * 用于對主密鑰進行額外加密的[印章](https://www.vaultproject.io/docs/configuration/seal) . * 適合于環境和存儲安全性要求的[存儲后端](https://www.vaultproject.io/docs/configuration/storage) . * [HA Mode](https://www.vaultproject.io/docs/concepts/ha). * [The Vault UI](https://www.vaultproject.io/docs/configuration/ui). 以下是一個示例值文件( `.gitlab/managed-apps/vault/values.yaml` ),該文件使用 Google Cloud Storage 后端,啟用 Vault UI 并啟用具有 3 個 pod 的 HA,將 Google 密鑰管理服務配置為自動`.gitlab/managed-apps/vault/values.yaml`副本. 下面的`storage`和`seal`節是示例,應替換為特定于您的環境的設置. ``` # Enable the Vault WebUI ui: enabled: true server: # Disable the built in data storage volume as it's not safe for Hight Availability mode dataStorage: enabled: false # Enable High Availability Mode ha: enabled: true # Configure Vault to listen on port 8200 for normal traffic and port 8201 for inter-cluster traffic config: | listener "tcp" { tls_disable = 1 address = "[::]:8200" cluster_address = "[::]:8201" } # Configure Vault to store its data in a GCS Bucket backend storage "gcs" { path = "gcs://my-vault-storage/vault-bucket" ha_enabled = "true" } # Configure Vault to automatically unseal storage using a GKMS key seal "gcpckms" { project = "vault-helm-dev-246514" region = "global" key_ring = "vault-helm-unseal-kr" crypto_key = "vault-helm-unseal-key" } ``` 成功安裝保險柜后,您將需要[初始化保險柜](https://learn.hashicorp.com/vault/getting-started/deploy#initializing-the-vault)并獲取初始根令牌. 為此,您將需要訪問已將 Vault 部署到的 Kubernetes 群集. 要初始化 Vault,請在 Kubernetes 內部運行的一個 Vault 容器中安裝一個外殼(通常是通過使用`kubectl`命令行工具來完成). 將外殼放入吊艙后,運行`vault operator init`命令: ``` kubectl -n gitlab-managed-apps exec -it vault-0 sh / $ vault operator init ``` 這應該為您提供解封密鑰和初始根令牌. 確保記下這些內容并保持安全,因為您將需要它們在保險柜的整個生命周期內將其解封. **注意:** GitLab 版本管理組提供了對安裝 Vault 托管應用程序的支持. 如果您遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并從" [發行管理"組](https://about.gitlab.com/handbook/product/product-categories/#release-management-group) ping 至少 2 個人. ### Install JupyterHub using GitLab CI/CD[](#install-jupyterhub-using-gitlab-cicd "Permalink") 在 GitLab 12.8 中[引入](https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/merge_requests/40) . 通過在`.gitlab/managed-apps/config.yaml`定義配置,使用 GitLab CI / CD 安裝`.gitlab/managed-apps/config.yaml` ,如下所示: ``` jupyterhub: installed: true gitlabProjectIdWhitelist: [] gitlabGroupWhitelist: [] ``` 在配置中: * `gitlabProjectIdWhitelist`將 GitLab 身份驗證限制為僅指定項目的成員. * `gitlabGroupWhitelist`將 GitLab 身份驗證限制為僅指定組的成員. * 為兩者指定一個空數組將允許 GitLab 實例上的任何用戶登錄. JupyterHub 已安裝到集群的`gitlab-managed-apps`命名空間中. 為了使 JupyterHub 正常運行,您必須設置一個[OAuth 應用程序](../../integration/oauth_provider.html) . 組: * “Redirect URI” to `http://<JupyterHub Host>/hub/oauth_callback`. * `api read_repository write_repository` "范圍". 此外,必須使用[CI 變量](../../ci/variables/README.html)指定以下[變量](../../ci/variables/README.html) : | 可變 CI | Description | | --- | --- | | `JUPYTERHUB_PROXY_SECRET_TOKEN` | 用于簽名來自集線器的通信的安全字符串. 請參閱[`proxy.secretToken`](https://zero-to-jupyterhub.readthedocs.io/en/stable/reference/reference.html#proxy-secrettoken) . | | `JUPYTERHUB_COOKIE_SECRET` | 用于簽署安全 cookie 的安全字符串. 參見[`hub.cookieSecret`](https://zero-to-jupyterhub.readthedocs.io/en/stable/reference/reference.html#hub-cookiesecret) . | | `JUPYTERHUB_HOST` | 用于安裝的主機名. 例如, `jupyter.gitlab.example.com` . | | `JUPYTERHUB_GITLAB_HOST` | 用于身份驗證的 GitLab 實例的主機名. 例如, `gitlab.example.com` . | | `JUPYTERHUB_AUTH_CRYPTO_KEY` | 一個 32 字節的加密密鑰,用于設置[`auth.state.cryptoKey`](https://zero-to-jupyterhub.readthedocs.io/en/stable/reference/reference.html#auth-state-cryptokey) . | | `JUPYTERHUB_AUTH_GITLAB_CLIENT_ID` | OAuth 應用程序的"應用程序 ID". | | `JUPYTERHUB_AUTH_GITLAB_CLIENT_SECRET` | OAuth 應用程序的"秘密". | 默認情況下,將使用[默認值文件](https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/blob/master/src/default-data/jupyterhub/values.yaml.gotmpl)安裝 JupyterHub. 您可以通過在群集管理項目中定義`.gitlab/managed-apps/jupyterhub/values.yaml`文件來自定義`.gitlab/managed-apps/jupyterhub/values.yaml`的安裝. 有關可用的配置選項,請參考[圖表參考](https://zero-to-jupyterhub.readthedocs.io/en/stable/reference/reference.html) . **注意:** GitLab 配置組提供了對安裝 JupyterHub 托管應用程序的支持. 如果您遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并從[Configure 組中](https://about.gitlab.com/handbook/product/categories/#configure-group) ping 通至少 2 個人. ### Install Elastic Stack using GitLab CI/CD[](#install-elastic-stack-using-gitlab-cicd "Permalink") 在 GitLab 12.8 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25138) . 通過在`.gitlab/managed-apps/config.yaml`定義配置,使用 GitLab CI / CD 安裝 Elastic Stack. 使用 GitLab CI / CD 安裝 Elastic Stack 需要以下配置: ``` elasticStack: installed: true ``` Elastic Stack 已安裝到集群的`gitlab-managed-apps`命名空間中. 您可以檢查默認[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/vendor/elastic_stack/values.yaml)我們此圖表設置. 您可以通過在集群管理項目中定義`.gitlab/managed-apps/elastic-stack/values.yaml`文件來自定義 Elastic Stack 的安裝. 請參閱[圖表](https://gitlab.com/gitlab-org/charts/elastic-stack)以獲取可用的配置選項. **注意:**在通過 CI 安裝 Elastic Stack 的 alpha 實現中,不支持通過 Elasticsearch 讀取環境日志. 如果[通過 UI 安裝,](#elastic-stack)則支持此功能.**注意:** GitLab APM 組提供了對安裝 Elastic Stack 托管應用程序的支持. 如果遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并 ping [APM 組中的](https://about.gitlab.com/handbook/product/product-categories/#apm-group)至少 2 個人. ### Install Crossplane using GitLab CI/CD[](#install-crossplane-using-gitlab-cicd "Permalink") 在 GitLab 12.9 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/35675) . 通過在`.gitlab/managed-apps/config.yaml`定義配置,使用 GitLab CI / CD 安裝 Crossplane. 使用 GitLab CI / CD 安裝 Crossplane 需要以下配置: ``` Crossplane: installed: true ``` Crossplane 已安裝到集群的`gitlab-managed-apps`命名空間中. 您可以檢查默認[`values.yaml`](https://github.com/crossplane/crossplane/blob/master/cluster/charts/crossplane/values.yaml.tmpl)我們此圖表設置. 您可以通過在集群管理項目中定義`.gitlab/managed-apps/crossplane/values.yaml`文件來自定義 Crossplane 的安裝. 請參閱[圖表](https://github.com/crossplane/crossplane/tree/master/cluster/charts/crossplane#configuration)以獲取可用的配置選項. 請注意,此鏈接指向當前開發版本的文檔,該文檔可能與您安裝的版本不同. **注意:** Crossplane 團隊提供對 Crossplane 托管應用程序的支持. 如果遇到問題,請直接[打開支持憑單](https://github.com/crossplane/crossplane/issues/new/choose) . ### Install Fluentd using GitLab CI/CD[](#install-fluentd-using-gitlab-cicd "Permalink") 在 GitLab 12.10 中[引入](https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/merge_requests/76) . 要使用 GitLab CI / CD 將`gitlab-managed-apps`安裝到群集的`gitlab-managed-apps`命名空間中,請在`.gitlab/managed-apps/config.yaml`定義以下配置: ``` Fluentd: installed: true ``` 您也可以在[`values.yaml`](https://github.com/helm/charts/blob/master/stable/fluentd/values.yaml)文件中查看為此圖表設置的默認值. 您可以通過在群集管理項目中定義`.gitlab/managed-apps/fluentd/values.yaml`文件來自定義`.gitlab/managed-apps/fluentd/values.yaml`的安裝. 有關可用的配置選項,請參閱[Fluentd 當前開發版本](https://github.com/helm/charts/tree/master/stable/fluentd#configuration)的[配置表](https://github.com/helm/charts/tree/master/stable/fluentd#configuration) . **注意:**配置圖表鏈接指向當前的開發版本,該版本可能與您安裝的版本不同. 為了確保兼容性,請切換到您正在使用的特定分支或標簽.**注意:** GitLab Container Security 組提供了對安裝 Fluentd 托管應用程序的支持. 如果您遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并 ping 通至少來自[Container Security 組的](https://about.gitlab.com/handbook/product/product-categories/#container-security-group) 2 個人. ### Install Knative using GitLab CI/CD[](#install-knative-using-gitlab-cicd "Permalink") 要安裝 Knative,請使用以下命令定義`.gitlab/managed-apps/config.yaml`文件: ``` knative: installed: true ``` 您可以通過在集群管理項目中定義`.gitlab/managed-apps/knative/values.yaml`文件來自定義`.gitlab/managed-apps/knative/values.yaml`的安裝. 請參閱[圖表](https://gitlab.com/gitlab-org/charts/knative)以獲取可用的配置選項. 這是 Knative 的示例配置: ``` domain: 'my.wildcard.A.record.dns' ``` 如果計劃使用 GitLab 無服務器功能,請確保在自定義配置上設置 A 記錄通配符域. **注意:** GitLab 配置組提供了對安裝 Knative 托管應用程序的支持. 如果您遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并從[Configure 組中](https://about.gitlab.com/handbook/product/categories/#configure-group) ping 通至少 2 個人. #### Knative Metrics[](#knative-metrics "Permalink") GitLab 為您的函數提供了[調用指標](../project/clusters/serverless/index.html#invocation-metrics) . 要收集這些指標,您必須具有: 1. 在群集上安裝了 Knative 和 Prometheus 托管的應用程序. 2. 通過運行以下命令在群集上手動應用自定義指標: ``` kubectl apply -f https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/raw/02c8231e30ef5b6725e6ba368bc63863ceb3c07d/src/default-data/knative/istio-metrics.yaml ``` #### Uninstall Knative[](#uninstall-knative "Permalink") 要卸載 Knative,必須首先通過運行以下命令手動刪除已添加的所有自定義指標: ``` kubectl delete -f https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/raw/02c8231e30ef5b6725e6ba368bc63863ceb3c07d/src/default-data/knative/istio-metrics.yaml ``` ### Install AppArmor using GitLab CI/CD[](#install-apparmor-using-gitlab-cicd "Permalink") 在 GitLab 13.1 中[引入](https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/merge_requests/100) . 要使用 GitLab CI / CD 將 AppArmor 安裝到群集的`gitlab-managed-apps`命名空間中,請在`.gitlab/managed-apps/config.yaml`定義以下配置: ``` apparmor: installed: true ``` 您可以通過將它們添加到`.gitlab/managed-apps/apparmor/values.yaml`來定義一個或多個 AppArmor 配置文件,如下所示: ``` profiles: profile-one: |- profile profile-one { file, } ``` 有關此圖表的更多信息,請參考[AppArmor](https://gitlab.com/gitlab-org/charts/apparmor)圖表. #### Using AppArmor profiles in your deployments[](#using-apparmor-profiles-in-your-deployments "Permalink") 安裝 AppAmor 之后,您可以通過添加 Pod 注釋來使用配置文件. 如果您使用的是 Auto DevOps,則可以[自定義`auto-deploy-values.yaml`](../../topics/autodevops/customize.html#customize-values-for-helm-chart)來注釋您的 Pod. 盡管了解[自定義屬性列表](https://gitlab.com/gitlab-org/charts/auto-deploy-app#gitlabs-auto-deploy-helm-chart)會有所幫助,但只需`podAnnotations`如下所示設置`podAnnotations` : ``` podAnnotations: container.apparmor.security.beta.kubernetes.io/auto-deploy-app: localhost/profile-one ``` 此處唯一要更改的信息是配置文件名稱,在本示例中為`profile-one` . 有關如何在 Kubernetes 中集成[AppArmor](https://kubernetes.io/docs/tutorials/clusters/apparmor/#securing-a-pod)的更多信息,請參考[AppArmor 教程](https://kubernetes.io/docs/tutorials/clusters/apparmor/#securing-a-pod) . **注意:** GitLab Container Security 組提供了對安裝 AppArmor 托管應用程序的支持. 如果您遇到未知問題,請[打開一個新問題,](https://gitlab.com/gitlab-org/gitlab/-/issues/new)并 ping 通至少來自[Container Security 組的](https://about.gitlab.com/handbook/product/product-categories/#container-security-group) 2 個人. ## Upgrading applications[](#upgrading-applications "Permalink") 在 GitLab 11.8 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24789) . 以下應用程序可以升級. | Application | GitLab 版本 | | --- | --- | | Runner | 11.8+ | 升級應用程序: 1. 為一個: * [在項目級別的集群中](../project/clusters/index.html) ,導航到項目的**Operations> Kubernetes** . * [組級別集群](../group/clusters/index.html) ,導航到您組的**Kubernetes**頁面. 2. 選擇您的集群. 3. 如果有升級,將顯示" **升級"**按鈕. 單擊按鈕進行升級. **注意:**升級會將值重置為`runner`圖表中內置的值, [`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/runner/values.yaml)設置的值. ## Uninstalling applications[](#uninstalling-applications "Permalink") 在 GitLab 11.11 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/60665) . 可以卸載以下應用程序. | Application | GitLab 版本 | Notes | | --- | --- | --- | | cert-manager | 12.2+ | 關聯的私鑰將被刪除,并且無法還原. 部署的應用程序將繼續使用 HTTPS,但是不會續訂證書. 卸載之前,您可能希望[備份配置](https://cert-manager.io/docs/tutorials/backup/)或[吊銷證書](https://letsencrypt.org/docs/revoking/) . | | 亞搏體育 app Runner | 12.2+ | 任何正在運行的管道將被取消. | | Helm | 12.2+ | 關聯的 Tiller 容器, `gitlab-managed-apps`命名空間及其所有資源將被刪除,并且無法還原. | | Ingress | 12.1+ | 關聯的負載均衡器和 IP 將被刪除,并且無法還原. 此外,僅當未安裝 JupyterHub 時才能將其卸載. | | JupyterHub | 12.1+ | 所有未提交到 GitLab 的數據將被刪除,并且無法還原. | | Knative | 12.1+ | 關聯的 IP 將被刪除,無法恢復. | | Prometheus | 11.11+ | 所有數據將被刪除,無法還原. | | Crossplane | 12.5+ | 所有數據將被刪除,無法還原. | | 彈性堆疊 | 12.7+ | 所有數據將被刪除,無法還原. | | Sentry | 12.6+ | PostgreSQL 永久卷將保留,應手動刪除以完全卸載. | 卸載應用程序: 1. 為一個: * [在項目級別的集群中](../project/clusters/index.html) ,導航到項目的**Operations> Kubernetes** . * [組級別集群](../group/clusters/index.html) ,導航到您組的**Kubernetes**頁面. 2. 選擇您的集群. 3. 單擊該應用程序的" **卸載"**按鈕. 支持逐步卸載所有支持的應用程序. 要了解進度,請參閱[相關的史詩](https://gitlab.com/groups/gitlab-org/-/epics/1201) . ## Troubleshooting applications[](#troubleshooting-applications "Permalink") 應用程序可能因以下錯誤而失敗: ``` Error: remote error: tls: bad certificate ``` 為避免安裝錯誤: * 在開始安裝應用程序之前,請確保您的 GitLab 服務器和 Kubernetes 集群之間的時間已同步. * 確保證書不同步. 在安裝應用程序時,GitLab 需要一個沒有先前安裝的 Helm 的新集群. 您可以通過`kubectl`確認證書匹配: ``` kubectl get configmaps/values-content-configuration-ingress -n gitlab-managed-apps -o \ "jsonpath={.data['cert\.pem']}" | base64 -d > a.pem kubectl get secrets/tiller-secret -n gitlab-managed-apps -o "jsonpath={.data['ca\.crt']}" | base64 -d > b.pem diff a.pem b.pem ``` ### Error installing managed apps on EKS cluster[](#error-installing-managed-apps-on-eks-cluster "Permalink") 如果您在 AWS EKS 上使用托管集群,但無法安裝某些托管應用程序,請考慮檢查日志. 您可以通過運行以下命令來檢查日志: ``` kubectl get pods --all-namespaces kubectl get services --all-namespaces ``` 如果遇到`Failed to assign an IP address to container`錯誤,則可能是由于您在 AWS 配置中指定的實例類型. 節點的數量和大小可能沒有足夠的 IP 地址來運行或安裝這些 Pod. 作為參考,可以[在 GitHub 上的此 AWS 存儲庫](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/pkg/awsutils/vpc_ip_resource_limit.go)中找到所有 AWS 實例 IP 限制(搜索`InstanceENIsAvailable` ). ### Unable to install Prometheus[](#unable-to-install-prometheus "Permalink") Prometheus 安裝失敗,出現以下錯誤: ``` # kubectl -n gitlab-managed-apps logs install-prometheus ... Error: Could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: admission.certmanager.k8s.io/v1beta1: the server is currently unable to handle the request ``` 這是在 Helm `2.15`中引入并在`3.0.2`修復的錯誤. 解決方法是,在安裝 Prometheus 之前,需要確保已成功安裝[`cert-manager`](#cert-manager) .
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看