跳至内容

自定义卷和卷挂载选项

在需要自定义卷和卷挂载来覆盖默认值或挂载配置文件的情况下。

名称 描述 默认值
extra_volumes 指定要添加到应用程序 Pod 的额外卷 ''
web_extra_volume_mounts 指定要添加到 Web 容器的卷挂载 ''
task_extra_volume_mounts 指定要添加到 Task 容器的卷挂载 ''
rsyslog_extra_volume_mounts 指定要添加到 Rsyslog 容器的卷挂载 ''
ee_extra_volume_mounts 指定要添加到 Execution 容器的卷挂载 ''
init_container_extra_volume_mounts 指定要添加到 Init 容器的卷挂载 ''
init_container_extra_commands 为 Init 容器指定其他命令 ''

警告

ee_extra_volume_mountsextra_volumes 将仅对全局可用的执行环境生效。对于自定义 ee,请自定义 Pod 规范

ConfigMap 的示例配置

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: <resourcename>-extra-config
  namespace: <target namespace>
data:
  ansible.cfg: |
    [defaults]
    remote_tmp = /tmp
    [ssh_connection]
    ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s

卷和卷挂载的示例规范文件

---
spec:
  ...
  extra_volumes: |
    - name: ansible-cfg
      configMap:
        defaultMode: 420
        items:
          - key: ansible.cfg
            path: ansible.cfg
        name: <resourcename>-extra-config
    - name: shared-volume
      persistentVolumeClaim:
        claimName: my-external-volume-claim

  init_container_extra_volume_mounts: |
    - name: shared-volume
      mountPath: /shared

  init_container_extra_commands: |
    # set proper permissions (rwx) for the awx user
    chmod 775 /shared
    chgrp 1000 /shared

  ee_extra_volume_mounts: |
    - name: ansible-cfg
      mountPath: /etc/ansible/ansible.cfg
      subPath: ansible.cfg

警告

卷和卷挂载名称不能包含下划线(_)

自定义 UWSGI 配置

我们允许自定义两个 UWSGI 参数

  • processes 使用 uwsgi_processes(默认 5)
  • listen 使用 uwsgi_listen_queue_size(默认 128)

注意:将监听队列增加到 128 以上需要将 sysctl 设置 net.core.somaxconn 设置为相同或更高的值。运算符将为您设置适当的安全上下文 sysctl 值,但必须在 kubelet 级别将此 sysctl 添加到允许列表。 查看有关允许此 sysctl 设置的 kubernetes 文档.

这些变量与 Web 服务的纵向和横向可扩展性相关。

增加进程数量允许每个 Web Pod 处理更多请求,但会消耗更多 CPU 和内存,应相应增加资源请求。增加监听队列允许 uwsgi 排队尚未由活动工作进程处理的请求,这可能允许 Web Pod 处理更多“突发”请求模式,如果许多请求(超过 128 个)倾向于在短时间内到来,但可以在任何其他超时之前被处理。另请参阅相关的 nginx 配置。

自定义 Nginx 配置

使用extra_volumes 功能,可以扩展 nginx.conf。

  1. 使用您希望包含在 nginx.conf 中的额外设置创建 ConfigMap
  2. 在您的 AWX 规范中创建此 ConfigMap 的 extra_volumes 条目
  3. 在您的 AWX 规范中创建 web_extra_volume_mounts 条目以挂载此卷

AWX nginx 配置会自动包含 /etc/nginx/conf.d/*.conf(如果存在)。

此外,基本 nginx 配置中还有一些全局配置值,可以使用单独的变量进行设置。这些变量与 Web 服务的纵向和横向可扩展性相关。增加进程数量允许每个 Web Pod 处理更多请求,但会消耗更多 CPU 和内存,应相应增加资源请求。增加监听队列允许 nginx 排队尚未由活动工作进程处理的请求,这可能允许 Web Pod 处理更多“突发”请求模式,如果许多请求(超过 128 个)倾向于在短时间内到来,但可以在任何其他超时之前被处理。另请参阅相关的 uwsgi 配置。

  • worker_processes 使用 nginx_worker_processes(默认值为 1)
  • worker_cpu_affinity 使用 nginx_worker_cpu_affinity(默认“auto”)
  • worker_connections 使用 nginx_worker_connections(最小值为 1024)
  • listen 使用 nginx_listen_queue_size(默认值与 uwsgi 监听队列大小相同)

自定义徽标

您可以使用自定义卷挂载来挂载您自己的徽标,以显示在 AWX 徽标代替。有两个不同的徽标,一个用于在页面标题中显示,一个用于登录屏幕。

首先,从本地 logo-login.svglogo-header.svg 文件创建徽标的 configmap。

kubectl create configmap logo-login-configmap --from-file logo-login.svg
kubectl create configmap logo-header-configmap --from-file logo-header.svg

然后在您的 AWX CR 规范上指定 extra_volume 和 web_extra_volume_mounts

---
spec:
  ...
  extra_volumes: |
    - name: logo-login
      configMap:
        defaultMode: 420
        items:
          - key: logo-login.svg
            path: logo-login.svg
        name: logo-login-configmap
    - name: logo-header
      configMap:
        defaultMode: 420
        items:
          - key: logo-header.svg
            path: logo-header.svg
        name: logo-header-configmap
  web_extra_volume_mounts: |
    - name: logo-login
      mountPath: /var/lib/awx/public/static/media/logo-login.svg
      subPath: logo-login.svg
    - name: logo-header
      mountPath: /var/lib/awx/public/static/media/logo-header.svg
      subPath: logo-header.svg

自定义 Favicon

您也可以使用自定义卷挂载来挂载您自己的 favicon,以便在 AWX 浏览器选项卡中显示。

首先,从本地 favicon.ico 文件创建 configmap。

kubectl create configmap favicon-configmap --from-file favicon.ico

然后在您的 AWX CR 规范上指定 extra_volume 和 web_extra_volume_mounts

---
spec:
  ...
  extra_volumes: |
    - name: favicon
      configMap:
        defaultMode: 420
        items:
          - key: favicon.ico
            path: favicon.ico
        name: favicon-configmap
  web_extra_volume_mounts: |
    - name: favicon
      mountPath: /var/lib/awx/public/static/media/favicon.ico
      subPath: favicon.ico

自定义 AWX 配置

有关自定义 AWX 配置的详细信息,请参阅额外设置 文档。