第 7 章 描述 RHOSO 高可用性服务的 statefulset


OpenShift (RHOSO)高可用性服务的 Operator 创建和管理 有状态集

statefulset 执行以下任务:

  • 管理每个服务的一组 pod 的部署和扩展。
  • 为每个 pod 维护一个粘性身份。这意味着每个 pod 都有一个唯一且持久的网络标识符,它会在任何重新调度过程中维护。
  • 为服务提供持久性存储。
  • 实施服务的滚动更新,以防止服务中断。

您可以检索有关每个服务的 statefulset 的以下信息,该服务被组织在以下部分中:

  • 有关服务的基本信息。例如,副本数量。
  • 实际的容器详情。例如,环境变量。
  • 卷详情:为此服务提供的持久性存储。
  • 事件详情: 有状态集 事件,可用于故障排除。
注意

在描述它们前,您必须始终列出共享 control plane 服务的 statefulset 名称,因为有时 statefulset 的名称与共享 control plane 服务的名称不同。

流程

  1. 您可以使用以下命令列出 Galera、RabbitMQ 和 memcached 共享 control plane 服务的 statefulset 名称:

    $ 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 Toggle word wrap
  2. 您可以使用以下命令描述共享 control plane 服务的 statefulset

    $ oc describe statefulset <statefulset_name>
    Copy to Clipboard Toggle word wrap
    • <statefulset_name > 替换为从上一命令检索的 statefulset 的名称。

      例如,以下命令检索 openstack-galera statefulset 的信息:

      $ oc describe statefulset openstack-galera
      Copy to Clipboard Toggle word wrap
  3. 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]
      Copy to Clipboard Toggle word wrap
    • 容器,提供有关此服务容器的信息:

       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 Toggle word wrap
    • 卷,它提供有关为此服务提供的持久性存储卷的信息:

       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 Toggle word wrap
    • 事件,提供此服务的 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
      Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat