搜索

21.2. 使用 podman RHEL 系统角色创建带有 Podman 卷的 rootful 容器

download PDF

您可以通过运行 Ansible playbook ,使用 podman RHEL 系统角色创建带有 Podman 卷的有根容器,并使用它来管理应用程序配置。

示例 Ansible playbook 部署一个从 registry.access.redhat.com/ubi8/httpd-24 镜像运行 HTTP 服务器容器的名为 ubi8-httpd 的 Kubernetes pod。容器的 Web 内容是从名为 ubi8-html-volume 的持久性卷挂载的。默认情况下,podman 角色创建有根容器。

先决条件

流程

  1. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    - name: Configure Podman
      hosts: managed-node-01.example.com
      tasks:
        - name: Start Apache server on port 8080
          ansible.builtin.include_role:
            name: rhel-system-roles.podman
      vars:
        podman_firewall:
          - port: 8080/tcp
            state: enabled
        podman_kube_specs:
          - state: started
            kube_file_content:
              apiVersion: v1
              kind: Pod
              metadata:
                name: ubi8-httpd
              spec:
                containers:
                  - name: ubi8-httpd
                    image: registry.access.redhat.com/ubi8/httpd-24
                    ports:
                      - containerPort: 8080
                        hostPort: 8080
                    volumeMounts:
                      - mountPath: /var/www/html:Z
                        name: ubi8-html
                volumes:
                  - name: ubi8-html
                    persistentVolumeClaim:
                      claimName: ubi8-html-volume

    示例 playbook 中指定的设置包括以下内容:

    kube_file_content

    包含一个 Kubernetes YAML 文件,定义名为 db 的第一个容器。您可以使用 podman kube generate 命令生成 Kubernetes YAML 文件。

    • ubi8-httpd 容器是基于 registry.access.redhat.com/ubi8/httpd-24 容器镜像。
    • ubi8-html-volume 将主机上的 /var/www/html 目录映射到容器。Z 标志使用私有 unshared 标签标记内容,因此只有 ubi8-httpd 容器可以访问内容。
    • pod 使用挂载路径 /var/www/html 挂载名为 ubi8-html-volume 的现有持久性卷。

    有关 playbook 中使用的所有变量的详情,请查看控制节点上的 /usr/share/ansible/roles/rhel-system-roles.podman/README.md 文件。

  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.podman/README.md 文件
  • /usr/share/doc/rhel-system-roles/podman/ 目录
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.