Upgrade Kubernetes components(Kurl.sh)

In the ever-evolving landscape of Kubernetes, keeping your cluster components up-to-date is crucial for security, stability, and performance. Regular updates ensure that you have access to the latest features, bug fixes, and security patches. However, updating Kubernetes cluster components can be a complex task that demands careful planning and execution. Here are the steps to navigate the process smoothly:

 

Server preparation and downtime

Carrying out system updates and rebooting when necessary is essential for maintaining the security, stability, and performance of your server. Apply any pending updates through your system’s package manager and reboot the server. Schedule about at least two hours of downtime.

Backup your server

Take the time to back up your entire server, including configuration files, application data, and any custom resources(PostgreSQL Database). This ensures that you can roll back to a previous state in case anything goes wrong during the update process.

Download the latest package

Create a new directory on the server:

  • mkdir -p 3yd_v_23_10_0 && cd 3yd_v_23_10_0

Download the archive package from the link provided by the 3YD Technical Support team:

  • curl -o 3yd_v_23_10_0.tgz “<download_ink>“

Extract the package

  • tar xvf 3yd_v_23_10_0.tgz

Copy the values.yaml and pv.yaml files from the previous version directory in the new one e.g

  • cp /path-to/3yd_v_23_4_0/values.yaml /path-to/3yd_v_23_10_0/values.yaml

  • cp /path-to/3yd_v_23_4_0/pv.yaml /path-to/3yd_v_23_10_0/pv.yaml

Uninstall 3YD app and reset the Kubernetes system

Stop the 3YD application stack

./helm uninstall order-management

Stop and reset the Kubernetes stack

kubeadm reset

The reset process does not clean CNI configuration. To do so, you must remove /etc/cni/net.d

rm -rf /etc/cni/net.d

Clean up the docker system to free up unused space.

docker system prune -a

Run the install.sh script

./install.sh $DOMAIN $UPLOADS_DIR; exec bash -l

Confirm the Kubernetes stack is updated and the 3YD app is running

kubectl get node -o wide

kubectl get pods -A