Skip to content

Tanguille/cluster

Repository files navigation

Cluster

Welcome to my fluxcd kubernetes cluster running on talos. This is based on the cluster-template project where I want to express my gratitude to the community for all the amazing work they have done.

💥 Reset

There might be a situation where you want to destroy your Kubernetes cluster. The following command will reset your nodes back to maintenance mode, append --force to completely format your the Talos installation. Either way the nodes should reboot after the command has run.

task talos:reset # --force

🛠️ Talos and Kubernetes Maintenance

⚙️ Updating Talos node configuration

📍 Ensure you have updated talconfig.yaml and any patches with your updated configuration.

# (Re)generate the Talos config
task talos:generate-config
# Apply the config to the node
task talos:apply-node HOSTNAME=? MODE=?
# e.g. task talos:apply-config HOSTNAME=k8s-0 MODE=auto

⬆️ Updating Talos and Kubernetes versions

📍 Ensure the talosVersion and kubernetesVersion in talhelper.yaml are up-to-date with the version you wish to upgrade to.

# Upgrade node to a newer Talos version
task talos:upgrade-node HOSTNAME=?
# e.g. task talos:upgrade HOSTNAME=k8s-0
# Upgrade cluster to a newer Kubernetes version
task talos:upgrade-k8s
# e.g. task talos:upgrade-k8s

🐛 Debugging

Below is a general guide on trying to debug an issue with an resource or application. For example, if a workload/resource is not showing up or a pod has started but in a CrashLoopBackOff or Pending state.

  1. Start by checking all Flux Kustomizations & Git Repository & OCI Repository and verify they are healthy.

    flux get sources oci -A
    flux get sources git -A
    flux get ks -A
  2. Then check all the Flux Helm Releases and verify they are healthy.

    flux get hr -A
  3. Then check the if the pod is present.

    kubectl -n <namespace> get pods -o wide
  4. Then check the logs of the pod if its there.

    kubectl -n <namespace> logs <pod-name> -f
    # or
    stern -n <namespace> <fuzzy-name>
  5. If a resource exists try to describe it to see what problems it might have.

    kubectl -n <namespace> describe <resource> <name>
  6. Check the namespace events

    kubectl -n <namespace> get events --sort-by='.metadata.creationTimestamp'

Resolving problems that you have could take some tweaking of your YAML manifests in order to get things working, other times it could be a external factor like permissions on NFS. If you are unable to figure out your problem see the help section below.

Ship it

To browse or get ideas on applications people are running, community member @whazor created Kubesearch as a creative way to search Flux HelmReleases across Github and Gitlab.

About

My home k8s cluster GitOps repository.

Resources

License

Stars

Watchers

Forks