Skip to content

Instantly share code, notes, and snippets.

@vaayne
Last active January 16, 2020 05:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vaayne/4293370532a308fd01cfa59417e9d01e to your computer and use it in GitHub Desktop.
Save vaayne/4293370532a308fd01cfa59417e9d01e to your computer and use it in GitHub Desktop.
Kubeadm master init
#!/bin/sh
echo "Init env"
curl https://gist.githubusercontent.com/Vaayne/043226626c1e7987613b9b5e7ea7bbaa/raw/b64f6c1c47e7f7aa2ec25431583259eea8bcde86/kubeadm_init_install.sh -o install.sh
sh install.sh
echo "Kubeadm init"
kubeadm init
echo "make kubectl usable"
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
echo "Install pod network add-on"
kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml
# Disable Control plane node isolation
kubectl taint nodes --all node-role.kubernetes.io/master-
# Install Helm
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh
chmod 700 get_helm.sh
./get_helm.sh
helm init
# add helm stable repo
helm repo add stable https://kubernetes-charts.storage.googleapis.com
helm repo update
# Install nginx ingress on master node
helm install nginx-ingress stable/nginx-ingress \
-n kube-system \
--set controller.hostNetwork=true \
--set controller.nodeSelector."node-role\\.kubernetes\\.io/master"=""
# Install cert manager by helm
kubectl create namespace cert-manager
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v0.12.0/cert-manager.yaml
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install \
cert-manager \
--namespace cert-manager \
--version v0.12.0 \
jetstack/cert-manager
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment