diff --git a/doc/source/_includes/aio_duplex_install_kubernetes.rest b/doc/source/_includes/aio_duplex_install_kubernetes.rest new file mode 100644 index 000000000..96a229072 --- /dev/null +++ b/doc/source/_includes/aio_duplex_install_kubernetes.rest @@ -0,0 +1,5 @@ +.. ref1-begin +.. ref1-end + +.. ref2-begin +.. ref2-end diff --git a/doc/source/_includes/aio_simplex_install_kubernetes.rest b/doc/source/_includes/aio_simplex_install_kubernetes.rest new file mode 100644 index 000000000..1a7b66ba9 --- /dev/null +++ b/doc/source/_includes/aio_simplex_install_kubernetes.rest @@ -0,0 +1,2 @@ +.. ref1-begin +.. ref1-end diff --git a/doc/source/_includes/min-bootstrap-overrides-non-simplex.rest b/doc/source/_includes/min-bootstrap-overrides-non-simplex.rest new file mode 100644 index 000000000..6840414c4 --- /dev/null +++ b/doc/source/_includes/min-bootstrap-overrides-non-simplex.rest @@ -0,0 +1,31 @@ +:: + + cd ~ + + cat < localhost.yml + + system_mode: duplex + + dns_servers: + - 8.8.8.8 + - 8.8.4.4 + + external_oam_subnet: / + external_oam_gateway_address: + external_oam_floating_address: + external_oam_node_0_address: + external_oam_node_1_address: + + admin_username: admin + admin_password: + ansible_become_pass: + + # OPTIONALLY provide a ROOT CA certificate and key for k8s root ca, + # if not specified, one will be auto-generated, + # see ‘Kubernetes Root CA Certificate’ in Security Guide for details. + k8s_root_ca_cert: < your_root_ca_cert.pem > + k8s_root_ca_key: < your_root_ca_key.pem > + apiserver_cert_sans: + - < your_hostname_for_oam_floating.your_domain > + + EOF \ No newline at end of file diff --git a/doc/source/_includes/min-bootstrap-overrides-simplex.rest b/doc/source/_includes/min-bootstrap-overrides-simplex.rest new file mode 100644 index 000000000..3e24188d4 --- /dev/null +++ b/doc/source/_includes/min-bootstrap-overrides-simplex.rest @@ -0,0 +1,29 @@ +:: + + cd ~ + + cat < localhost.yml + + system_mode: simplex + + dns_servers: + - 8.8.8.8 + - 8.8.4.4 + + external_oam_subnet: / + external_oam_gateway_address: + external_oam_floating_address: + + admin_username: admin + admin_password: + ansible_become_pass: + + # OPTIONALLY provide a ROOT CA certificate and key for k8s root ca, + # if not specified, one will be auto-generated, + # see ‘Kubernetes Root CA Certificate’ in Security Guide for details. + k8s_root_ca_cert: < your_root_ca_cert.pem > + k8s_root_ca_key: < your_root_ca_key.pem > + apiserver_cert_sans: + - < your_hostname_for_oam_floating.your_domain > + + EOF \ No newline at end of file diff --git a/doc/source/_includes/rook_storage_install_kubernetes.rest b/doc/source/_includes/rook_storage_install_kubernetes.rest new file mode 100644 index 000000000..1a7b66ba9 --- /dev/null +++ b/doc/source/_includes/rook_storage_install_kubernetes.rest @@ -0,0 +1,2 @@ +.. ref1-begin +.. ref1-end diff --git a/doc/source/_vendor/vendor_strings.txt b/doc/source/_vendor/vendor_strings.txt index 5ea520dee..529900b94 100755 --- a/doc/source/_vendor/vendor_strings.txt +++ b/doc/source/_vendor/vendor_strings.txt @@ -71,3 +71,8 @@ .. .. |installer-image-name| replace:: bootimage + +.. |OVS-DPDK| replace:: |OVS|-|DPDK| +.. |ovs-dpdk| replace:: ovs-dpdk + +.. |vswitch-label| replace:: openvswitch=enabled \ No newline at end of file diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_install_kubernetes.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_install_kubernetes.rst index f6c94ec35..957647e5a 100644 --- a/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_install_kubernetes.rst +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_install_kubernetes.rst @@ -39,7 +39,8 @@ Bootstrap system on controller-0 -------------------------------- #. Login using the username / password of "sysadmin" / "sysadmin". - When logging in for the first time, you will be forced to change the password. + When logging in for the first time, you will be forced to change the + password. :: @@ -107,31 +108,11 @@ Bootstrap system on controller-0 #. Create a minimal user configuration override file. To use this method, create your override file at ``$HOME/localhost.yml`` - and provide the minimum required parameters for the deployment configuration - as shown in the example below. Use the OAM IP SUBNET and IP ADDRESSing - applicable to your deployment environment. + and provide the minimum required parameters for the deployment + configuration as shown in the example below. Use the OAM IP SUBNET and IP + ADDRESSing applicable to your deployment environment. - :: - - cd ~ - cat < localhost.yml - system_mode: duplex - - dns_servers: - - 8.8.8.8 - - 8.8.4.4 - - external_oam_subnet: / - external_oam_gateway_address: - external_oam_floating_address: - external_oam_node_0_address: - external_oam_node_1_address: - - admin_username: admin - admin_password: - ansible_become_pass: - - EOF + .. include:: /_includes/min-bootstrap-overrides-non-simplex.rest .. only:: starlingx @@ -148,7 +129,7 @@ Bootstrap system on controller-0 :start-after: docker-reg-begin :end-before: docker-reg-end - .. code-block:: + .. code-block:: yaml docker_registries: quay.io: @@ -187,7 +168,7 @@ Bootstrap system on controller-0 :start-after: firewall-begin :end-before: firewall-end - .. code-block:: + .. code-block:: bash # Add these lines to configure Docker to use a proxy server docker_http_proxy: http://my.proxy.com:1080 @@ -222,44 +203,49 @@ Configure controller-0 #. Configure the |OAM| interface of controller-0 and specify the attached network as "oam". - Use the |OAM| port name that is applicable to your deployment environment, - for example eth0: + The following example configures the |OAM| interface on a physical untagged + ethernet port. Use the |OAM| port name that is applicable to your + deployment environment, for example eth0: - :: + .. code-block:: bash - OAM_IF= - system host-if-modify controller-0 $OAM_IF -c platform - system interface-network-assign controller-0 $OAM_IF oam + OAM_IF= + system host-if-modify controller-0 $OAM_IF -c platform + system interface-network-assign controller-0 $OAM_IF oam + + To configure a vlan or aggregated ethernet interface, see :ref:`Node Interfaces `. #. Configure the MGMT interface of controller-0 and specify the attached networks of both "mgmt" and "cluster-host". - Use the MGMT port name that is applicable to your deployment environment, - for example eth1: + The following example configures the MGMT interface on a physical untagged + ethernet port. Use the MGMT port name that is applicable to your deployment + environment, for example eth1: - .. code-block:: none + .. code-block:: bash MGMT_IF= - - # De-provision loopback interface and - # remove mgmt and cluster-host networks from loopback interface system host-if-modify controller-0 lo -c none IFNET_UUIDS=$(system interface-network-list controller-0 | awk '{if ($6=="lo") print $4;}') for UUID in $IFNET_UUIDS; do system interface-network-remove ${UUID} done - - # Configure management interface and assign mgmt and cluster-host networks to it system host-if-modify controller-0 $MGMT_IF -c platform system interface-network-assign controller-0 $MGMT_IF mgmt system interface-network-assign controller-0 $MGMT_IF cluster-host + To configure a vlan or aggregated ethernet interface, see :ref:`Node + Interfaces `. + #. Configure |NTP| servers for network time synchronization: :: system ntp-modify ntpservers=0.pool.ntp.org,1.pool.ntp.org + To configure |PTP| instead of |NTP|, see :ref:`PTP Server Configuration + `. + .. only:: openstack ************************************* @@ -269,84 +255,115 @@ Configure controller-0 .. important:: **These steps are required only if the StarlingX OpenStack application - (stx-openstack) will be installed.** + (|prefix|-openstack) will be installed.** #. **For OpenStack only:** Assign OpenStack host labels to controller-0 in - support of installing the stx-openstack manifest and helm-charts later. + support of installing the |prefix|-openstack manifest and helm-charts later. - :: + .. only:: starlingx + + .. parsed-literal:: + + system host-label-assign controller-0 openstack-control-plane=enabled + system host-label-assign controller-0 openstack-compute-node=enabled + system host-label-assign controller-0 |vswitch-label| + system host-label-assign controller-0 sriov=enabled + + .. only:: partner + + .. include:: /_includes/aio_duplex_install_kubernetes.rest + :start-after: ref1-begin + :end-before: ref1-end + + #. **For OpenStack only:** Due to the additional openstack services running + on the |AIO| controller platform cores, a minimum of 4 platform cores are + required, 6 platform cores are recommended. + + Increase the number of platform cores with the following commands: + + .. code-block:: + + # assign 6 cores on processor/numa-node 0 on controller-0 to platform + system host-cpu-modify -f platform -p0 6 controller-0 - system host-label-assign controller-0 openstack-control-plane=enabled - system host-label-assign controller-0 openstack-compute-node=enabled - system host-label-assign controller-0 openvswitch=enabled - system host-label-assign controller-0 sriov=enabled #. **For OpenStack only:** Configure the system setting for the vSwitch. - StarlingX has |OVS| (kernel-based) vSwitch configured as default: + .. only:: starlingx - * Runs in a container; defined within the helm charts of stx-openstack - manifest. - * Shares the core(s) assigned to the platform. + StarlingX has |OVS| (kernel-based) vSwitch configured as default: - If you require better performance, |OVS|-|DPDK| (|OVS| with the Data - Plane Development Kit, which is supported only on bare metal hardware) - should be used: + * Runs in a container; defined within the helm charts of |prefix|-openstack + manifest. + * Shares the core(s) assigned to the platform. - * Runs directly on the host (it is not containerized). - * Requires that at least 1 core be assigned/dedicated to the vSwitch function. + If you require better performance, |OVS-DPDK| (|OVS| with the Data + Plane Development Kit, which is supported only on bare metal hardware) + should be used: - **To deploy the default containerized OVS:** + * Runs directly on the host (it is not containerized). + Requires that at least 1 core be assigned/dedicated to the vSwitch + function. - :: + To deploy the default containerized |OVS|: - system modify --vswitch_type none + :: - This does not run any vSwitch directly on the host, instead, it uses the - containerized |OVS| defined in the helm charts of stx-openstack - manifest. + system modify --vswitch_type none - **To deploy OVS-DPDK, run the following command:** + This does not run any vSwitch directly on the host, instead, it uses + the containerized |OVS| defined in the helm charts of |prefix|-openstack + manifest. - :: + To deploy |OVS-DPDK|, run the following command: - system modify --vswitch_type ovs-dpdk + .. parsed-literal:: - Default recommendation for an |AIO|-controller is to use a single core - for |OVS|-|DPDK| vswitch. + system modify --vswitch_type |ovs-dpdk| - :: + Default recommendation for an |AIO|-controller is to use a single + core |OVS-DPDK| vswitch. + .. code-block:: bash # assign 1 core on processor/numa-node 0 on controller-0 to vswitch system host-cpu-modify -f vswitch -p0 1 controller-0 - Once vswitch_type is set to |OVS|-|DPDK|, any subsequent nodes created - will default to automatically assigning 1 vSwitch core for |AIO| - controllers and 2 vSwitch cores for compute-labeled worker nodes. + Once vswitch_type is set to |OVS-DPDK|, any subsequent nodes created will + default to automatically assigning 1 vSwitch core for |AIO| controllers + and 2 vSwitch cores (both on numa-node 0; physical NICs are typically on + first numa-node) for compute-labeled worker nodes. + + When using |OVS-DPDK|, configure 1G huge page for vSwitch memory on each + |NUMA| node on the host. It is recommended to configure 1x 1G huge page + (-1G 1) for vSwitch memory on each |NUMA| node on the host. + + However, due to a limitation with Kubernetes, only a single huge page + size is supported on any one host. If your application |VMs| require 2M + huge pages, then configure 500x 2M huge pages (-2M 500) for vSwitch + memory on each |NUMA| node on the host. - When using |OVS|-|DPDK|, configure 1x 1G huge page for vSwitch memory on - each |NUMA| node where vswitch is running on this host, with the - following command: - - :: + .. code-block:: # assign 1x 1G huge page on processor/numa-node 0 on controller-0 to vswitch system host-memory-modify -f vswitch -1G 1 controller-0 0 + # Assign 1x 1G huge page on processor/numa-node 1 on controller-0 to vswitch + system host-memory-modify -f vswitch -1G 1 controller-0 1 + .. important:: - |VMs| created in an |OVS|-|DPDK| environment must be configured to use + |VMs| created in an |OVS-DPDK| environment must be configured to use huge pages to enable networking and must use a flavor with property: - hw:mem_page_size=large + ``hw:mem_page_size=large`` - Configure the huge pages for |VMs| in an |OVS|-|DPDK| environment on this host with - the commands: - - :: + Configure the huge pages for |VMs| in an |OVS-DPDK| environment on + this host, assuming 1G huge page size is being used on this host, with + the following commands: + .. code-block:: bash # assign 10x 1G huge page on processor/numa-node 0 on controller-0 to applications system host-memory-modify -f application -1G 10 controller-0 0 @@ -354,43 +371,58 @@ Configure controller-0 # assign 10x 1G huge page on processor/numa-node 1 on controller-0 to applications system host-memory-modify -f application -1G 10 controller-0 1 + .. note:: After controller-0 is unlocked, changing vswitch_type requires locking and unlocking controller-0 to apply the change. #. **For OpenStack only:** Set up disk partition for nova-local volume - group, which is needed for stx-openstack nova ephemeral disks. + group, which is needed for |prefix|-openstack nova ephemeral disks. - :: + .. code-block:: bash - export NODE=controller-0 + export NODE=controller-0 - echo ">>> Getting root disk info" - ROOT_DISK=$(system host-show ${NODE} | grep rootfs | awk '{print $4}') - ROOT_DISK_UUID=$(system host-disk-list ${NODE} --nowrap | grep ${ROOT_DISK} | awk '{print $2}') - echo "Root disk: $ROOT_DISK, UUID: $ROOT_DISK_UUID" + # Create ‘nova-local’ local volume group + system host-lvg-add ${NODE} nova-local - echo ">>>> Configuring nova-local" - NOVA_SIZE=34 - NOVA_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${NODE} ${ROOT_DISK_UUID} ${NOVA_SIZE}) - NOVA_PARTITION_UUID=$(echo ${NOVA_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}') - system host-lvg-add ${NODE} nova-local - system host-pv-add ${NODE} nova-local ${NOVA_PARTITION_UUID} - sleep 2 + # Get UUID of DISK to create PARTITION to be added to ‘nova-local’ local volume group + # CEPH OSD Disks can NOT be used + # For best performance, do NOT use system/root disk, use a separate physical disk. + + # List host’s disks and take note of UUID of disk to be used + system host-disk-list ${NODE} + # ( if using ROOT DISK, select disk with device_path of + # ‘system host-show ${NODE} | grep rootfs’ ) + + # Create new PARTITION on selected disk, and take note of new partition’s ‘uuid’ in response + # The size of the PARTITION needs to be large enough to hold the aggregate size of + # all nova ephemeral disks of all VMs that you want to be able to host on this host, + # but is limited by the size and space available on the physical disk you chose above. + # The following example uses a small PARTITION size such that you can fit it on the + # root disk, if that is what you chose above. + # Additional PARTITION(s) from additional disks can be added later if required. + PARTITION_SIZE=30 + system host-disk-partition-add -t lvm_phys_vol ${NODE} ${PARTITION_SIZE} + + # Add new partition to ‘nova-local’ local volume group + system host-pv-add ${NODE} nova-local + sleep 2 #. **For OpenStack only:** Configure data interfaces for controller-0. Data class interfaces are vswitch interfaces used by vswitch to provide - VM virtio vNIC connectivity to OpenStack Neutron Tenant Networks on the + |VM| virtio vNIC connectivity to OpenStack Neutron Tenant Networks on the underlying assigned Data Network. .. important:: - A compute-labeled All-in-one controller host **MUST** have at least one Data class interface. + A compute-labeled All-in-one controller host **MUST** have at least + one Data class interface. * Configure the data interfaces for controller-0. - :: + .. code-block:: bash export NODE=controller-0 @@ -411,8 +443,6 @@ Configure controller-0 # Create Data Networks that vswitch 'data' interfaces will be connected to DATANET0='datanet0' DATANET1='datanet1' - system datanetwork-add ${DATANET0} vlan - system datanetwork-add ${DATANET1} vlan # Assign Data Networks to Data Interfaces system interface-datanetwork-assign ${NODE} ${DATANET0} @@ -436,7 +466,7 @@ Optionally Configure PCI-SRIOV Interfaces * Configure the pci-sriov interfaces for controller-0. - :: + .. code-block:: bash export NODE=controller-0 @@ -454,7 +484,8 @@ Optionally Configure PCI-SRIOV Interfaces system host-if-modify -m 1500 -n sriov0 -c pci-sriov ${NODE} system host-if-modify -m 1500 -n sriov1 -c pci-sriov ${NODE} - # Create Data Networks that the 'pci-sriov' interfaces will be connected to + # If not already created, create Data Networks that the 'pci-sriov' + # interfaces will be connected to DATANET0='datanet0' DATANET1='datanet1' system datanetwork-add ${DATANET0} vlan @@ -465,8 +496,8 @@ Optionally Configure PCI-SRIOV Interfaces system interface-datanetwork-assign ${NODE} ${DATANET1} - * To enable using |SRIOV| network attachments for the above interfaces in - Kubernetes hosted application containers: + * **For Kubernetes Only:** To enable using |SRIOV| network attachments for + the above interfaces in Kubernetes hosted application containers: * Configure the Kubernetes |SRIOV| device plugin. @@ -478,7 +509,7 @@ Optionally Configure PCI-SRIOV Interfaces containers on this host, configure the number of 1G Huge pages required on both |NUMA| nodes. - :: + .. code-block:: bash # assign 10x 1G huge page on processor/numa-node 0 on controller-0 to applications system host-memory-modify -f application controller-0 0 -1G 10 @@ -505,7 +536,7 @@ A persistent storage backend is required if your application requires |PVCs|. For host-based Ceph: -#. Initialize with add Ceph backend: +#. Initialize with add ceph backend: :: @@ -525,27 +556,23 @@ For host-based Ceph: # List OSD storage devices system host-stor-list controller-0 + .. only:: starlingx - # Add disk as an OSD storage - system host-stor-add controller-0 osd + For Rook container-based Ceph: -.. only:: starlingx + #. Initialize with add ceph-rook backend: - For Rook container-based Ceph: + :: - #. Initialize with add ceph-rook backend: + system storage-backend-add ceph-rook --confirmed - :: + #. Assign Rook host labels to controller-0 in support of installing the + rook-ceph-apps manifest/helm-charts later: - system storage-backend-add ceph-rook --confirmed + :: - #. Assign Rook host labels to controller-0 in support of installing the - rook-ceph-apps manifest/helm-charts later: - - :: - - system host-label-assign controller-0 ceph-mon-placement=enabled - system host-label-assign controller-0 ceph-mgr-placement=enabled + system host-label-assign controller-0 ceph-mon-placement=enabled + system host-label-assign controller-0 ceph-mgr-placement=enabled ------------------- @@ -556,6 +583,44 @@ Unlock controller-0 :start-after: incl-unlock-controller-0-aio-simplex-start: :end-before: incl-unlock-controller-0-aio-simplex-end: +.. only:: openstack + + * **For OpenStack only:** Due to the additional openstack services’ + containers running on the controller host, the size of the docker + filesystem needs to be increased from the default size of 30G to 60G. + + .. code-block:: bash + + # check existing size of docker fs + system host-fs-list controller-0 + + # check available space (Avail Size (GiB)) in cgts-vg LVG where docker fs is located + system host-lvg-list controller-0 + + # if existing docker fs size + cgts-vg available space is less than + # 60G, you will need to add a new disk partition to cgts-vg. + + # Assuming you have unused space on ROOT DISK, add partition to ROOT DISK. + # ( if not use another unused disk ) + + # Get device path of ROOT DISK + system host-show controller-0 | grep rootfs + + # Get UUID of ROOT DISK by listing disks + system host-disk-list controller-0 + + # Create new PARTITION on ROOT DISK, and take note of new partition’s ‘uuid’ in response + # Use a partition size such that you’ll be able to increase docker fs size from 30G to 60G + PARTITION_SIZE=30 + system host-disk-partition-add -t lvm_phys_vol controller-0 ${PARTITION_SIZE} + + # Add new partition to ‘cgts-vg’ local volume group + system host-pv-add controller-0 cgts-vg + sleep 2 # wait for partition to be added + + # Increase docker filesystem to 60G + system host-fs-modify controller-0 docker=60 + ------------------------------------- Install software on controller-1 node ------------------------------------- @@ -608,8 +673,9 @@ Configure controller-1 #. Configure the |OAM| interface of controller-1 and specify the attached network of "oam". - Use the |OAM| port name that is applicable to your deployment environment, - for example eth0: + The following example configures the |OAM| interface on a physical untagged + ethernet port, use the |OAM| port name that is applicable to your + deployment environment, for example eth0: :: @@ -617,6 +683,9 @@ Configure controller-1 system host-if-modify controller-1 $OAM_IF -c platform system interface-network-assign controller-1 $OAM_IF oam + To configure a vlan or aggregated ethernet interface, see :ref:`Node + Interfaces `. + #. The MGMT interface is partially set up by the network install procedure; configuring the port used for network install as the MGMT port and specifying the attached network of "mgmt". @@ -636,53 +705,84 @@ Configure controller-1 .. important:: - **These steps are required only if the StarlingX OpenStack application - (stx-openstack) will be installed.** + These steps are required only if the |prod-os| application + (|prefix|-openstack) will be installed. #. **For OpenStack only:** Assign OpenStack host labels to controller-1 in - support of installing the stx-openstack manifest and helm-charts later. + support of installing the |prefix|-openstack manifest and helm-charts later. - :: + .. only:: starlingx + + :: + + system host-label-assign controller-1 openstack-control-plane=enabled + system host-label-assign controller-1 openstack-compute-node=enabled + system host-label-assign controller-1 |vswitch-label| + system host-label-assign controller-1 sriov=enabled + + .. only:: partner + + .. include:: /_includes/aio_duplex_install_kubernetes.rest + :start-after: ref2-begin + :end-before: ref2-end + + #. **For OpenStack only:** Due to the additional openstack services running + on the |AIO| controller platform cores, a minimum of 4 platform cores are + required, 6 platform cores are recommended. + + Increase the number of platform cores with the following commands: + + .. code-block:: + + # assign 6 cores on processor/numa-node 0 on controller-1 to platform + system host-cpu-modify -f platform -p0 6 controller-1 - system host-label-assign controller-1 openstack-control-plane=enabled - system host-label-assign controller-1 openstack-compute-node=enabled - system host-label-assign controller-1 openvswitch=enabled - system host-label-assign controller-1 sriov=enabled #. **For OpenStack only:** Configure the host settings for the vSwitch. - **If using OVS-DPDK vswitch, run the following commands:** + If using |OVS-DPDK| vswitch, run the following commands: - Default recommendation for an AIO-controller is to use a single core - for |OVS|-|DPDK| vswitch. This should have been automatically configured, + Default recommendation for an |AIO|-controller is to use a single core + for |OVS-DPDK| vSwitch. This should have been automatically configured, if not run the following command. - :: + .. code-block:: bash # assign 1 core on processor/numa-node 0 on controller-1 to vswitch system host-cpu-modify -f vswitch -p0 1 controller-1 - When using |OVS|-|DPDK|, configure 1x 1G huge page for vSwitch memory on - each |NUMA| node where vswitch is running on this host, with the - following command: + When using |OVS-DPDK|, configure 1G of huge pages for vSwitch memory on + each |NUMA| node on the host. It is recommended + to configure 1x 1G huge page (-1G 1) for vSwitch memory on each |NUMA| + node on the host. - :: + However, due to a limitation with Kubernetes, only a single huge page + size is supported on any one host. If your application VMs require 2M + huge pages, then configure 500x 2M huge pages (-2M 500) for vSwitch + memory on each |NUMA| node on the host. + + .. code-block:: bash # assign 1x 1G huge page on processor/numa-node 0 on controller-1 to vswitch system host-memory-modify -f vswitch -1G 1 controller-1 0 + # Assign 1x 1G huge page on processor/numa-node 1 on controller-0 to vswitch + system host-memory-modify -f vswitch -1G 1 controller-1 1 + + .. important:: - |VMs| created in an |OVS|-|DPDK| environment must be configured to use + |VMs| created in an |OVS-DPDK| environment must be configured to use huge pages to enable networking and must use a flavor with property: hw:mem_page_size=large - Configure the huge pages for |VMs| in an |OVS|-|DPDK| environment for - this host with the command: + Configure the huge pages for |VMs| in an |OVS-DPDK| environment on + this host, assuming 1G huge page size is being used on this host, with + the following commands: - :: + .. code-block:: bash # assign 10x 1G huge page on processor/numa-node 0 on controller-1 to applications system host-memory-modify -f application -1G 10 controller-1 0 @@ -692,23 +792,37 @@ Configure controller-1 #. **For OpenStack only:** Set up disk partition for nova-local volume group, - which is needed for stx-openstack nova ephemeral disks. + which is needed for |prefix|-openstack nova ephemeral disks. - :: + .. code-block:: bash export NODE=controller-1 - echo ">>> Getting root disk info" - ROOT_DISK=$(system host-show ${NODE} | grep rootfs | awk '{print $4}') - ROOT_DISK_UUID=$(system host-disk-list ${NODE} --nowrap | grep ${ROOT_DISK} | awk '{print $2}') - echo "Root disk: $ROOT_DISK, UUID: $ROOT_DISK_UUID" - - echo ">>>> Configuring nova-local" - NOVA_SIZE=34 - NOVA_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${NODE} ${ROOT_DISK_UUID} ${NOVA_SIZE}) - NOVA_PARTITION_UUID=$(echo ${NOVA_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}') + # Create ‘nova-local’ local volume group system host-lvg-add ${NODE} nova-local - system host-pv-add ${NODE} nova-local ${NOVA_PARTITION_UUID} + + # Get UUID of DISK to create PARTITION to be added to ‘nova-local’ local volume group + # CEPH OSD Disks can NOT be used + # For best performance, do NOT use system/root disk, use a separate physical disk. + + # List host’s disks and take note of UUID of disk to be used + system host-disk-list ${NODE} + # ( if using ROOT DISK, select disk with device_path of + # ‘system host-show ${NODE} | grep rootfs’ ) + + # Create new PARTITION on selected disk, and take note of new partition’s ‘uuid’ in response + # The size of the PARTITION needs to be large enough to hold the aggregate size of + # all nova ephemeral disks of all VMs that you want to be able to host on this host, + # but is limited by the size and space available on the physical disk you chose above. + # The following example uses a small PARTITION size such that you can fit it on the + # root disk, if that is what you chose above. + # Additional PARTITION(s) from additional disks can be added later if required. + PARTITION_SIZE=30 + + system host-disk-partition-add -t lvm_phys_vol ${NODE} ${PARTITION_SIZE} + + # Add new partition to ‘nova-local’ local volume group + system host-pv-add ${NODE} nova-local sleep 2 #. **For OpenStack only:** Configure data interfaces for controller-1. @@ -722,7 +836,7 @@ Configure controller-1 * Configure the data interfaces for controller-1. - :: + .. code-block:: bash export NODE=controller-1 @@ -743,8 +857,6 @@ Configure controller-1 # Create Data Networks that vswitch 'data' interfaces will be connected to DATANET0='datanet0' DATANET1='datanet1' - system datanetwork-add ${DATANET0} vlan - system datanetwork-add ${DATANET1} vlan # Assign Data Networks to Data Interfaces system interface-datanetwork-assign ${NODE} ${DATANET0} @@ -768,7 +880,7 @@ Optionally Configure PCI-SRIOV Interfaces * Configure the pci-sriov interfaces for controller-1. - :: + .. code-block:: bash export NODE=controller-1 @@ -786,23 +898,22 @@ Optionally Configure PCI-SRIOV Interfaces system host-if-modify -m 1500 -n sriov0 -c pci-sriov ${NODE} system host-if-modify -m 1500 -n sriov1 -c pci-sriov ${NODE} - # Create Data Networks that the 'pci-sriov' interfaces will be connected to + # If not already created, create Data Networks that the 'pci-sriov' interfaces + # will be connected to DATANET0='datanet0' DATANET1='datanet1' - system datanetwork-add ${DATANET0} vlan - system datanetwork-add ${DATANET1} vlan # Assign Data Networks to PCI-SRIOV Interfaces system interface-datanetwork-assign ${NODE} ${DATANET0} system interface-datanetwork-assign ${NODE} ${DATANET1} - * To enable using |SRIOV| network attachments for the above interfaces in - Kubernetes hosted application containers: + * **For Kubernetes only:** To enable using |SRIOV| network attachments for + the above interfaces in Kubernetes hosted application containers: * Configure the Kubernetes |SRIOV| device plugin. - :: + .. code-block:: bash system host-label-assign controller-1 sriovdp=enabled @@ -810,7 +921,7 @@ Optionally Configure PCI-SRIOV Interfaces containers on this host, configure the number of 1G Huge pages required on both |NUMA| nodes. - :: + .. code-block:: bash # assign 10x 1G huge page on processor/numa-node 0 on controller-1 to applications system host-memory-modify -f application controller-1 0 -1G 10 @@ -827,7 +938,7 @@ For host-based Ceph: #. Add an |OSD| on controller-1 for host-based Ceph: - :: + .. code-block:: bash # List host’s disks and identify disks you want to use for CEPH OSDs, taking note of their UUID # By default, /dev/sda is being used as system disk and can not be used for OSD. @@ -839,10 +950,6 @@ For host-based Ceph: # List OSD storage devices system host-stor-list controller-1 - # Add disk as an OSD storage - system host-stor-add controller-1 osd - - .. only:: starlingx For Rook container-based Ceph: @@ -850,7 +957,7 @@ For host-based Ceph: #. Assign Rook host labels to controller-1 in support of installing the rook-ceph-apps manifest/helm-charts later: - :: + .. code-block:: bash system host-label-assign controller-1 ceph-mon-placement=enabled system host-label-assign controller-1 ceph-mgr-placement=enabled @@ -862,7 +969,7 @@ Unlock controller-1 Unlock controller-1 in order to bring it into service: -:: +.. code-block:: bash system host-unlock controller-1 @@ -870,6 +977,44 @@ Controller-1 will reboot in order to apply configuration changes and come into service. This can take 5-10 minutes, depending on the performance of the host machine. +.. only:: openstack + + * **For OpenStack only:** Due to the additional openstack services’ containers + running on the controller host, the size of the docker filesystem needs to be + increased from the default size of 30G to 60G. + + .. code-block:: bash + + # check existing size of docker fs + system host-fs-list controller-1 + + # check available space (Avail Size (GiB)) in cgts-vg LVG where docker fs is located + system host-lvg-list controller-1 + + # if existing docker fs size + cgts-vg available space is less than + # 60G, you will need to add a new disk partition to cgts-vg. + + # Assuming you have unused space on ROOT DISK, add partition to ROOT DISK. + # ( if not use another unused disk ) + + # Get device path of ROOT DISK + system host-show controller-1 | grep rootfs + + # Get UUID of ROOT DISK by listing disks + system host-disk-list controller-1 + + # Create new PARTITION on ROOT DISK, and take note of new partition’s ‘uuid’ in response + # Use a partition size such that you’ll be able to increase docker fs size from 30G to 60G + PARTITION_SIZE=30 + system host-disk-partition-add -t lvm_phys_vol controller-1 ${PARTITION_SIZE} + + # Add new partition to ‘cgts-vg’ local volume group + system host-pv-add controller-1 cgts-vg + sleep 2 # wait for partition to be added + + # Increase docker filesystem to 60G + system host-fs-modify controller-1 docker=60 + .. only:: starlingx ----------------------------------------------------------------------------------------------- @@ -897,13 +1042,14 @@ machine. #. Configure Rook to use /dev/sdb on controller-0 and controller-1 as a ceph |OSD|. - :: + .. code-block:: bash $ system host-disk-wipe -s --confirm controller-0 /dev/sdb $ system host-disk-wipe -s --confirm controller-1 /dev/sdb values.yaml for rook-ceph-apps. - :: + + .. code-block:: yaml cluster: storage: @@ -957,6 +1103,7 @@ machine. .. include:: ../kubernetes_install_next.txt + .. only:: partner .. include:: /_includes/72hr-to-license.rest diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/aio_simplex_install_kubernetes.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/aio_simplex_install_kubernetes.rst index 7b67aa635..aec7e3f8a 100644 --- a/doc/source/deploy_install_guides/r5_release/bare_metal/aio_simplex_install_kubernetes.rst +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/aio_simplex_install_kubernetes.rst @@ -109,33 +109,16 @@ Bootstrap system on controller-0 To use this method, create your override file at ``$HOME/localhost.yml`` and provide the minimum required parameters for the deployment - configuration as shown in the example below. Use the OAM IP SUBNET and IP - ADDRESSing applicable to your deployment environment. + configuration as shown in the example below. Use the |OAM| IP SUBNET and + IP ADDRESSing applicable to your deployment environment. - :: - - cd ~ - cat < localhost.yml - system_mode: simplex - - dns_servers: - - 8.8.8.8 - - 8.8.4.4 - - external_oam_subnet: / - external_oam_gateway_address: - external_oam_floating_address: - - admin_username: admin - admin_password: - ansible_become_pass: - - EOF + .. include:: /_includes/min-bootstrap-overrides-simplex.rest .. only:: starlingx - In either of the above options, the bootstrap playbook’s default values - will pull all container images required for the |prod-p| from Docker hub. + In either of the above options, the bootstrap playbook’s default + values will pull all container images required for the |prod-p| from + Docker hub. If you have setup a private Docker registry to use for bootstrapping then you will need to add the following lines in $HOME/localhost.yml: @@ -220,9 +203,10 @@ The newly installed controller needs to be configured. source /etc/platform/openrc -#. Configure the |OAM| interface of controller-0 and specify the attached network - as "oam". Use the |OAM| port name that is applicable to your deployment - environment, for example eth0: +#. Configure the |OAM| interface of controller-0 and specify the attached + network as "oam". The following example configures the OAM interface on a + physical untagged ethernet port, use |OAM| port name that is applicable to + your deployment environment, for example eth0: :: @@ -230,12 +214,17 @@ The newly installed controller needs to be configured. system host-if-modify controller-0 $OAM_IF -c platform system interface-network-assign controller-0 $OAM_IF oam + To configure a vlan or aggregated ethernet interface, see :ref:`Node + Interfaces `. #. Configure |NTP| servers for network time synchronization: :: system ntp-modify ntpservers=0.pool.ntp.org,1.pool.ntp.org + To configure |PTP| instead of |NTP|, see :ref:`PTP Server Configuration + `. + .. only:: openstack ************************************* @@ -247,75 +236,113 @@ The newly installed controller needs to be configured. .. important:: **These steps are required only if the StarlingX OpenStack application - (stx-openstack) will be installed.** + (|prereq|-openstack) will be installed.** #. **For OpenStack only:** Assign OpenStack host labels to controller-0 in - support of installing the stx-openstack manifest and helm-charts later. + support of installing the |prereq|-openstack manifest and helm-charts later. - :: - system host-label-assign controller-0 openstack-control-plane=enabled - system host-label-assign controller-0 openstack-compute-node=enabled - system host-label-assign controller-0 openvswitch=enabled - system host-label-assign controller-0 sriov=enabled + .. only:: starlingx + + .. parsed-literal:: + + system host-label-assign controller-0 openstack-control-plane=enabled + system host-label-assign controller-0 openstack-compute-node=enabled + system host-label-assign controller-0 |vswitch-label| + system host-label-assign controller-0 sriov=enabled + + .. only:: partner + + .. include:: /_includes/aio_simplex_install_kubernetes.rest + :start-after: ref1-begin + :end-before: ref1-end + + #. **For OpenStack only:** Due to the additional openstack services running + on the |AIO| controller platform cores, a minimum of 4 platform cores are + required, 6 platform cores are recommended. + + Increase the number of platform cores with the following commands: + + .. code-block:: + + # Assign 6 cores on processor/numa-node 0 on controller-0 to platform + system host-cpu-modify -f platform -p0 6 controller-0 + #. **For OpenStack only:** Configure the system setting for the vSwitch. - StarlingX has |OVS| (kernel-based) vSwitch configured as default: + .. only:: starlingx - * Runs in a container; defined within the helm charts of stx-openstack - manifest. - * Shares the core(s) assigned to the platform. + StarlingX has |OVS| (kernel-based) vSwitch configured as default: - If you require better performance, |OVS|-|DPDK| (|OVS| with the Data Plane - Development Kit, which is supported only on bare metal hardware) should be - used: + * Runs in a container; defined within the helm charts of |prereq|-openstack + manifest. + * Shares the core(s) assigned to the platform. - * Runs directly on the host (it is not containerized). - * Requires that at least 1 core be assigned/dedicated to the vSwitch function. + If you require better performance, |OVS-DPDK| (|OVS| with the Data + Plane Development Kit, which is supported only on bare metal hardware) + should be used: - **To deploy the default containerized OVS:** + * Runs directly on the host (it is not containerized). + Requires that at least 1 core be assigned/dedicated to the vSwitch + function. - :: + To deploy the default containerized |OVS|: - system modify --vswitch_type none + :: - This does not run any vSwitch directly on the host, instead, it uses the - containerized |OVS| defined in the helm charts of stx-openstack - manifest. + system modify --vswitch_type none - **To deploy OVS-DPDK, run the following command:** + This does not run any vSwitch directly on the host, instead, it uses + the containerized |OVS| defined in the helm charts of + |prefix|-openstack manifest. - :: + To deploy |OVS-DPDK|, run the following command: - system modify --vswitch_type ovs-dpdk + .. parsed-literal:: - Default recommendation for an AIO-controller is to use a single core - for |OVS|-|DPDK| vswitch. + system modify --vswitch_type |ovs-dpdk| - :: + Default recommendation for an |AIO|-controller is to use a single core + for |OVS-DPDK| vSwitch. + + .. code-block:: bash # assign 1 core on processor/numa-node 0 on controller-0 to vswitch system host-cpu-modify -f vswitch -p0 1 controller-0 - When using |OVS|-|DPDK|, configure 1x 1G huge page for vSwitch memory on each |NUMA| node - where vswitch is running on this host, with the following command: - :: + When using |OVS-DPDK|, configure 1G of huge pages for vSwitch memory on + each |NUMA| node on the host. It is recommended + to configure 1x 1G huge page (-1G 1) for vSwitch memory on each |NUMA| + node on the host. - # assign 1x 1G huge page on processor/numa-node 0 on controller-0 to vswitch + However, due to a limitation with Kubernetes, only a single huge page + size is supported on any one host. If your application |VMs| require 2M + huge pages, then configure 500x 2M huge pages (-2M 500) for vSwitch + memory on each |NUMA| node on the host. + + + .. code-block:: + + # Assign 1x 1G huge page on processor/numa-node 0 on controller-0 to vswitch system host-memory-modify -f vswitch -1G 1 controller-0 0 + # Assign 1x 1G huge page on processor/numa-node 1 on controller-0 to vswitch + system host-memory-modify -f vswitch -1G 1 controller-0 1 + + .. important:: - |VMs| created in an |OVS|-|DPDK| environment must be configured to use + |VMs| created in an |OVS-DPDK| environment must be configured to use huge pages to enable networking and must use a flavor with property: hw:mem_page_size=large - Configure the huge pages for |VMs| in an |OVS|-|DPDK| environment on this host with - the commands: + Configure the huge pages for VMs in an |OVS-DPDK| environment on this + host, assuming 1G huge page size is being used on this host, with the + following commands: - :: + .. code-block:: bash # assign 1x 1G huge page on processor/numa-node 0 on controller-0 to applications system host-memory-modify -f application -1G 10 controller-0 0 @@ -329,25 +356,38 @@ The newly installed controller needs to be configured. locking and unlocking controller-0 to apply the change. #. **For OpenStack only:** Set up disk partition for nova-local volume - group, which is needed for stx-openstack nova ephemeral disks. + group, which is needed for |prereq|-openstack nova ephemeral disks. .. code-block:: bash - export NODE=controller-0 - - echo ">>> Getting root disk info" - ROOT_DISK=$(system host-show ${NODE} | grep rootfs | awk '{print $4}') - ROOT_DISK_UUID=$(system host-disk-list ${NODE} --nowrap | grep ${ROOT_DISK} | awk '{print $2}') - echo "Root disk: $ROOT_DISK, UUID: $ROOT_DISK_UUID" - - echo ">>>> Configuring nova-local" - NOVA_SIZE=34 - NOVA_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${NODE} ${ROOT_DISK_UUID} ${NOVA_SIZE}) - NOVA_PARTITION_UUID=$(echo ${NOVA_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}') + # Create ‘nova-local’ local volume group system host-lvg-add ${NODE} nova-local - system host-pv-add ${NODE} nova-local ${NOVA_PARTITION_UUID} + + # Get UUID of DISK to create PARTITION to be added to ‘nova-local’ local volume group + # CEPH OSD Disks can NOT be used + # For best performance, do NOT use system/root disk, use a separate physical disk. + + # List host’s disks and take note of UUID of disk to be used + system host-disk-list ${NODE} + # ( if using ROOT DISK, select disk with device_path of + # ‘system host-show ${NODE} | fgrep rootfs’ ) + + # Create new PARTITION on selected disk, and take note of new partition’s ‘uuid’ in response + # The size of the PARTITION needs to be large enough to hold the aggregate size of + # all nova ephemeral disks of all VMs that you want to be able to host on this host, + # but is limited by the size and space available on the physical disk you chose above. + # The following example uses a small PARTITION size such that you can fit it on the + # root disk, if that is what you chose above. + # Additional PARTITION(s) from additional disks can be added later if required. + PARTITION_SIZE=30 + + system host-disk-partition-add -t lvm_phys_vol ${NODE} ${PARTITION_SIZE} + + # Add new partition to ‘nova-local’ local volume group + system host-pv-add ${NODE} nova-local sleep 2 + #. **For OpenStack only:** Configure data interfaces for controller-0. Data class interfaces are vswitch interfaces used by vswitch to provide VM virtio vNIC connectivity to OpenStack Neutron Tenant Networks on the @@ -355,11 +395,12 @@ The newly installed controller needs to be configured. .. important:: - A compute-labeled worker host **MUST** have at least one Data class interface. + A compute-labeled |AIO|-controller host **MUST** have at least one + Data class interface. * Configure the data interfaces for controller-0. - :: + .. code-block:: bash export NODE=controller-0 @@ -406,7 +447,7 @@ Optionally Configure PCI-SRIOV Interfaces * Configure the pci-sriov interfaces for controller-0. - :: + .. code-block:: bash export NODE=controller-0 @@ -424,7 +465,8 @@ Optionally Configure PCI-SRIOV Interfaces system host-if-modify -m 1500 -n sriov0 -c pci-sriov ${NODE} system host-if-modify -m 1500 -n sriov1 -c pci-sriov ${NODE} - # Create Data Networks that the 'pci-sriov' interfaces will be connected to + # If not already created, create Data Networks that the 'pci-sriov' interfaces will + # be connected to DATANET0='datanet0' DATANET1='datanet1' system datanetwork-add ${DATANET0} vlan @@ -435,8 +477,8 @@ Optionally Configure PCI-SRIOV Interfaces system interface-datanetwork-assign ${NODE} ${DATANET1} - * To enable using |SRIOV| network attachments for the above interfaces in - Kubernetes hosted application containers: + * **For Kubernetes Only:** To enable using |SRIOV| network attachments for + the above interfaces in Kubernetes hosted application containers: * Configure the Kubernetes |SRIOV| device plugin. @@ -448,7 +490,7 @@ Optionally Configure PCI-SRIOV Interfaces containers on this host, configure the number of 1G Huge pages required on both |NUMA| nodes. - :: + .. code-block:: bash # assign 10x 1G huge page on processor/numa-node 0 on controller-0 to applications system host-memory-modify -f application controller-0 0 -1G 10 @@ -538,6 +580,44 @@ machine. .. incl-unlock-controller-0-aio-simplex-end: +.. only:: openstack + + * **For OpenStack only:** Due to the additional openstack services’ + containers running on the controller host, the size of the docker filesystem + needs to be increased from the default size of 30G to 60G. + + .. code-block:: bash + + # check existing size of docker fs + system host-fs-list controller-0 + + # check available space (Avail Size (GiB)) in cgts-vg LVG where docker fs is located + system host-lvg-list controller-0 + + # if existing docker fs size + cgts-vg available space is less than + # 60G, you will need to add a new disk partition to cgts-vg. + + # Assuming you have unused space on ROOT DISK, add partition to ROOT DISK. + # ( if not use another unused disk ) + + # Get device path of ROOT DISK + system host-show controller-0 --nowrap | fgrep rootfs + + # Get UUID of ROOT DISK by listing disks + system host-disk-list controller-0 + + # Create new PARTITION on ROOT DISK, and take note of new partition’s ‘uuid’ in response + # Use a partition size such that you’ll be able to increase docker fs size from 30G to 60G + PARTITION_SIZE=30 + system hostdisk-partition-add -t lvm_phys_vol controller-0 ${PARTITION_SIZE} + + # Add new partition to ‘cgts-vg’ local volume group + system host-pv-add controller-0 cgts-vg + sleep 2 # wait for partition to be added + + # Increase docker filesystem to 60G + system host-fs-modify controller-0 docker=60 + .. only:: starlingx ----------------------------------------------------------------------------------------------- @@ -567,7 +647,8 @@ machine. system host-disk-wipe -s --confirm controller-0 /dev/sdb values.yaml for rook-ceph-apps. - :: + + .. code-block:: yaml cluster: storage: diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/rook_storage_install_kubernetes.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/rook_storage_install_kubernetes.rst index a0f775cdc..ab64aab32 100644 --- a/doc/source/deploy_install_guides/r5_release/bare_metal/rook_storage_install_kubernetes.rst +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/rook_storage_install_kubernetes.rst @@ -1,3 +1,5 @@ +.. _rook_storage_install_kubernetes: + ===================================================================== Install StarlingX Kubernetes on Bare Metal Standard with Rook Storage ===================================================================== @@ -244,7 +246,7 @@ OpenStack-specific host configuration * Runs directly on the host (it is not containerized). * Requires that at least 1 core be assigned/dedicated to the vSwitch function. - To deploy the default containerized OVS|: + To deploy the default containerized |OVS|: :: @@ -261,12 +263,11 @@ OpenStack-specific host configuration system host-cpu-modify -f vswitch -p0 1 controller-0 Once vswitch_type is set to |OVS|-|DPDK|, any subsequent nodes created will - default to automatically assigning 1 vSwitch core for AIO controllers and 2 - vSwitch cores for compute-labeled worker nodes. + default to automatically assigning 1 vSwitch core for |AIO| controllers and + 2 vSwitch cores for compute-labeled worker nodes. - When using |OVS|-|DPDK|, configure vSwitch memory per NUMA node with the - following - command: + When using |OVS|-|DPDK|, configure vSwitch memory per |NUMA| node with the + following command: :: @@ -403,9 +404,9 @@ Install software on controller-1 and worker nodes A node with Edgeworker personality is also available. See :ref:`deploy-edgeworker-nodes` for details. -#. Wait for the software installation on controller-1, worker-0, and worker-1 to - complete, for all servers to reboot, and for all to show as locked/disabled/online in - 'system host-list'. +#. Wait for the software installation on controller-1, worker-0, and worker-1 + to complete, for all servers to reboot, and for all to show as + locked/disabled/online in 'system host-list'. :: @@ -428,9 +429,9 @@ Configure controller-1 .. incl-config-controller-1-start: -Configure the |OAM| and MGMT interfaces of controller-0 and specify the attached -networks. Use the |OAM| and MGMT port names, for example eth0, that are applicable -to your deployment environment. +Configure the |OAM| and MGMT interfaces of controller-0 and specify the +attached networks. Use the |OAM| and MGMT port names, for example eth0, that +are applicable to your deployment environment. (Note that the MGMT interface is partially set up automatically by the network install procedure.) @@ -518,12 +519,12 @@ Configure worker nodes This step is **required** for OpenStack. - This step is optional for Kubernetes: Do this step if using SRIOV network - attachments in hosted application containers. + This step is optional for Kubernetes: Do this step if using |SRIOV| + network attachments in hosted application containers. - For Kubernetes SRIOV network attachments: + For Kubernetes |SRIOV| network attachments: - * Configure SRIOV device plug in: + * Configure |SRIOV| device plug in: :: @@ -531,10 +532,10 @@ Configure worker nodes system host-label-assign ${NODE} sriovdp=enabled done - * If planning on running |DPDK| in containers on this host, configure the number - of 1G Huge pages required on both |NUMA| nodes: + * If planning on running |DPDK| in containers on this host, configure the + number of 1G Huge pages required on both |NUMA| nodes: - :: + .. code-block:: bash for NODE in worker-0 worker-1; do system host-memory-modify ${NODE} 0 -1G 100 @@ -543,7 +544,7 @@ Configure worker nodes For both Kubernetes and OpenStack: - :: + .. code-block:: bash DATA0IF= DATA1IF= @@ -589,18 +590,27 @@ OpenStack-specific host configuration #. **For OpenStack only:** Assign OpenStack host labels to the worker nodes in support of installing the stx-openstack manifest and helm-charts later. - :: - for NODE in worker-0 worker-1; do - system host-label-assign $NODE openstack-compute-node=enabled - system host-label-assign $NODE openvswitch=enabled - system host-label-assign $NODE sriov=enabled - done + .. only:: starlingx + + .. code-block:: bash + + for NODE in worker-0 worker-1; do + system host-label-assign $NODE openstack-compute-node=enabled + system host-label-assign $NODE openvswitch=enabled + system host-label-assign $NODE sriov=enabled + done + + .. only:: partner + + .. include:: /_includes/rook_storage_install_kubernetes.rest + :start-after: ref1-begin + :end-before: ref1-end #. **For OpenStack only:** Set up disk partition for nova-local volume group, which is needed for stx-openstack nova ephemeral disks. - :: + .. code-block:: bash for NODE in worker-0 worker-1; do echo "Configuring Nova local for: $NODE" @@ -619,7 +629,7 @@ Unlock worker nodes Unlock worker nodes in order to bring them into service: -:: +.. code-block:: bash for NODE in worker-0 worker-1; do system host-unlock $NODE @@ -638,7 +648,7 @@ Configure storage nodes Note that the MGMT interfaces are partially set up by the network install procedure. - :: + .. code-block:: bash for NODE in storage-0 storage-1; do system interface-network-assign $NODE mgmt0 cluster-host @@ -657,15 +667,14 @@ Unlock storage nodes Unlock storage nodes in order to bring them into service: -:: +.. code-block:: bash for STORAGE in storage-0 storage-1; do system host-unlock $STORAGE done The storage nodes will reboot in order to apply configuration changes and come -into service. This can take 5-10 minutes, depending on the performance of the -host machine. +into service. This can take 5-10 minutes, depending on the performance of the host machine. ------------------------------------------------- Install Rook application manifest and helm-charts @@ -720,7 +729,7 @@ On host storage-0 and storage-1: system application-apply rook-ceph-apps -#. Wait for OSDs pod ready. +#. Wait for |OSDs| pod ready. :: diff --git a/doc/source/node_management/kubernetes/index.rst b/doc/source/node_management/kubernetes/index.rst index d26e2d5e7..7c642484c 100644 --- a/doc/source/node_management/kubernetes/index.rst +++ b/doc/source/node_management/kubernetes/index.rst @@ -103,6 +103,8 @@ Host memory provisioning host_memory_provisioning/allocating-host-memory-using-horizon host_memory_provisioning/allocating-host-memory-using-the-cli +.. _node-interfaces-index: + --------------- Node interfaces --------------- diff --git a/doc/source/system_configuration/kubernetes/index.rst b/doc/source/system_configuration/kubernetes/index.rst index 42ecee5ff..9f43c834d 100644 --- a/doc/source/system_configuration/kubernetes/index.rst +++ b/doc/source/system_configuration/kubernetes/index.rst @@ -35,6 +35,8 @@ NTP Server Configuration configuring-ntp-servers-and-services-using-the-cli resynchronizing-a-host-to-the-ntp-server +.. _ptp-server-config-index: + ------------------------ PTP Server Configuration ------------------------