8.3. 安装 OpenShift Container Registry
- 参阅 规划您的安装开。安装 OCR 使用相同的过程,但需要在清单文件中进行一些特定的设置。安装文档包含清单文件可用 Ansible 变量的完整列表。
- 完成主机准备步骤。
在 /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'
多个 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 环境。
安装独立 OCR。这个过程与完整集群安装过程类似。
重要运行 Ansible playbook 的主机,对于清单(inventory)文件中的每个主机都至少需要有 75MiB 可用内存。
在部署新集群前,请切换到集群目录,并运行 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 一次。
要启动安装,切换到 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
指定清单文件的路径。