diff --git a/k8s-cluster/README.md b/k8s-cluster/README.md new file mode 100644 index 0000000..644fbca --- /dev/null +++ b/k8s-cluster/README.md @@ -0,0 +1,68 @@ +https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ + +- make sure that swap is disabled + +# containerd runtime + +https://github.com/containerd/containerd/blob/main/docs/getting-started.md + +```sh +# containerd +CRD_VERSION="1.7.0" + +curl -L "https://github.com/containerd/containerd/releases/download/v$VERSION/containerd-$VERSION-linux-amd64.tar.gz" -o "containerd-$VERSION-linux-amd64.tar.gz" +sudo tar Cxzvf /usr/local "containerd-$CRD_VERSION-linux-amd64.tar.gz" +sudo mkdir -p /usr/local/lib/systemd/system +sudo curl https://raw.githubusercontent.com/containerd/containerd/main/containerd.service -o /usr/local/lib/systemd/system/containerd.service +sudo systemctl daemon-reload +sudo systemctl enable --now containerd +``` + +```sh +# runc +RUNC_VERSION="1.1.4" + +curl -L "https://github.com/opencontainers/runc/releases/download/v$RUNC_VERSION/runc.amd64" -o runc.amd64 +sudo install -m 755 runc.amd64 /usr/local/sbin/runc +``` + +```sh +# cni plugin +CNIP_VERSION="1.2.0" + +curl -L "https://github.com/containernetworking/plugins/releases/download/v$CNIP_VERSION/cni-plugins-linux-amd64-v$CNIP_VERSION.tgz" -o "cni-plugins-linux-amd64-v$CNIP_VERSION.tgz" +sudo mkdir -p /opt/cni/bin +sudo tar Cxzvf /opt/cni/bin "cni-plugins-linux-amd64-v$CNIP_VERSION.tgz" +``` + +```sh +mkdir -p /etc/containerd +sudo bash -c 'containerd config default > /etc/containerd/config.toml' +``` + +Set to true in `/etc/containerd/config.toml` + +```toml +[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] + ... + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] + SystemdCgroup = true +``` + +```sh +sudo systemctl restart containerd +``` + + +# set it up + +``` +sudo kubeadm init --control-plane-endpoint=k8s-control.nilstrieb.dev --pod-network-cidr=192.168.0.0/16 + + +kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/tigera-operator.yaml +``` + +# networking + +[callico](https://docs.tigera.io/calico) \ No newline at end of file diff --git a/k8s-cluster/custom-resources.yaml b/k8s-cluster/custom-resources.yaml new file mode 100644 index 0000000..1d2e08d --- /dev/null +++ b/k8s-cluster/custom-resources.yaml @@ -0,0 +1,27 @@ +# This section includes base Calico installation configuration. +# For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.Installation +apiVersion: operator.tigera.io/v1 +kind: Installation +metadata: + name: default +spec: + # Configures Calico networking. + calicoNetwork: + # Note: The ipPools section cannot be modified post-install. + ipPools: + - blockSize: 26 + cidr: 192.168.0.0/16 + encapsulation: VXLANCrossSubnet + natOutgoing: Enabled + nodeSelector: all() + +--- + +# This section configures the Calico API server. +# For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.APIServer +apiVersion: operator.tigera.io/v1 +kind: APIServer +metadata: + name: default +spec: {} + diff --git a/k8s-cluster/kubelet.yaml b/k8s-cluster/kubelet.yaml new file mode 100644 index 0000000..cab4849 --- /dev/null +++ b/k8s-cluster/kubelet.yaml @@ -0,0 +1,3 @@ +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +cgroupDriver: systemd