Skip to content

Commit 112e293

Browse files
rahulaitnmelehan
andauthored
[update] : update ccm install docs (#7158)
* update ccm install docs * Copy edits * Copy edits --------- Co-authored-by: Nathan Melehan <[email protected]>
1 parent 62bcb77 commit 112e293

File tree

1 file changed

+51
-16
lines changed
  • docs/guides/kubernetes/install-the-linode-ccm-on-unmanaged-kubernetes

1 file changed

+51
-16
lines changed

docs/guides/kubernetes/install-the-linode-ccm-on-unmanaged-kubernetes/index.md

Lines changed: 51 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ og_description: "This guide includes steps for installing the Linode Cloud Contr
66
authors: ["Linode"]
77
contributors: ["Linode"]
88
published: 2020-07-16
9+
modified: 2024-12-05
910
keywords: ['kubernetes','cloud controller manager','load balancing','nodebalancers']
1011
tags: ["docker","networking","kubernetes"]
1112
license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)'
@@ -18,21 +19,27 @@ The [Linode Cloud Controller Manager (CCM)](https://github.com/linode/linode-clo
1819
NodeBalancers provide your Kubernetes cluster with a reliable way of exposing resources to the public internet. The Linode CCM handles the creation and deletion of the NodeBalancer, and, along with other Master Plane components, correctly identifies the resources, and their networking, that the NodeBalancer will route traffic to. Whenever a Kubernetes Service of the `LoadBalancer` type is created, your Kubernetes cluster will create a Linode NodeBalancer service with the help of the Linode CCM.
1920

2021
{{< note >}}
21-
This guide will show you how to manually install the Linode CCM on an unmanaged Kubernetes cluster. This guide exists to support special use cases. For example, if you would like to experiment with various elements of a Kubernetes control plane.
22+
This guide shows you how to manually install the Linode CCM on an **unmanaged** Kubernetes cluster. This guide exists to support special use cases. For example, if you would like to experiment with various elements of a Kubernetes control plane.
2223

2324
If you would like to use Kubernetes for production scenarios and make use of Linode NodeBalancers to expose your cluster's resources, it is recommended that you [use the Linode Kubernetes Engine to deploy your cluster](/docs/products/compute/kubernetes/). An LKE cluster's control plane has the Linode CCM preinstalled and does not require any of the steps included in this guide.
2425

25-
Similarly, if you would like to deploy an unmanaged Kubernetes cluster on Linode, the best way to accomplish that is using [Terraform and the Linode K8s module](/docs/guides/how-to-provision-an-unmanaged-kubernetes-cluster-using-terraform/). The Linode K8s module will also include the Linode CCM preinstalled on the Kubernetes master's control plane and does not require any of the steps included in this guide.
26+
Another option for deploying Kubernetes clusters on Linode is to use [Cluster API Provider Linode (CAPL)](https://linode.github.io/cluster-api-provider-linode/). It provisions a management Kubernetes cluster which can then be used to provision and manage multiple other child Kubernetes clusters on Linode. It installs CCM by default and supports provisioning Kubernetes clusters using kubeadm, rke2 and k3s.
2627

27-
If you have used the Linode Kubernetes Engine (LKE) or the Linode Terraform K8s module to deploy your cluster, you should instead refer to the [Getting Started with Load Balancing on a Linode Kubernetes Engine (LKE) Cluster](/docs/products/compute/kubernetes/guides/load-balancing/) guide for steps on adding and configuring NodeBalancers on your Kubernetes cluster.
28+
If you have used the Linode Kubernetes Engine (LKE) or Cluster API Provider Linode (CAPL) to deploy your cluster, you should refer to the [Getting Started with Load Balancing on a Linode Kubernetes Engine (LKE) Cluster](/docs/products/compute/kubernetes/guides/load-balancing/) guide for steps on adding and configuring NodeBalancers on your Kubernetes cluster.
2829
{{< /note >}}
2930

3031
## In this Guide
3132

32-
You will manually install the Linode CCM on your unmanaged Kubernetes cluster. This will include:
33+
Instructions are shown for manually installing the Linode CCM on your unmanaged Kubernetes cluster. This includes:
3334

3435
- [Updating your Kubernetes cluster's configuration](#update-your-cluster-configuration) to use the CCM for Node scheduling.
35-
- [Using a helper script to create a manifest file](#install-the-linode-ccm) that will install the Linode CCM and supporting resources on your cluster.
36+
37+
- Two options for installing the Linode CCM:
38+
39+
- [Using a Helm chart](#install-linode-ccm-using-helm)
40+
41+
- [Using a helper script to create a manifest file](#install-linode-ccm-using-generated-manifest)
42+
3643
- [Updating the Linode CCM](#updating-the-linode-ccm) running on your cluster with its latest upstream changes.
3744

3845
### Before You Begin
@@ -45,9 +52,7 @@ You will manually install the Linode CCM on your unmanaged Kubernetes cluster. T
4552

4653
1. Ensure you have [kubectl installed](/docs/guides/how-to-provision-an-unmanaged-kubernetes-cluster-using-terraform/#install-kubectl) on your local computer and you can access your Kubernetes cluster with it.
4754

48-
1. [Install Git](/docs/guides/how-to-install-git-on-linux-mac-and-windows/) on your local computer.
49-
50-
1. Generate a [Linode APIv4 token](/docs/products/tools/api/get-started/#get-an-access-token).
55+
1. Generate a [Linode APIv4 token](/docs/products/tools/api/get-started/#get-an-access-token). This is required for both methods of installing the Linode CCM in this guide.
5156

5257
## Running the Linode Cloud Controller Manager
5358

@@ -60,13 +65,34 @@ In order to run the Linode Cloud Controller Manager:
6065

6166
These configurations will change the behavior of your cluster and how it interacts with its Nodes. For more details, visit the [upstream Cloud Controller documentation](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/).
6267

63-
### Install the Linode CCM
68+
### Install Linode CCM using Helm
6469

65-
The Linode CCM's GitHub repository provides a helper script that creates a Kubernetes manifest file that you can use to install the CCM on your cluster. These steps should be run on your local computer and were tested on a macOS.
70+
Installing the Linode CCM using Helm is the preferred method. Helm chart contents are available in [deploy/chart directory of the linode-cloud-controller-manager GitHub repository](https://github.com/linode/linode-cloud-controller-manager/tree/main/deploy/chart).
6671

67-
{{< note >}}
68-
You will need your [Linode APIv4](/docs/products/tools/api/get-started/#get-an-access-token) token to complete the steps in this section.
69-
{{< /note >}}
72+
1. [Install Helm](https://helm.sh/docs/intro/install/)
73+
74+
1. Install the `ccm-linode` repo.
75+
76+
```command
77+
helm repo add ccm-linode https://linode.github.io/linode-cloud-controller-manager/
78+
helm repo update ccm-linode
79+
```
80+
81+
1. Deploy the `ccm-linode` Helm chart.
82+
83+
```command
84+
export LINODE_API_TOKEN={{< placeholder "YOUR_LINODE_API_TOKEN" >}}
85+
export REGION={{< placeholder "YOUR_LINODE_REGION" >}}
86+
helm install ccm-linode --set apiToken=$LINODE_API_TOKEN,region=$REGION ccm-linode/ccm-linode
87+
```
88+
89+
For advanced configuration, one can specify their own [values.yaml](https://github.com/linode/linode-cloud-controller-manager/blob/main/deploy/chart/values.yaml) file when installing the Helm chart.
90+
91+
### Install Linode CCM using Generated Manifest
92+
93+
The Linode CCM's GitHub repository provides a helper script that creates a Kubernetes manifest file that you can use to install the CCM on your cluster. These steps should be run on your local computer and were tested on a macOS workstation.
94+
95+
1. [Install Git](/docs/guides/how-to-install-git-on-linux-mac-and-windows/) on your local computer.
7096
7197
1. Clone the [Linode CCM's GitHub repository](https://github.com/linode/linode-cloud-controller-manager).
7298

@@ -98,6 +124,15 @@ You will need your [Linode APIv4](/docs/products/tools/api/get-started/#get-an-a
98124
You can create your own `ccm-linode.yaml` manifest file by editing the contents of the `ccm-linode-template.yaml` file and changing the values of the `data.apiToken` and `data.region` fields with your own desired values. This template file is located in the `deploy` directory of the Linode CCM repository.
99125
{{< /note >}}
100126

127+
{{< note >}}
128+
Helm can also be used to render the ccm-linode Helm chart and apply it manually.
129+
{{< /note >}}
130+
131+
```command
132+
cd linode-cloud-controller-manager/
133+
helm template --set apiToken=$LINODE_API_TOKEN,region=$REGION deploy/chart/
134+
```
135+
101136
## Updating the Linode CCM
102137

103138
The easiest way to update the Linode CCM is to edit the DaemonSet that creates the Linode CCM Pod. To do so:
@@ -111,13 +146,13 @@ The easiest way to update the Linode CCM is to edit the DaemonSet that creates t
111146
1. The CCM Daemonset manifest will appear in vim. Press `i` to enter insert mode. Navigate to `spec.template.spec.image` and change the field's value to the desired version tag. For instance, if you had the following image:
112147
113148
```file
114-
image: linode/linode-cloud-controller-manager:v0.2.2
149+
image: linode/linode-cloud-controller-manager:v0.4.12
115150
```
116151
117-
You could update the image to `v0.2.3` by changing the image tag:
152+
You could update the image to `v0.4.20` by changing the image tag:
118153
119154
```file
120-
image: linode/linode-cloud-controller-manager:v0.2.3
155+
image: linode/linode-cloud-controller-manager:v0.4.20
121156
```
122157
123158
For a complete list of CCM version tags, visit the [CCM DockerHub page](https://hub.docker.com/r/linode/linode-cloud-controller-manager/tags).

0 commit comments

Comments
 (0)