Cloud Pak for Data

Cloud Pak for Data

Come for answers. Stay for best practices. All we’re missing is you.

 View Only

Deep dive in DMC components and related resources on Cloud Pak for Data v4 - Part I

By DA WEI ZHANG posted Sun April 24, 2022 11:15 PM

  

Data Management Console

IBM Db2 Data Management Console(DMC) is a tool that you can use to manage and monitor your integrated IBM Db2 databases from a single user interface. It can mange Db2, Db2 Warehouse and Data Virtualization services in Cloud Pak for Data.

From the console, you can:

  • Administer databases
  • Work with database objects and utilities
  • Develop and run SQL scripts
  • Move and load large amounts of data into databases for in-depth analysis
  • Monitor the performance of your Cloud Pak for Data integrated Db2 databases

DMC components in cp4d

Using opensource tool kubectl-tree, you can easily to get all resources list of DMC CustomResource:

Dmc Addons


When intalled DMC service you need to create DMC Addon CR:


cat <<EOF |oc apply -f -
apiVersion: dmc.databases.ibm.com/v1
kind: Dmcaddon
metadata:
    name: dmc-addon # This is the recommended name, but you can change it
    namespace: project-name # Replace with the project where you will install Db2 Data Management Console
spec:
    license:
        accept: true
        license: Enterprise | Standard # Specify the license you purchased
    version: 4.0.7
EOF




Then use "kubectl tree" command to list resources:
# kubectl tree dmcaddons dmc-addon


Deployments and Services


DMC addon CR created two deployments and corresponding services:

ibm-dmc-addon-ui:  Provide provision UI for dmc services.

ibm-dmc-addon-api:  Provides service provider function in cloud pak for data. It interact with zen-core-api to perform service registration and manage dmc instances.



ConfigMap



cpd-dmc-aux-br-cm: This is auxiliary meta for dmcaddon/dmc backup and restore operation
cpd-dmc-aux-qu-cm: This is auxiliary meta for dmcaddon/dmc quiesce and unquiesce operation
dmc-services-info-cm: DMC service info provided for about page.
ibm-dmc-addon-api-cm:  Used by ibm-dmc-addon-api deployments to store variables
zen-addon-cm-dmc: DMC meta data provided for zen-core-api.


Role and Rolebinding


Bind to zen-editor-sa and zen-admin-sa to operate dmc resources.
ibm-dmc-addon-api and ibm-dmc-addon-ui runs with service account zen-editor-sa.



Dmcs

Dmcs CustomResource represent the dmc instances. DMC instances can be provisioned from UI. If Data Virualization is installed withou existing dmc instance, a dmc instance will be provisioned automatically .

apiVersion: dmc.databases.ibm.com/v1
kind: Dmc
metadata:
annotations:
ansible.operator-sdk/reconcile-period: 30s
ansible.sdk.operatorframework.io/verbosity: "4"
creationTimestamp: "2022-04-01T09:57:17Z"
generation: 2
name: data-management-console
namespace: zen
resourceVersion: "19850375"
uid: b37be438-65db-48bc-a4b2-a5e33e30b764
spec:
description: IBM Db2 Data Management Console
license:
accept: true
license: Standard
scaleConfig: small
storageClass: ocs-storagecluster-cephfs
storageSize: 10Gi
total_resources:
limits:
cpu: ""
memory: ""
version: 4.0.7
zenControlPlaneNamespace: zen
zenServiceInstanceDisplayName: data-management-console
zenServiceInstanceId: 1648807034329656
zenServiceInstanceNamespace: zen
zenServiceInstanceOwnerUID: 1000330999EOF

Use "kubectl tree" command to list resources:
# kubectl tree dmcs data-management-console



These can be groups to deployment/statefulset/pod, networkpolicy, service,persistent volumes, etc.


Deployment/StatefulSet and Service

ibm-dmc-<instance-id>-runsql: "Run SQL"
ibm-dmc-<instance-id>-explain: SQL explain in "Run SQL" menu.
ibm-dmc-<instance-id>-admin: Provide functionalities in "Data" menu
ibm-dmc-<instance-id>-dbapi:  Manipulate database profiles and connections 
ibm-dmc-<instance-id>-monitor: Provide functionalities in "Monitor" menu and "Report" menu
ibm-dmc-<instance-id>-job-scheduler: Provide functionalities in "Jobs" menu
ibm-dmc-<instance-id>-registry:  Register databases into profiles, init repository and allocate pods to handle it.
ibm-dmc-<instance-id>-nginx:  Provide access route to funtional pods.

ConfigMap

<instance-id>: Store database profile information. Created by ibm-dmc-<instance-id>-registry pod, read by dbapi pod.
dmc-data-management-console-cm: Stored instance infromation and read by zen-watcher pod.   Then this information stored into zen-metastoredb.
ibm-dmc-<instance-id>-jobsconfigmap: Store jobs information.
ibm-dmc-<instance-id>-ucconfigmap:  Store profile lists and dmc config settings. Write by registry manager pod, read by other pods. 
ibm-dmc-<instance-id>-redis-client-cert:  CA certificate for redis service.

Secret

ibm-dmc-<instance-id>-console-api-key: Console api key to communicate between dmc instance pods.
ibm-dmc-<instance-id>-console-secret:  Apikey and password used for IBM cloud.
ibm-dmc-<instance-id>-job-scheduler: Store username and password to call job scheduler api.
ibm-dmc-<instance-id>-nginx-tls: Certificates for nginx service.
ibm-dmc-<instance-id>-redis: Store redis password.
ibm-dmc-<instance-id>-registry-manager: Store username and password to call registry manager api.

PersistentVolume

ibm-dmc-<instance-id>-data: Stored dmc config files and logs.


Redis related resources


Dmc use redis operator to be cache for monitored data.

OperandRequest:  data-management-console-dmc-requests-redis
RedisSentinels:  Redis resource object to reference other resources
PersistentVolume: data-c-ibm-dmc-<instance-id>-redis-m-1 and data-c-ibm-dmc-<instance-id>-redis-m-0 used by redis master pods.

Other related components in cp4d

DMC read some resources from other services or components to get neccessary information.

Zen core related


Configmap: product-configmap, DMC addon read this configmap to get cloud pak instance information.
Secret: internal-tls, DMC pods mount this secret as server certificate.

Database related

Before CP4D 4.0.7, dmc read database instance info and password from zen-core-api. In 4.0.8 and 4.5 later, will read password from database secrets.





#CloudPakforDataGroup
0 comments
13 views

Permalink