K8s setup with Kubeadm & ArgoCD
sudo mkdir /etc/containerd
sudo vim /etc/containerd/config.toml[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
BinaryName = ""
CriuImagePath = ""
CriuPath = ""
CriuWorkPath = ""
IoGid = 0
IoUid = 0
NoNewKeyring = false
NoPivotRoot = false
Root = ""
ShimCgroup = ""
SystemdCgroup = true- https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
- We use containerd, need to enable CRI (Docker installation disables this, delete /etc/containerd/config.toml file)
- Install kubeadm, kubectl, kubelet
- https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
TODO: UPDATE IP ADDRESS!!!
Grep repo for IP, exists in couple of config files.
sudo kubeadm init \
--skip-phases=addon/kube-proxy \
--apiserver-advertise-address="192.168.86.73" \
--apiserver-cert-extra-sans="kube.aarnihalinen.fi,87.92.163.107"We are running single-node cluster => need to untaint the control-plane
kubectl taint nodes --all node-role.kubernetes.io/control-plane-TODO: New setup with proxmox with 2 nodes bootstrapped with talos https://docs.siderolabs.com/talos/v1.11/platform-specific-installations/virtualized-platforms/proxmox
Update README, figure out a way to commit talos configuration to repo
Install argocd CLI
brew install argocdInstall ArgoCD with Kustomize
kubectl kustomize argocd | kubectl apply -f -
kubectl apply -f apps/templates/argo-projects.yml
kubectl apply -f app-of-apps.ymlPort forward to the ArgoCD server
kubectl port-forward svc/argocd-server -n argocd 8080:443Open ArgoCD UI with
argocd admin dashboard -n argocdand login (set new password as well)
argocd admin initial-password -n argocd
argocd login localhost:8080
argocd account update-passwordArgo should install all other apps (they are included in the app-of-apps).
Cilium and cert-manager are by default multi-node => scale down deployments to 1. Ingress ports might need to be edited to service, seems like a bug.