Skip to content

Latest commit

 

History

History
179 lines (145 loc) · 8.4 KB

cs_integrations_addons.md

File metadata and controls

179 lines (145 loc) · 8.4 KB
copyright lastupdated keywords subcollection
years
2014, 2019
2019-04-11
kubernetes, iks, helm
containers

{:new_window: target="_blank"} {:shortdesc: .shortdesc} {:screen: .screen} {:pre: .pre} {:table: .aria-labeledby="caption"} {:codeblock: .codeblock} {:tip: .tip} {:note: .note} {:important: .important} {:deprecated: .deprecated} {:download: .download}

Adding services by using managed add-ons

{: #managed-addons}

Quickly add open-source technologies to your cluster with managed add-ons. {: shortdesc}

What are managed add-ons?
Managed {{site.data.keyword.containerlong_notm}} add-ons are an easy way to enhance your cluster with open-source capabilities, such as Istio, or Knative. The version of the open-source tool that you add to your cluster is tested by IBM and approved to be used in {{site.data.keyword.containerlong_notm}}.

How does the billing and support work for managed add-ons?
Managed add-ons are fully integrated into the {{site.data.keyword.Bluemix_notm}} support organization. If you have a question or an issue with using the managed add-ons, you can use one of the {{site.data.keyword.containerlong_notm}} support channels. For more information, see Getting help and support.

If the tool that you add to your cluster incurs costs, these costs are automatically integrated and listed as part of your {{site.data.keyword.containerlong_notm}} billing. The billing cycle is determined by {{site.data.keyword.Bluemix_notm}} depending on when you enabled the add-on in your cluster.

What limitations do I need to account for?
If you installed the container image security enforcer admission controller in your cluster, you cannot enable managed add-ons in your cluster.

Adding managed add-ons

{: #adding-managed-add-ons}

To enable a managed add-on in your cluster, you use the ibmcloud ks cluster-addon-enable <addon_name> --cluster <cluster_name_or_ID> command. When you enable the managed add-on, a supported version of the tool, including all Kubernetes resources are automatically installed in your cluster. Refer to the documentation of each managed add-on to find the prerequisites that your cluster must meet to install the managed add-on.

For more information about the prerequisites for each add-on, see:

Updating managed add-ons

{: #updating-managed-add-ons}

The versions of each managed add-on are tested by {{site.data.keyword.Bluemix_notm}} and approved for use in {{site.data.keyword.containerlong_notm}}. To update the components of an add-on to the most recent version supported by {{site.data.keyword.containerlong_notm}}, use the following steps. {: shortdesc}

  1. Check whether your add-ons are at the latest version. Any addons that are denoted with * (<version> latest) can be updated.

    ibmcloud ks cluster-addon-ls --cluster <mycluster>
    

    {: pre}

    Example output:

    OK
    Name      Version
    istio     1.0.6 *(1.1.2 latest)
    knative   0.4.1
    

    {: screen}

  2. Save any resources, such as configuration files for any services or apps, that you created or modified in the namespace that was generated by the add-on. For example, the Istio add-on uses istio-system, and the Knative add-on uses knative-serving, knative-monitoring, knative-eventing, and knative-build. Example command:

    kubectl get pod <pod_name> -o yaml -n istio-system
    

    {: pre}

  3. Save the Kubernetes resources that were automatically generated in the namespace of the managed add-on to a YAML file on your local machine. These resources are generated by using custom resource definitions (CRDs).

    1. Get the CRDs for your add-on from the namespace that your add-on uses. For example, for the Istio add-on, get the CRDs from the istio-system namespace.

      kubectl get crd -n istio-system
      

      {: pre}

    2. Save any resources created from these CRDs.

  4. Optional for Knative: If you modified any of the following resources, get the YAML file and save them to your local machine. Note that if you modified any of these resources but want use the installed default instead, you can delete the resource. After a few minutes, the resource is re-created with the installed default values.

Knative resources
Resource nameResource typeNamespace
config-autoscalerConfigMapknative-serving
config-controllerConfigMapknative-serving
config-domainConfigMapknative-serving
config-gcConfigMapknative-serving
config-istioConfigMapknative-serving
config-loggingConfigMapknative-serving
config-networkConfigMapknative-serving
config-observabilityConfigMapknative-serving
kanikoBuildTemplatedefault
iks-knative-ingressIngressistio-system

Example command:

kubectl get cm config-autoscaler -n knative-serving -o yaml > config-autoscaler.yaml

{: pre}

  1. If you enabled the istio-sample-bookinfo and istio-extras add-ons, disable them.

    1. Disable the istio-sample-bookinfo add-on.

      ibmcloud ks cluster-addon-disable istio-sample-bookinfo --cluster <cluster_name_or_ID>
      

      {: pre}

    2. Disable the istio-extras add-on.

      ibmcloud ks cluster-addon-disable istio-extras --cluster <cluster_name_or_ID>
      

      {: pre}

  2. Disable the add-on.

    ibmcloud ks cluster-addon-disable <add-on_name> --cluster <cluster_name_or_ID> -f
    

    {: pre}

  3. Before continuing to the next step, verify that either resources from the add-on within the add-on namespaces or the add-on namespaces themselves are removed.

    • For example, if you update the istio-extras add-on, you might verify that the grafana, kiali, and jaeger-* services are removed from the istio-system namespace.
      kubectl get svc -n istio-system
      
      {: pre}
    • For example, if you update the knative add-on, you might verify that the knative-serving, knative-monitoring, knative-eventing, knative-build, and istio-system namespaces are deleted. The namespaces might have a STATUS of Terminating for a few minutes before they are completely deleted.
      kubectl get namespaces -w
      
      {: pre}
  4. Choose the add-on version that you want to update to.

    ibmcloud ks addon-versions
    

    {: pre}

  5. Re-enable the add-on. Use the --version flag to specify the version that you want to install. If no version is specified, the default version is installed.

    ibmcloud ks cluster-addon-enable <add-on_name> --cluster <cluster_name_or_ID> --version <version>
    

    {: pre}

  6. Apply the CRD resources that you saved in step 2.

    kubectl apply -f <file_name> -n <namespace>
    

    {: pre}

  7. Optional for Knative: If you saved any of the resources in step 3, re-apply them. Example command:

    kubectl apply -f config-autoscaler.yaml -n knative-serving
    

    {: pre}

  8. Optional for Istio: Re-enable the istio-extras and istio-sample-bookinfo add-ons. Use the same version for these add-ons as for the istio add-on.

    1. Enable the istio-extras add-on.

      ibmcloud ks cluster-addon-enable istio-extras --cluster <cluster_name_or_ID> --version <version>
      

      {: pre}

    2. Enable the istio-sample-bookinfo add-on.

      ibmcloud ks cluster-addon-enable istio-sample-bookinfo --cluster <cluster_name_or_ID> --version <version>
      

      {: pre}