Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

8.3. 安装 OpenShift Container Registry

  1. 参阅 规划您的安装开。安装 OCR 使用相同的过程,但需要在清单文件中进行一些特定的设置。安装文档包含清单文件可用 Ansible 变量的完整列表。
  2. 完成主机准备步骤。
  3. /etc/ansible/hosts 目录中创建 清单文件:

    重要

    要安装独立 OCR,您必须在 [OSEv3:vars] 部分的清单文件中设置 deployment_subtype=registry

    为不同的系统拓扑使用以下示例清单文件:

    All-in-one 独立 OpenShift Container Registry 清单文件

    # Create an OSEv3 group that contains the masters and nodes groups
    [OSEv3:children]
    masters
    nodes
    etcd
    
    # Set variables common for all OSEv3 hosts
    [OSEv3:vars]
    # SSH user, this user should allow ssh based auth without requiring a password
    ansible_ssh_user=root
    
    openshift_master_default_subdomain=apps.test.example.com
    
    # If ansible_ssh_user is not root, ansible_become must be set to true
    #ansible_become=true
    
    openshift_deployment_type=openshift-enterprise
    deployment_subtype=registry 1
    openshift_hosted_infra_selector="" 2
    
    # uncomment the following to enable htpasswd authentication; defaults to DenyAllPasswordIdentityProvider
    #openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
    
    # host group for masters
    [masters]
    registry.example.com
    
    # host group for etcd
    [etcd]
    registry.example.com
    
    # host group for nodes
    [nodes]
    registry.example.com openshift_node_group_name='node-config-all-in-one'

    1
    设置 deployment_subtype=registry 以确保安装独立 OCR 而不是完整的 OpenShift Container Platform 环境。
    2
    允许 registry 及其 Web 控制台调度到单一主机上。

    多个 master(高可用性)独立 OpenShift Container Registry 清单文件

    # Create an OSEv3 group that contains the master, nodes, etcd, and lb groups.
    # The lb group lets Ansible configure HAProxy as the load balancing solution.
    # Comment lb out if your load balancer is pre-configured.
    [OSEv3:children]
    masters
    nodes
    etcd
    lb
    
    # Set variables common for all OSEv3 hosts
    [OSEv3:vars]
    ansible_ssh_user=root
    openshift_deployment_type=openshift-enterprise
    deployment_subtype=registry 1
    
    openshift_master_default_subdomain=apps.test.example.com
    
    # Uncomment the following to enable htpasswd authentication; defaults to
    # DenyAllPasswordIdentityProvider.
    #openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
    
    # Native high availability cluster method with optional load balancer.
    # If no lb group is defined installer assumes that a load balancer has
    # been preconfigured. For installation the value of
    # openshift_master_cluster_hostname must resolve to the load balancer
    # or to one or all of the masters defined in the inventory if no load
    # balancer is present.
    openshift_master_cluster_method=native
    openshift_master_cluster_hostname=openshift-internal.example.com
    openshift_master_cluster_public_hostname=openshift-cluster.example.com
    
    # apply updated node-config-compute group defaults
    openshift_node_groups=[{'name': 'node-config-compute', 'labels': ['node-role.kubernetes.io/compute=true'], 'edits': [{'key': 'kubeletArguments.pods-per-core','value': ['20']}, {'key': 'kubeletArguments.max-pods','value': ['250']}, {'key': 'kubeletArguments.image-gc-high-threshold', 'value':['90']}, {'key': 'kubeletArguments.image-gc-low-threshold', 'value': ['80']}]}]
    
    # enable ntp on masters to ensure proper failover
    openshift_clock_enabled=true
    
    # host group for masters
    [masters]
    master1.example.com
    master2.example.com
    master3.example.com
    
    # host group for etcd
    [etcd]
    etcd1.example.com
    etcd2.example.com
    etcd3.example.com
    
    # Specify load balancer host
    [lb]
    lb.example.com
    
    # host group for nodes, includes region info
    [nodes]
    master[1:3].example.com openshift_node_group_name='node-config-master-infra'
    node1.example.com       openshift_node_group_name='node-config-compute'
    node2.example.com       openshift_node_group_name='node-config-compute'

    1
    设置 deployment_subtype=registry 以确保安装独立 OCR 而不是完整的 OpenShift Container Platform 环境。
  4. 安装独立 OCR。这个过程与完整集群安装过程类似。

    重要

    运行 Ansible playbook 的主机,对于清单(inventory)文件中的每个主机都至少需要有 75MiB 可用内存。

    1. 在部署新集群前,请切换到集群目录,并运行 prerequisites.yml playbook:

      $ cd /usr/share/ansible/openshift-ansible
      $ ansible-playbook  [-i /path/to/inventory] \ 1
          playbooks/prerequisites.yml
      1
      如果您的清单文件不在 /etc/ansible/hosts 目录中,使用 -i 指定清单文件的路径。

      您必须只运行此 playbook 一次。

    2. 要启动安装,切换到 playbook 目录并运行 deploy_cluster.yml playbook:

      $ cd /usr/share/ansible/openshift-ansible
      $ ansible-playbook  [-i /path/to/inventory] \ 1
          playbooks/deploy_cluster.yml
      1
      如果您的清单文件不在 /etc/ansible/hosts 目录中,使用 -i 指定清单文件的路径。