Storage Fusion

 View Only

High Performing applications with Turbonomics on IBM Spectrum Fusion

By Rahul Nema posted Sat May 28, 2022 05:15 PM

  
IBM Spectrum Fusion is the data service platform which helps run applications in a seamless manner on the platform it brings OpenShift Container platform and next-generation Cloud-Native Storage which is highly available and is enabled for out-of-the-box backup and restore. IBM Spectrum Fusion enables the deployment of customer applications in a seems-less manner. Now using the current blog details customers will also be bringing application performance monitoring and porting capabilities from Turbonomic integration. 

As IBM Spectrum Fusion platform is already ready with storage and container platform it is very simple to deploy Turbonomic platform and agents to optimize applications.

Turbonomic brings the below capabilities to the IBM Spectrum Fusion Platform

1. Improve application performance --

Help ensure your applications get the resources they need to perform. With a complete understanding of the application and infrastructure stack, you can automate actions and prevent resource congestion across a hybrid cloud environment.

2. Increase IT productivity --

Automatically manage resources based on real-time demand to drive continuous performance and enable your application and infrastructure teams to shift their priorities to deliver better experiences for your end users.



3. Unite application and infrastructure teams --

Gain a common understanding of how infrastructure impacts performance and bridge the gap between application and infrastructure teams. With your applications running on auto-pilot, you can shift your energy to innovation and reclaim time to drive better customer experiences.

Let's try to deploy and validate Turbonomic Platform and Kube Turbo operator on Fusion platform with the next few simple steps.


High Level Overview --

Make sure Fusion is up and running and is ready for workload deployment

1. Prepare for the environment
       Create `turbonomic` namespace
       Switch to turbonomic namespace
2. Prerequisites for Deploying on Openshift
       Use the assigned uid range for restricted SCC
       Using a custom StorageClass instead of the default one
3. Start to Deploy Turbonomic Platform
       Get Turbonomic UI route after the deployment completed
       Import license
4. Install Kubeturbo
       Create `turbo` namespace and kubeturbo operator

Detail Steps

1. Prepare for the environment
          a. Create `turbonomic` namespace

                    export NS=turbonomic
                    oc new-project ${NS}

           b.  Switch to turbonomic namespace

                     oc project ${NS}

2. Prerequisites for Deploying on Openshift

     a. Use the assigned uid range for restricted SCC

          We need to use the group id from the uid-range assigned to the project:
        
                oc get ns ${NS} -o yaml|grep uid-range
                 openshift.io/sa.scc.uid-range: 1000630000/10000

     b. Using a custom StorageClass instead of the default one
         We need to define a custom StorageClass for deploying Turbonomics Platform
         
        
         echo "Creating storage class for Turbo deployment"
         cat << EOF | oc  apply -f -
         kind: StorageClass
         apiVersion: storage.k8s.io/v1
         metadata:
         name: ibm-spectrum-scale-turbonomic
         provisioner: spectrumscale.csi.ibm.com
         parameters:
         clusterId: '<scale clusterid>'
         gid: '<project gid obtained in Step a e.g 1000630000>'
         volBackendFs: <filesystemname>
         reclaimPolicy: Delete
         volumeBindingMode: Immediate


3.  Start to Deploy Turbonomic Platform

a. Deploy Turbo Operator
       echo "Installing Turbonomic Platform Operator"
       cat << EOF | oc -n ${NS} apply -f -
       apiVersion: operators.coreos.com/v1
       kind: OperatorGroup
       metadata:
       annotations:
       olm.providedAPIs: Xl.v1.charts.helm.k8s.io
       name: turbonomic-mkk5d
       namespace: ${NS}
       spec:
       targetNamespaces:
       - ${NS}
       EOF

     b. Create the subscription
     
       cat << EOF | oc -n ${NS} apply -f -
       apiVersion: operators.coreos.com/v1alpha1
        kind: Subscription
        metadata:
        labels:
       operators.coreos.com/t8c-certified.turbonomic: ""
       name: t8c-certified
        namespace: ${NS}
       spec:
       name: t8c-certified
       source: certified-operators
       sourceNamespace: openshift-marketplace
       EOF
      until oc get crd xls.charts.helm.k8s.io >> /dev/null 2>&1; do sleep 5; done


      c. Create Turbonomic CR

       echo "Creating Turbonomic Platform CR"
       cat << EOF | oc -n ${NS} apply -f -
       apiVersion: charts.helm.k8s.io/v1
       kind: Xl
       metadata:
       name: xl-release
       spec:
       global:
       securityContext:
           fsGroup: <id for gid as Obtained in 2.a>
       customImageNames: false
       repository: registry.connect.redhat.com/turbonomic
        tag: 8.4.6
       nginxingress:
       enabled: false
       openshiftingress:
       enabled: true
        ui:
        enabled: false
         EOF

       d. Get Turbonomic UI route after the deployment completed
            check for the route
             oc get route -n ${NS}

4. Import license
    After login the Turbonomic console, it will ask for license.
     You can obtain the licenses from your software download or contacting your IBM Sales Rep
     Now you've completed the Turbonomic install

5. Install Kubeturbo

       Create `turbo` namespace and kubeturbo operator

       a. Create namespace
        export NS=turbo
         kubectl create ns ${NS}

       b. Create Kubeturbo Operator Group
          cat << EOF | oc -n ${NS} apply -f -
          apiVersion: operators.coreos.com/v1
          kind: OperatorGroup
          metadata:
          annotations:
          olm.providedAPIs: Kubeturbo.v1.charts.helm.k8s.io
          name: turbo-mkk5d
          namespace: ${NS}
          spec:
          targetNamespaces:
          - ${NS}
         EOF

      b. Create Kubeturbo Subscription

          cat << EOF | oc -n ${NS} apply -f -
          apiVersion: operators.coreos.com/v1alpha1
          kind: Subscription
          metadata:
          labels:
          operators.coreos.com/kubeturbo-certified.turbo: ""
          name: kubeturbo-certified
          namespace: ${NS}
          spec:
          name: kubeturbo-certified
          source: certified-operators
          sourceNamespace: openshift-marketplace
          EOF
           until oc get crd kubeturbos.charts.helm.k8s.io >> /dev/null 2>&1; do sleep 5; done

       c.  Create KubeTurbo CR

          echo "Creating Kubeturbo CR"
          cat << EOF | oc -n ${NS} apply -f -
          apiVersion: charts.helm.k8s.io/v1
          kind: Kubeturbo
          metadata:
          name: kubeturbo-release
          spec:
          serverMeta:
          turboServer: https://topology-processor-turbonomic.apps.xxx.cp.fyre.ibm.com
          targetConfig:
          targetName: replace-with-your-cluster-name

Validating Turbo UI

0 comments
38 views

Permalink