Skip to content

Instantly share code, notes, and snippets.

@dbrosy
Last active August 26, 2023 02:02
Show Gist options
  • Save dbrosy/ff583acecd53076eaebf4171275b3891 to your computer and use it in GitHub Desktop.
Save dbrosy/ff583acecd53076eaebf4171275b3891 to your computer and use it in GitHub Desktop.

k3s

k3s - Install

Standard
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
With External IP
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644 --node-external-ip <ipaddr>
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=latest sh -s - --write-kubeconfig-mode 644 --node-external-ip <ipaddr>
Optional: Without traefik
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644 --disable traefik
Optional: Without servicelb
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644 --disable servicelb
Optional: Custom Version
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=latest sh -

k3s - Uninstall

/usr/local/bin/k3s-uninstall.sh

k3s - kubeconfig

cat /etc/rancher/k3s/k3s.yaml

kubectl commands

list nodes
kubectl get nodes

Rancher on k3s

Install Cert-Manager

Create the namespace for cert-manager:
kubectl create namespace cert-manager
Add the Jetstack Helm repository:
helm repo add jetstack https://charts.jetstack.io
Update local Helm repo cache:
helm repo update
install the cert-manager Helm chart (Requires helm 3+):
bash
CM_VERSION='v1.3.1'

helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --version $CM_VERSION \
  --set installCRDs=true
powershell
$CM_VERSION='v1.3.1'

helm install `
  cert-manager jetstack/cert-manager `
  --namespace cert-manager `
  --version $CM_VERSION `
  --set installCRDs=true
Verify Cert-Manager installation
kubectl get pods --namespace cert-manager

output:
NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-cainjector-76c6657c55-jtn7g   1/1     Running   0          49s
cert-manager-bd9d585bd-vprdm               1/1     Running   0          49s
cert-manager-webhook-64b9b4fdfd-826vv      1/1     Running   0          49s

Install Rancher

Add helm chart (latest)
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
Pre-fetch rancher
helm fetch rancher-latest/rancher
Add helm chart (stable)
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
Pre-fetch rancher
helm fetch rancher-stable/rancher
Add cattle-system namespace
kubectl create namespace cattle-system
Install Rancher Helm chart
bash
helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --set hostname=rancher.192.168.57.140.xip.io \
  --set replicas=1 \
  --wait
powershell
helm install rancher rancher-latest/rancher `
  --namespace cattle-system `
  --set hostname=rancher.192.168.57.140.xip.io `
  --wait
helm install rancher rancher-latest/rancher `
  --namespace cattle-system `
  --set hostname=$le_domain `
  --set ingress.tls.source=letsEncrypt `
  --set letsEncrypt.email=$le_email `
  --set replicas=1 `
  --set global.cattle.psp.enabled=false `
  --wait

Upgrade Rancher

helm repo update
helm fetch rancher-latest/rancher
helm get values rancher -n cattle-system -o yaml > values.yaml
helm upgrade rancher rancher-latest/rancher `
  --namespace cattle-system `
  -f values.yaml

Upgrade K3s

Check versions table
https://update.k3s.io/v1-release/channels
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment