Last active
June 6, 2025 20:47
-
-
Save ngaffa/15d46c98dd82620c8120ddf7398d6dbd to your computer and use it in GitHub Desktop.
Cloud Init for K8s and Docker
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#cloud-config | |
package_update: true | |
package_upgrade: true | |
packages: | |
# Update the apt package index and install packages needed to use the Docker and Kubernetes apt repositories over HTTPS | |
- apt-transport-https | |
- ca-certificates | |
- curl | |
- gnupg | |
- lsb-release | |
# Let iptables see bridged traffic | |
# https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#letting-iptables-see-bridged-traffic | |
write_files: | |
- path: /etc/modules-load.d/k8s.conf | |
content: | | |
br_netfilter | |
- path: /etc/sysctl.d/k8s.conf | |
content: | | |
net.bridge.bridge-nf-call-ip6tables = 1 | |
net.bridge.bridge-nf-call-iptables = 1 | |
# create the docker group | |
groups: | |
- docker | |
# Add default auto created user to docker group | |
system_info: | |
default_user: | |
groups: [docker] | |
runcmd: | |
- modprobe br_netfilter # Load br_netfilter module. | |
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # Add Docker’s official GPG key | |
- curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg # Download the Google Cloud public signing key: | |
- echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # set up the stable repository | |
- echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list # Add the Kubernetes apt repository | |
- apt-get update -y # Update apt package index | |
- apt-get install -y docker-ce docker-ce-cli containerd.io kubelet kubeadm kubectl # Install Docker Engine, kubelet, kubeadm and kubectl | |
- apt-mark hold kubelet kubeadm kubectl # pin kubelet kubeadm kubectl version | |
- sysctl --system # Reload settings from all system configuration files to take iptables configuration |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment