Update Servers/Containerization/Kubernetes/Deployment/Rancher RKE2.md
All checks were successful
GitOps Automatic Deployment / GitOps Automatic Deployment (push) Successful in 8s
All checks were successful
GitOps Automatic Deployment / GitOps Automatic Deployment (push) Successful in 8s
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
Deploying a Rancher RKE2 Cluster is fairly straightforward. Just run the commands in-order and pay attention to which steps apply to all machines in the cluster, the controlplanes, and the workers.
|
Deploying a Rancher RKE2 Cluster is fairly straightforward. Just run the commands in-order and pay attention to which steps apply to all machines in the cluster, the controlplanes, and the workers.
|
||||||
|
|
||||||
!!! note "Prerequisites"
|
!!! note "Prerequisites"
|
||||||
This document assumes you are running **Ubuntu Server 20.04** or later.
|
This document assumes you are running **Ubuntu Server 24.04.3 LTS**. It also assumes that every node in the cluster has a unique hostname.
|
||||||
|
|
||||||
## All Cluster Nodes
|
## All Cluster Nodes
|
||||||
Assume all commands are running as root moving forward. (e.g. `sudo su`)
|
Assume all commands are running as root moving forward. (e.g. `sudo su`)
|
||||||
@@ -10,12 +10,12 @@ Assume all commands are running as root moving forward. (e.g. `sudo su`)
|
|||||||
### Run Updates
|
### Run Updates
|
||||||
You will need to run these commands on every server that participates in the cluster then perform a reboot of the server **PRIOR** to moving onto the next section.
|
You will need to run these commands on every server that participates in the cluster then perform a reboot of the server **PRIOR** to moving onto the next section.
|
||||||
``` sh
|
``` sh
|
||||||
sudo apt update && sudo apt upgrade -y
|
apt update && apt upgrade -y
|
||||||
sudo apt install nfs-common iptables nano htop -y
|
apt install nfs-common iptables nano htop -y
|
||||||
echo "Adding 15 Second Delay to Ensure Previous Commands finish running"
|
echo "Adding 15 Second Delay to Ensure Previous Commands finish running"
|
||||||
sleep 15
|
sleep 15
|
||||||
sudo apt autoremove -y
|
apt autoremove -y
|
||||||
sudo reboot
|
reboot
|
||||||
```
|
```
|
||||||
!!! tip
|
!!! tip
|
||||||
If this is a virtual machine, now would be the best time to take a checkpoint / snapshot of the VM before moving forward, in case you need to perform rollbacks of the server(s) if you accidentally misconfigure something.
|
If this is a virtual machine, now would be the best time to take a checkpoint / snapshot of the VM before moving forward, in case you need to perform rollbacks of the server(s) if you accidentally misconfigure something.
|
||||||
@@ -30,17 +30,13 @@ curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE=server sh -
|
|||||||
```
|
```
|
||||||
### Enable & Configure Services
|
### Enable & Configure Services
|
||||||
``` sh
|
``` sh
|
||||||
# Make yourself sudo
|
|
||||||
sudo su
|
|
||||||
|
|
||||||
# Start and Enable the Kubernetes Service
|
# Start and Enable the Kubernetes Service
|
||||||
systemctl enable rke2-server.service
|
systemctl enable --now rke2-server.service
|
||||||
systemctl start rke2-server.service
|
|
||||||
|
|
||||||
# Symlink the Kubectl Management Command
|
# Symlink the Kubectl Management Command
|
||||||
ln -s $(find /var/lib/rancher/rke2/data/ -name kubectl) /usr/local/bin/kubectl
|
ln -s $(find /var/lib/rancher/rke2/data/ -name kubectl) /usr/local/bin/kubectl
|
||||||
|
|
||||||
# Temporarily Export the Kubeconfig to manage the cluster from CLI
|
# Temporarily Export the Kubeconfig to manage the cluster from CLI during initial deployment.
|
||||||
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
|
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
|
||||||
|
|
||||||
# Add a Delay to Allow Cluster to Finish Initializing / Get Ready
|
# Add a Delay to Allow Cluster to Finish Initializing / Get Ready
|
||||||
@@ -64,7 +60,7 @@ kubectl get node
|
|||||||
### Install Helm, Rancher, CertManager, Jetstack, Rancher, and Longhorn
|
### Install Helm, Rancher, CertManager, Jetstack, Rancher, and Longhorn
|
||||||
``` sh
|
``` sh
|
||||||
# Install Helm
|
# Install Helm
|
||||||
curl -#L https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
curl -L https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4 | bash
|
||||||
|
|
||||||
# Install Necessary Helm Repositories
|
# Install Necessary Helm Repositories
|
||||||
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
|
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
|
||||||
@@ -73,13 +69,13 @@ helm repo add longhorn https://charts.longhorn.io
|
|||||||
helm repo update
|
helm repo update
|
||||||
|
|
||||||
# Install Cert-Manager via Helm
|
# Install Cert-Manager via Helm
|
||||||
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.6.1/cert-manager.crds.yaml
|
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.19.2/cert-manager.crds.yaml
|
||||||
|
|
||||||
# Install Jetstack via Helm
|
# Install Jetstack via Helm
|
||||||
helm upgrade -i cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace
|
helm upgrade -i cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace
|
||||||
|
|
||||||
# Install Rancher via Helm
|
# Install Rancher via Helm
|
||||||
helm upgrade -i rancher rancher-latest/rancher --create-namespace --namespace cattle-system --set hostname=rancher.bunny-lab.io --set bootstrapPassword=bootStrapAllTheThings --set replicas=1
|
helm upgrade -i rancher rancher-latest/rancher --create-namespace --namespace cattle-system --set hostname=rke2-cluster.bunny-lab.io --set bootstrapPassword=bootStrapAllTheThings --set replicas=1
|
||||||
|
|
||||||
# Install Longhorn via Helm
|
# Install Longhorn via Helm
|
||||||
helm upgrade -i longhorn longhorn/longhorn --namespace longhorn-system --create-namespace
|
helm upgrade -i longhorn longhorn/longhorn --namespace longhorn-system --create-namespace
|
||||||
@@ -148,10 +144,10 @@ helm upgrade -i longhorn longhorn/longhorn --namespace longhorn-system --create-
|
|||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
Be sure to write down the "*bootstrapPassword*" variable for when you log into Rancher later. In this example, the password is `bootStrapAllTheThings`.
|
Be sure to write down the "*bootstrapPassword*" variable for when you log into Rancher later. In this example, the password is `bootStrapAllTheThings`.
|
||||||
Also be sure to adjust the "*hostname*" variable to reflect the FQDN of the cluster. You can leave it default like this and change it upon first login if you want. This is important for the last step where you adjust DNS. The example given is `rancher.bunny-lab.io`.
|
Also be sure to adjust the "*hostname*" variable to reflect the FQDN of the cluster. You can leave it default like this and change it upon first login if you want. This is important for the last step where you adjust DNS. The example given is `rke2-cluster.bunny-lab.io`.
|
||||||
|
|
||||||
### Log into webUI
|
### Log into webUI
|
||||||
At this point, you can log into the webUI at https://awx.bunny-lab.io using the default `bootStrapAllTheThings` password, or whatever password you configured, you can change the password after logging in if you need to by navigating to **Home > Users & Authentication > "..." > Edit Config > "New Password" > Save**. From here, you can deploy more nodes, or deploy single-node workloads such as an [Ansible AWX Operator](https://docs.bunny-lab.io/Containers/Kubernetes/Rancher%20RKE2/AWX%20Operator/Ansible%20AWX%20Operator/).
|
At this point, you can log into the webUI at https://rke2-cluster.bunny-lab.io using the default `bootStrapAllTheThings` password, or whatever password you configured, you can change the password after logging in if you need to by navigating to **Home > Users & Authentication > "..." > Edit Config > "New Password" > Save**. From here, you can deploy more nodes, or deploy single-node workloads such as an Ansible AWX Operator.
|
||||||
|
|
||||||
### Rebooting the ControlNode
|
### Rebooting the ControlNode
|
||||||
If you ever find yourself needing to reboot the ControlNode, and need to run kubectl CLI commands, you will need to run the command below to import the cluster credentials upon every reboot. Reboots should take much less time to get the cluster ready again as compared to the original deployments.
|
If you ever find yourself needing to reboot the ControlNode, and need to run kubectl CLI commands, you will need to run the command below to import the cluster credentials upon every reboot. Reboots should take much less time to get the cluster ready again as compared to the original deployments.
|
||||||
@@ -208,17 +204,16 @@ echo "server: https://192.168.3.21:9345" > /etc/rancher/rke2/config.yaml
|
|||||||
echo "token: K10aa0632863da4ae4e2ccede0ca6a179f510a0eee0d6d6eb53dca96050048f055e::server:3b130ceebfbb7ed851cd990fe55e6f3a" >> /etc/rancher/rke2/config.yaml
|
echo "token: K10aa0632863da4ae4e2ccede0ca6a179f510a0eee0d6d6eb53dca96050048f055e::server:3b130ceebfbb7ed851cd990fe55e6f3a" >> /etc/rancher/rke2/config.yaml
|
||||||
|
|
||||||
# Start and Enable the Kubernetes Service**
|
# Start and Enable the Kubernetes Service**
|
||||||
systemctl enable rke2-agent.service
|
systemctl enable --now rke2-agent.service
|
||||||
systemctl start rke2-agent.service
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## DNS Server Record
|
## DNS Server Record
|
||||||
You will need to set up some kind of DNS server record to point the FQDN of the cluster (e.g. `rancher.bunny-lab.io`) to the IP address of the Initial ControlPlane. This can be achieved in a number of ways, such as editing the Windows `HOSTS` file, Linux's `/etc/resolv.conf` file, a Windows DNS Server "A" Record, or an NGINX/Traefik Reverse Proxy.
|
You will need to set up some kind of DNS server record to point the FQDN of the cluster (e.g. `rke2-cluster.bunny-lab.io`) to the IP address of the Initial ControlPlane. This can be achieved in a number of ways, such as editing the Windows `HOSTS` file, Linux's `/etc/resolv.conf` file, a Windows DNS Server "A" Record, or an NGINX/Traefik Reverse Proxy.
|
||||||
|
|
||||||
Once you have added the DNS record, you should be able to access the login page for the Rancher RKE2 Kubernetes cluster. Use the `bootstrapPassword` mentioned previously to log in, then change it immediately from the user management area of Rancher.
|
Once you have added the DNS record, you should be able to access the login page for the Rancher RKE2 Kubernetes cluster. Use the `bootstrapPassword` mentioned previously to log in, then change it immediately from the user management area of Rancher.
|
||||||
|
|
||||||
| TYPE OF ACCESS | FQDN | IP ADDRESS |
|
| TYPE OF ACCESS | FQDN | IP ADDRESS |
|
||||||
| -------------- | ------------------------------------- | ------------ |
|
| -------------- | ------------------------------------- | ------------ |
|
||||||
| HOST FILE | rancher.bunny-lab.io | 192.168.3.10 |
|
| HOST FILE | rke2-cluster.bunny-lab.io | 192.168.3.69 |
|
||||||
| REVERSE PROXY | http://rancher.bunny-lab.io:80 | 192.168.5.29 |
|
| REVERSE PROXY | http://rke2-cluster.bunny-lab.io:80 | 192.168.5.29 |
|
||||||
| DNS RECORD | A Record: rancher.bunny-lab.io | 192.168.3.10 |
|
| DNS RECORD | A Record: rke2-cluster.bunny-lab.io | 192.168.3.69 |
|
||||||
Reference in New Issue
Block a user