copyright | lastupdated | keywords | subcollection | ||
---|---|---|---|---|---|
|
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}
{: #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}
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}
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}
-
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}
-
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 usesknative-serving
,knative-monitoring
,knative-eventing
, andknative-build
. Example command:kubectl get pod <pod_name> -o yaml -n istio-system
{: pre}
-
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).
-
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}
-
Save any resources created from these CRDs.
-
-
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.
Resource name | Resource type | Namespace |
---|---|---|
config-autoscaler | ConfigMap | knative-serving |
config-controller | ConfigMap | knative-serving |
config-domain | ConfigMap | knative-serving |
config-gc | ConfigMap | knative-serving |
config-istio | ConfigMap | knative-serving |
config-logging | ConfigMap | knative-serving |
config-network | ConfigMap | knative-serving |
config-observability | ConfigMap | knative-serving |
kaniko | BuildTemplate | default |
iks-knative-ingress | Ingress | istio-system |
Example command:
kubectl get cm config-autoscaler -n knative-serving -o yaml > config-autoscaler.yaml
{: pre}
-
If you enabled the
istio-sample-bookinfo
andistio-extras
add-ons, disable them.-
Disable the
istio-sample-bookinfo
add-on.ibmcloud ks cluster-addon-disable istio-sample-bookinfo --cluster <cluster_name_or_ID>
{: pre}
-
Disable the
istio-extras
add-on.ibmcloud ks cluster-addon-disable istio-extras --cluster <cluster_name_or_ID>
{: pre}
-
-
Disable the add-on.
ibmcloud ks cluster-addon-disable <add-on_name> --cluster <cluster_name_or_ID> -f
{: pre}
-
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 thegrafana
,kiali
, andjaeger-*
services are removed from theistio-system
namespace.{: pre}kubectl get svc -n istio-system
- For example, if you update the
knative
add-on, you might verify that theknative-serving
,knative-monitoring
,knative-eventing
,knative-build
, andistio-system
namespaces are deleted. The namespaces might have a STATUS ofTerminating
for a few minutes before they are completely deleted.{: pre}kubectl get namespaces -w
- For example, if you update the
-
Choose the add-on version that you want to update to.
ibmcloud ks addon-versions
{: pre}
-
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}
-
Apply the CRD resources that you saved in step 2.
kubectl apply -f <file_name> -n <namespace>
{: pre}
-
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}
-
Optional for Istio: Re-enable the
istio-extras
andistio-sample-bookinfo
add-ons. Use the same version for these add-ons as for theistio
add-on.-
Enable the
istio-extras
add-on.ibmcloud ks cluster-addon-enable istio-extras --cluster <cluster_name_or_ID> --version <version>
{: pre}
-
Enable the
istio-sample-bookinfo
add-on.ibmcloud ks cluster-addon-enable istio-sample-bookinfo --cluster <cluster_name_or_ID> --version <version>
{: pre}
-