Skip to content

Instantly share code, notes, and snippets.

@bells17
Last active January 15, 2020 02:46
Show Gist options
  • Save bells17/3f00e5ca42e54845da0076b35ff9235f to your computer and use it in GitHub Desktop.
Save bells17/3f00e5ca42e54845da0076b35ff9235f to your computer and use it in GitHub Desktop.
containerd-k8s
# containerd
cat > /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
# Setup required sysctl params, these persist across reboots.
cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sysctl --system
# Install containerd
## Set up the repository
### Install required packages
yum install -y yum-utils device-mapper-persistent-data lvm2
### Add docker repository
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
## Install containerd
yum -y update && yum -y install containerd.io
# Configure containerd
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
# Restart containerd
systemctl restart containerd
# kubelet
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
# Set SELinux in permissive mode (effectively disabling it)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
# crate cluster
kubeadm init --pod-network-cidr=192.168.0.0/16 --cri-socket=/run/containerd/containerd.sock
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# deploy Calico
kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
[root@containerd-k8s ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
containerd-k8s Ready master 83s v1.17.1
[root@containerd-k8s ~]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-5c45f5bd9f-j4wks 1/1 Running 0 55s
calico-node-s2s98 1/1 Running 0 54s
coredns-6955765f44-dfdww 1/1 Running 0 72s
coredns-6955765f44-rjm7p 1/1 Running 0 72s
etcd-containerd-k8s 1/1 Running 0 68s
kube-apiserver-containerd-k8s 1/1 Running 0 68s
kube-controller-manager-containerd-k8s 1/1 Running 0 68s
kube-proxy-chztk 1/1 Running 0 72s
kube-scheduler-containerd-k8s 1/1 Running 0 68s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment