第 7 章 描述 RHOSO 高可用性服务的 statefulset
OpenShift (RHOSO)高可用性服务的 Operator 创建和管理 有状态集
。
statefulset
执行以下任务:
- 管理每个服务的一组 pod 的部署和扩展。
- 为每个 pod 维护一个粘性身份。这意味着每个 pod 都有一个唯一且持久的网络标识符,它会在任何重新调度过程中维护。
- 为服务提供持久性存储。
- 实施服务的滚动更新,以防止服务中断。
您可以检索有关每个服务的 statefulset
的以下信息,该服务被组织在以下部分中:
- 有关服务的基本信息。例如,副本数量。
- 实际的容器详情。例如,环境变量。
- 卷详情:为此服务提供的持久性存储。
-
事件详情:
有状态集
事件,可用于故障排除。
注意
在描述它们前,您必须始终列出共享 control plane 服务的 statefulset
名称,因为有时 statefulset
的名称与共享 control plane 服务的名称不同。
流程
您可以使用以下命令列出 Galera、RabbitMQ 和 memcached 共享 control plane 服务的
statefulset
名称:oc get statefulset |egrep -e "galera|rabbit|memcache"
$ oc get statefulset |egrep -e "galera|rabbit|memcache" NAME READY AGE memcached 1/1 174m openstack-cell1-galera 3/3 174m openstack-galera 3/3 174m rabbitmq-cell1-server 3/3 174m rabbitmq-server 3/3 174m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用以下命令描述共享 control plane 服务的
statefulset
:oc describe statefulset <statefulset_name>
$ oc describe statefulset <statefulset_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<statefulset_name
> 替换为从上一命令检索的statefulset
的名称。例如,以下命令检索
openstack-galera statefulset
的信息:oc describe statefulset openstack-galera
$ oc describe statefulset openstack-galera
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
statefulset
中包含的信息被组织到以下部分:基本服务信息,这是您看到的信息的第一个部分:
Name: openstack-galera Namespace: openstack CreationTimestamp: Thu, 21 Mar 2024 08:39:59 -0400 Selector: app=galera,cr=galera-openstack,galera/name=openstack,galera/namespace=openstack,galera/uid=1c93b3a3-1ac3-4f18-984d-34e9ce9dc12f,owner=mariadb-operator Labels: <none> Annotations: <none> Replicas: 3 desired | 3 total Update Strategy: RollingUpdate Partition: 0 Pods Status: 3 Running / 0 Waiting / 0 Succeeded / 0 Failed Pod Template: Labels: app=galera cr=galera-openstack galera/name=openstack galera/namespace=openstack galera/uid=1c93b3a3-1ac3-4f18-984d-34e9ce9dc12f owner=mariadb-operator Service Account: galera-openstack Init Containers: mysql-bootstrap: Image: quay.io/podified-antelope-centos9/openstack-mariadb@sha256:7fa37f7dcdd850fb6e401c4d5f76d16ad53ecdd14d6a130dbf61f02b819dcdf6 Port: <none> Host Port: <none> Command: bash /var/lib/operator-scripts/mysql_bootstrap.sh Environment: KOLLA_BOOTSTRAP: True KOLLA_CONFIG_STRATEGY: COPY_ALWAYS DB_ROOT_PASSWORD: <set to the key 'DbRootPassword' in secret 'osp-secret'> Optional: false Mounts: /var/lib/config-data/default from config-data-default (ro) /var/lib/config-data/generated from config-data-generated (rw) /var/lib/kolla/config_files from kolla-config (ro) /var/lib/mysql from mysql-db (rw) /var/lib/operator-scripts from operator-scripts (ro) /var/lib/secrets from secrets (ro) ... [cont]
Name: openstack-galera Namespace: openstack CreationTimestamp: Thu, 21 Mar 2024 08:39:59 -0400 Selector: app=galera,cr=galera-openstack,galera/name=openstack,galera/namespace=openstack,galera/uid=1c93b3a3-1ac3-4f18-984d-34e9ce9dc12f,owner=mariadb-operator Labels: <none> Annotations: <none> Replicas: 3 desired | 3 total Update Strategy: RollingUpdate Partition: 0 Pods Status: 3 Running / 0 Waiting / 0 Succeeded / 0 Failed Pod Template: Labels: app=galera cr=galera-openstack galera/name=openstack galera/namespace=openstack galera/uid=1c93b3a3-1ac3-4f18-984d-34e9ce9dc12f owner=mariadb-operator Service Account: galera-openstack Init Containers: mysql-bootstrap: Image: quay.io/podified-antelope-centos9/openstack-mariadb@sha256:7fa37f7dcdd850fb6e401c4d5f76d16ad53ecdd14d6a130dbf61f02b819dcdf6 Port: <none> Host Port: <none> Command: bash /var/lib/operator-scripts/mysql_bootstrap.sh Environment: KOLLA_BOOTSTRAP: True KOLLA_CONFIG_STRATEGY: COPY_ALWAYS DB_ROOT_PASSWORD: <set to the key 'DbRootPassword' in secret 'osp-secret'> Optional: false Mounts: /var/lib/config-data/default from config-data-default (ro) /var/lib/config-data/generated from config-data-generated (rw) /var/lib/kolla/config_files from kolla-config (ro) /var/lib/mysql from mysql-db (rw) /var/lib/operator-scripts from operator-scripts (ro) /var/lib/secrets from secrets (ro) ... [cont]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 容器,提供有关此服务容器的信息:
Containers: galera: Image: quay.io/podified-antelope-centos9/openstack-mariadb@sha256:7fa37f7dcdd850fb6e401c4d5f76d16ad53ecdd14d6a130dbf61f02b819dcdf6 Ports: 3306/TCP, 4567/TCP Host Ports: 0/TCP, 0/TCP Command: /usr/bin/dumb-init -- /usr/local/bin/kolla_start Liveness: exec [/bin/bash /var/lib/operator-scripts/mysql_probe.sh liveness] delay=0s timeout=1s period=10s #success=1 #failure=3 Readiness: exec [/bin/bash /var/lib/operator-scripts/mysql_probe.sh readiness] delay=0s timeout=1s period=10s #success=1 #failure=3 Startup: exec [/bin/bash /var/lib/operator-scripts/mysql_probe.sh startup] delay=0s timeout=1s period=10s #success=1 #failure=30 Environment: CR_CONFIG_HASH: n558hf6h557hcfh589h688h684hb6h687h679h659h554h64fh77h76h568h695h5b6h8fh79h5c8h648h674hdch556h56bh655h64bh655h66ch5h5c4q KOLLA_CONFIG_STRATEGY: COPY_ALWAYS DB_ROOT_PASSWORD: <set to the key 'DbRootPassword' in secret 'osp-secret'> Optional: false Mounts: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem from combined-ca-bundle (ro,path="tls-ca-bundle.pem") /var/lib/config-data/default from config-data-default (ro) /var/lib/config-data/generated from config-data-generated (rw) /var/lib/config-data/tls/certs/galera.crt from galera-tls-certs (ro,path="tls.crt") /var/lib/config-data/tls/private/galera.key from galera-tls-certs (ro,path="tls.key") /var/lib/kolla/config_files from kolla-config (ro) /var/lib/mysql from mysql-db (rw) /var/lib/operator-scripts from operator-scripts (ro) /var/lib/secrets from secrets (ro) ... [cont]
Containers: galera: Image: quay.io/podified-antelope-centos9/openstack-mariadb@sha256:7fa37f7dcdd850fb6e401c4d5f76d16ad53ecdd14d6a130dbf61f02b819dcdf6 Ports: 3306/TCP, 4567/TCP Host Ports: 0/TCP, 0/TCP Command: /usr/bin/dumb-init -- /usr/local/bin/kolla_start Liveness: exec [/bin/bash /var/lib/operator-scripts/mysql_probe.sh liveness] delay=0s timeout=1s period=10s #success=1 #failure=3 Readiness: exec [/bin/bash /var/lib/operator-scripts/mysql_probe.sh readiness] delay=0s timeout=1s period=10s #success=1 #failure=3 Startup: exec [/bin/bash /var/lib/operator-scripts/mysql_probe.sh startup] delay=0s timeout=1s period=10s #success=1 #failure=30 Environment: CR_CONFIG_HASH: n558hf6h557hcfh589h688h684hb6h687h679h659h554h64fh77h76h568h695h5b6h8fh79h5c8h648h674hdch556h56bh655h64bh655h66ch5h5c4q KOLLA_CONFIG_STRATEGY: COPY_ALWAYS DB_ROOT_PASSWORD: <set to the key 'DbRootPassword' in secret 'osp-secret'> Optional: false Mounts: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem from combined-ca-bundle (ro,path="tls-ca-bundle.pem") /var/lib/config-data/default from config-data-default (ro) /var/lib/config-data/generated from config-data-generated (rw) /var/lib/config-data/tls/certs/galera.crt from galera-tls-certs (ro,path="tls.crt") /var/lib/config-data/tls/private/galera.key from galera-tls-certs (ro,path="tls.key") /var/lib/kolla/config_files from kolla-config (ro) /var/lib/mysql from mysql-db (rw) /var/lib/operator-scripts from operator-scripts (ro) /var/lib/secrets from secrets (ro) ... [cont]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 卷,它提供有关为此服务提供的持久性存储卷的信息:
Volumes: secrets: Type: Secret (a volume populated by a Secret) SecretName: osp-secret Optional: false kolla-config: Type: ConfigMap (a volume populated by a ConfigMap) Name: openstack-config-data Optional: false config-data-generated: Type: EmptyDir (a temporary directory that shares a pod's lifetime) Medium: SizeLimit: <unset> config-data-default: Type: ConfigMap (a volume populated by a ConfigMap) Name: openstack-config-data Optional: false operator-scripts: Type: ConfigMap (a volume populated by a ConfigMap) Name: openstack-scripts Optional: false galera-tls-certs: Type: Secret (a volume populated by a Secret) SecretName: cert-galera-openstack-svc Optional: false combined-ca-bundle: Type: Secret (a volume populated by a Secret) SecretName: combined-ca-bundle Optional: false Volume Claims: Name: mysql-db StorageClass: local-storage Labels: app=galera cr=galera-openstack galera/name=openstack galera/namespace=openstack galera/uid=1c93b3a3-1ac3-4f18-984d-34e9ce9dc12f owner=mariadb-operator Annotations: <none> Capacity: 5G Access Modes: [ReadWriteOnce] ... [cont]
Volumes: secrets: Type: Secret (a volume populated by a Secret) SecretName: osp-secret Optional: false kolla-config: Type: ConfigMap (a volume populated by a ConfigMap) Name: openstack-config-data Optional: false config-data-generated: Type: EmptyDir (a temporary directory that shares a pod's lifetime) Medium: SizeLimit: <unset> config-data-default: Type: ConfigMap (a volume populated by a ConfigMap) Name: openstack-config-data Optional: false operator-scripts: Type: ConfigMap (a volume populated by a ConfigMap) Name: openstack-scripts Optional: false galera-tls-certs: Type: Secret (a volume populated by a Secret) SecretName: cert-galera-openstack-svc Optional: false combined-ca-bundle: Type: Secret (a volume populated by a Secret) SecretName: combined-ca-bundle Optional: false Volume Claims: Name: mysql-db StorageClass: local-storage Labels: app=galera cr=galera-openstack galera/name=openstack galera/namespace=openstack galera/uid=1c93b3a3-1ac3-4f18-984d-34e9ce9dc12f owner=mariadb-operator Annotations: <none> Capacity: 5G Access Modes: [ReadWriteOnce] ... [cont]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 事件,提供此服务的
statefulset
事件:Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuccessfulCreate 179m statefulset-controller create Claim mysql-db-openstack-galera-0 Pod openstack-galera-0 in statefulset openstack-galera success Normal SuccessfulCreate 179m statefulset-controller create Pod openstack-galera-0 in statefulset openstack-galera successful Normal SuccessfulCreate 179m statefulset-controller create Claim mysql-db-openstack-galera-1 Pod openstack-galera-1 in statefulset openstack-galera success Normal SuccessfulCreate 179m statefulset-controller create Claim mysql-db-openstack-galera-2 Pod openstack-galera-2 in statefulset openstack-galera success Normal SuccessfulCreate 179m statefulset-controller create Pod openstack-galera-1 in statefulset openstack-galera successful Normal SuccessfulCreate 179m statefulset-controller create Pod openstack-galera-2 in statefulset openstack-galera successful
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuccessfulCreate 179m statefulset-controller create Claim mysql-db-openstack-galera-0 Pod openstack-galera-0 in statefulset openstack-galera success Normal SuccessfulCreate 179m statefulset-controller create Pod openstack-galera-0 in statefulset openstack-galera successful Normal SuccessfulCreate 179m statefulset-controller create Claim mysql-db-openstack-galera-1 Pod openstack-galera-1 in statefulset openstack-galera success Normal SuccessfulCreate 179m statefulset-controller create Claim mysql-db-openstack-galera-2 Pod openstack-galera-2 in statefulset openstack-galera success Normal SuccessfulCreate 179m statefulset-controller create Pod openstack-galera-1 in statefulset openstack-galera successful Normal SuccessfulCreate 179m statefulset-controller create Pod openstack-galera-2 in statefulset openstack-galera successful
Copy to Clipboard Copied! Toggle word wrap Toggle overflow