aquasecurity/aqua-helm

GitHub: aquasecurity/aqua-helm

这是一个用于在 Kubernetes 中部署 Aqua Security 安全组件的 Helm Charts 仓库,简化安全基础设施的安装和管理。

Stars: 89 | Forks: 189

# 概述 本页提供了在 Kubernetes 集群中使用 [Helm 包管理器](https://helm.sh/) 部署 Aqua Enterprise 的说明。 请参考 Aqua Enterprise 产品文档以了解更广泛的背景:[使用 Helm Charts 部署 Kubernetes](https://docs.aquasec.com/v2022.4/docs/kubernetes-with-helm)。 ## 目录 - [概述](#overview) - [目录](#contents) - [Helm Charts](#helm-charts) - [部署说明](#deployment-instructions) - [(可选) 添加 Aqua Helm 仓库](#optional-add-the-aqua-helm-repository) - [适用于 Helm 2.x](#for-helm-2x) - [适用于 Helm 3.x](#for-helm-3x) - [部署 Helm Charts](#deploy-the-helm-charts) - [错误 2](#error-2) - [错误 3](#error-3) - [快速启动部署(非生产用途)](#quick-start-deployment-not-for-production-purposes) - [问题与反馈](#issues-and-feedback) ## Helm Charts 此仓库包含以下 Charts;它们可以单独部署: | Chart | 描述 | 最新 Chart 版本 | |-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------| | [Server](server/) | 部署控制台、数据库和网关组件;可选部署 Envoy 组件 | 2022.4.36 | | [Enforcer](enforcer/) | 部署 Aqua Enforcer 守护进程集 | 2022.4.30 | | [Scanner](scanner/) | 部署 Aqua Scanner 部署 | 2022.4.15 | | [KubeEnforcer](kube-enforcer/) | 部署 Aqua KubeEnforcer | 2022.4.79 | | [Gateway](gateway) | 部署 Aqua 独立网关 | 2022.4.18 | | [Tenant-Manager](tenant-manager/) | 部署 Aqua 租户管理器 | 2022.4.1 | | [Cyber Center](cyber-center/) | 为离线环境(气隙)部署 Aqua CyberCenter | 2022.4.6 | | [Cloud Connector](cloud-connector/) | 部署 Aqua Cloud Connector | 2022.4.5 | | [QuickStart](aqua-quickstart/) | 不适用于生产用途(参见[下文](#quick-start-deployment-not-for-production-purposes))。部署控制台、数据库、网关和 KubeEnforcer 组件 | 2022.4.2 | | [Codesec-Agent](codesec-agent/) | 部署 Argon Broker | 1.2.11 | # 部署说明 Aqua Enterprise 部署包含以下组件: - Server(控制台、数据库和网关) - Enforcer - KubeEnforcer - Scanner(可选) 请遵循本节中的步骤进行生产级部署。您可以克隆 aqua-helm git 仓库,或者添加我们的 Helm 私有仓库 ([https://helm.aquasec.com](https://helm.aquasec.com))。 ### (可选) 添加 Aqua Helm 仓库 1. 通过执行以下命令将 Aqua Helm 仓库添加到您的本地 Helm 仓库: ``` helm repo add aqua-helm https://helm.aquasec.com helm repo update ``` 2. 在我们的 Aqua Helm 仓库中搜索所有最新版本的组件 ##### 适用于 Helm 2.x ``` helm search aqua-helm # 示例 helm search aqua-helm --versions helm search aqua-helm --version 2022.4 ``` ##### 适用于 Helm 3.x ``` helm search repo aqua-helm # 示例 helm search repo aqua-helm --versions helm search repo aqua-helm --version 2022.4 ``` 示例输出: ``` NAME CHART VERSION APP VERSION DESCRIPTION aqua-helm/codesec-agent 1.2.11 2022.4 A Helm chart for the Argon Broker Deployment aqua-helm/cloud-connector 2022.4.4 2022.4 A Helm chart for Aqua Cloud-Connector aqua-helm/cyber-center 2022.4.6 2022.4 A Helm chart for Aqua CyberCenter aqua-helm/enforcer 2022.4.30 2022.4 A Helm chart for the Aqua Enforcer aqua-helm/kube-enforcer 2022.4.79 2022.4 A Helm chart for the Aqua KubeEnforcer Starboard/Trivy aqua-helm/gateway 2022.4.18 2022.4 A Helm chart for the Aqua Gateway aqua-helm/scanner 2022.4.15 2022.4 A Helm chart for the Aqua Scanner CLI component aqua-helm/server 2022.4.36 2022.4 A Helm chart for the Aqua Console components aqua-helm/tenant-manager 2022.4.1 2022.4 A Helm chart for the Aqua Tenant Manager ``` ### 部署 Helm Charts 1. 添加 Aqua Helm 仓库 helm repo add aqua-helm https://helm.aquasec.com helm repo update 通过[变更日志](./CHANGELOG.md)或运行以下命令检查可用的 chart 版本。 helm search repo aqua-helm/enforcer --versions 创建 `aqua` 命名空间。 kubectl create namespace aqua 创建 `aqua-registry` secret kubectl create secret docker-registry aqua-registry-secret \ --docker-server=registry.aquasec.com \ --docker-username=$YOUR_REGISTRY_USER \ --docker-password=$YOUR_REGISTRY_PASSWORD \ -n aqua 2. 部署 [**Server**](server/) chart。 helm upgrade --install --namespace aqua aqua aqua-helm/server --version $VERSION \ --set imageCredentials.create=false \ --set global.platform=$PLATFORM 3. 部署 [**Enforcer**](enforcer/) chart。 helm upgrade --install --namespace aqua aqua-enforcer aqua-helm/enforcer --version $VERSION \ --set imageCredentials.create=false \ --set global.platform=$PLATFORM 4. 部署 [**KubeEnforcer**](kube-enforcer/) chart。 helm upgrade --install --namespace aqua kube-enforcer aqua-helm/kube-enforcer --version $VERSION \ --set global.platform=$PLATFORM \ --set certsSecret.autoGenerate=true 5. (可选) 部署 [**Scanner**](scanner/) chart。 helm upgrade --install --namespace aqua scanner aqua-helm/scanner --version $VERSION \ --set user=$AQUA_CONSOLE_USERNAME \ --set password=$AQUA_CONSOLE_PASSWORD 6. 网关默认随 Server chart 一起部署,高级网关部署选项可在[**此处**](gateway/)找到。 7. (可选) 部署 [**TenantManager**](tenant-manager/) chart。 helm upgrade --install --namespace aqua tenant-manager aqua-helm/tenant-manager --version $VERSION \ --set platform=$PLATFORM 8. (可选) 部署 [**Cyber-Center**](cyber-center/) chart。 helm upgrade --install --namespace aqua aqua-cyber-center aqua-helm/cyber-center --version $VERSION \ --set imageCredentials.create=false 9. (可选) 部署 [**Cloud-Connector**](cloud-connector) chart。 helm upgrade --install --namespace aqua aqua-cloud-connector aqua-helm/cloud-connector --version $VERSION \ --set userCreds.username=$AQUA_CONSOLE_USERNAME \ --set userCreds.password=$AQUA_CONSOLE_PASSWORD \ --set authType.tokenAuth=false \ --set authType.userCreds=true 10. 在浏览器中通过 {{ .Release.Name }}-console-svc 服务和端口访问 Aqua UI,要查看服务详情: kubectl get svc -n aqua * 示例: * http://< 控制台 IP/DNS >:8080* (默认无 SSL 访问) 或 * https://< 控制台 IP/DNS >:443* (如果已在 server chart 中为控制台组件配置 SSL) ### 故障排查 **本节并非详尽无遗。它描述了我们在部署期间遇到的一些常见问题。** #### 错误 1 * 错误信息:**UPGRADE/INSTALL FAILED, configmaps is forbidden.** * 示例: ``` Error: UPGRADE FAILED: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system" ``` * 解决方案:为 Tiller 创建一个可供使用的服务账户。 ``` kubectl create serviceaccount --namespace kube-system tiller kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}' helm init --service-account tiller --upgrade ``` #### 错误 2 * 错误信息:**No persistent volumes available for this claim and no storage class is set.** * 解决方案:大多数托管 Kubernetes 部署在设置时**不**包含所有可能的存储提供商变体。请参考您平台对应的[官方 Kubernetes 存储类别指南](https://kubernetes.io/docs/concepts/storage/storage-classes/)。 更多信息请参见[存储文档](docs/storage.md)。 #### 错误 3 * 错误信息:执行 `kubectl get events -n aqua` 时,您可能会遇到 **No persistent volumes available for this claim and no storage class is set** 或 **PersistentVolumeClaim is not bound**。 * 解决方案:如果遇到这些错误中的任何一个,您需要在 chart 部署之前创建一个使用通用或现有存储类别的持久卷。在 values.yaml 文件中指定 `db.persistence.storageClass`。仓库中包含一个使用 `aqua-storage` 的示例文件。 ``` kubectl apply -f pv-example.yaml ``` # 快速启动部署(非生产用途) 快速启动部署快速且简单。 它们旨在为非生产目的部署 Aqua Enterprise,例如概念验证 (POC) 以及用于教学、开发和测试的环境。 使用 [**aqua-quickstart**](aqua-quickstart) chart 来 1. 克隆 GitHub 仓库 ``` git clone https://github.com/aquasecurity/aqua-helm.git cd aqua-helm/ ``` 2. 创建 `aqua` 命名空间。 ``` kubectl create namespace aqua ``` 3. 部署 aqua-quickstart chart ``` helm upgrade --install --namespace aqua aqua ./aqua-quickstart --set imageCredentials.username=<>,imageCredentials.password=<> ``` # 问题与反馈 如果您遇到任何问题或想对部署提供反馈,我们鼓励您在 GitHub 上提出问题。
标签:Aqua 安全, Helm 图表, Helm 部署, Kubernetes 部署, NIDS, Web截图, 企业安全, 子域名突变, 安全组件, 容器化, 容器安全, 容器编排, 网络资产管理, 部署