Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save AlexZ005/649ce95ee5d0bcc066a35d2373fdae3a to your computer and use it in GitHub Desktop.

Select an option

Save AlexZ005/649ce95ee5d0bcc066a35d2373fdae3a to your computer and use it in GitHub Desktop.
update Kubernetes version to 1.33
Setting up a VirtualBox Machine and Preparing a Kubernetes Cluster
Step 1: Download OVA Image
Download the Ubuntu 25.04 Server Cloud image from:
https://cloud-images.ubuntu.com/releases/plucky/release/ubuntu-25.04-server-cloudimg-amd64.ova
Step 2: Import to VirtualBox
* File > Import Appliance
* Set:
CPU: 4
RAM: 4096 GB
* Increase disk space
Step 3: Configure Networking and SSH
Enter GRUB holding Shift, select advanced/recovery mode
Change root password or add public key using the following command (use KeePass for Auto-Type):
apt-get remove cloud-init -y && cd /etc/netplan && echo -e "network:\n version: 2\n renderer: networkd\n ethernets:\n enp0s3:\n dhcp4: true" > 01-netcfg.yaml && ssh-keygen -A && mkdir ~/.ssh && echo "<ssh-key>" > ~/.ssh/authorized_keys && echo "IP Address: \4" >> /etc/issue && reboot
Step 4: Adjust Disk Size
Run fdisk /dev/sda and type the following commands, hitting Enter after each comma:
d,1,n,1,p,enter,enter,N,w
resize2fs /dev/sda1
Step 5: Create master.sh Script
Run the following command to create master.sh:
cat << EOF > master.sh
swapoff -a
sudo apt-get update && sudo apt-get upgrade -y
sudo apt install curl -y
sudo apt-get install -y docker.io
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
# Setting 1.33 version
sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubeadm kubelet kubectl
sudo apt-mark hold kubelet kubeadm kubectl
sudo kubeadm init --pod-network-cidr 192.168.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# or under root
# export KUBECONFIG=/etc/kubernetes/admin.conf
# kubeadm token create --print-join-command
EOF
Step 6: Execute master.sh
Run ./master.sh to create the Kubernetes cluster.
Step 7: Install Network CNI , for example Calico
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
kubectl get nodes #the node should become ready
#Notes:
# The version will be picked automatically from the repo (as of writing: v1.33.2)
# Alternatively specific version could be set as following if present in repository:
# sudo apt-get install -y kubeadm=1.33.2-1.1 kubelet=1.33.2-1.1 kubectl=1.33.2-1.1
# sudo kubeadm init --kubernetes-version 1.33.2 --pod-network-cidr 192.168.0.0/16
# kubectl taint nodes --all node-role.kubernetes.io/control-plane-
@AlexZ005
Copy link
Author

AlexZ005 commented Aug 9, 2024

The OVA file used in this tutorial is downloaded from the Ubuntu store, which provides various versions of Ubuntu images. The specific version used here (Ubuntu 20.04 Server Cloud) was chosen to comply with Agones' suggestions for compatibility. Similarly, the Kubernetes version (1.27) has been selected based on Agones' (1.37.0) recommendations.

@AlexZ005
Copy link
Author

Agones v1.50.0 now officially supports Kubernetes versions 1.31, 1.32, and 1.33.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment