Last active
March 29, 2021 06:42
-
-
Save qzchenwl/86c582e178ea15fd307427dd027b5a0d to your computer and use it in GitHub Desktop.
k8s-master on centos7
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
# 0. SYSTEM INFO & CLUSTER ARCH | |
# CentOS 7 | |
# | |
# +------------+ +-----------+ | |
# | k8s-master |>192.168.99.20 -- 192.168.99.21<| k8s-node1 | | |
# +------------+ +-----------+ | |
# v v | |
# internet internet | |
# | |
# /etc/hosts | |
# 192.168.99.20 k8s-master | |
# 192.168.99.21 k8s-node1 | |
# | |
# 1. INSTALL DOCKER | |
# refer: | |
# - [official-doc](https://kubernetes.io/docs/setup/cri/#docker) | |
# - [repo-mirrors](https://www.jianshu.com/p/ad3c712e1d95) | |
# - [registry-mirrors](https://blog.csdn.net/u010316188/article/details/79865451) | |
# add repo | |
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo | |
yum makecache | |
# install the *right* version | |
yum install docker-ce-18.06.1.ce -y | |
# config docker | |
mkdir /etc/docker | |
cat > /etc/docker/daemon.json <<EOF | |
{ | |
"exec-opts": ["native.cgroupdriver=systemd"], | |
"log-driver": "json-file", | |
"log-opts": { | |
"max-size": "100m" | |
}, | |
"storage-driver": "overlay2", | |
"storage-opts": [ | |
"overlay2.override_kernel_check=true" | |
], | |
"registry-mirrors": ["https://registry.docker-cn.com"] | |
} | |
EOF | |
mkdir -p /etc/systemd/system/docker.service.d | |
# restart docker | |
systemctl daemon-reload | |
systemctl restart docker | |
systemctl enable docker | |
# check docker | |
docker run hello-world | |
# 2. INSTALL KUBEADM | |
# refer: | |
# - [official-doc](https://kubernetes.io/docs/setup/independent/install-kubeadm/) | |
# - [repo-mirrors](https://www.jianshu.com/p/e43f5e848da1) | |
# config repo | |
cat <<EOF > /etc/yum.repos.d/kubernetes.repo | |
[kubernetes] | |
name=Kubernetes | |
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 | |
enabled=1 | |
gpgcheck=1 | |
repo_gpgcheck=1 | |
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg | |
exclude=kube* | |
EOF | |
# disable SELinux | |
setenforce 0 | |
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config | |
# install | |
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes | |
# start | |
systemctl enable kubelet && systemctl start kubelet | |
# network issue | |
cat <<EOF > /etc/sysctl.d/k8s.conf | |
net.bridge.bridge-nf-call-ip6tables = 1 | |
net.bridge.bridge-nf-call-iptables = 1 | |
EOF | |
sysctl --system | |
# 3. INIT KUBERNETES | |
# refer: | |
# - [official-doc](https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/) | |
# - [init-options-ip](https://www.jianshu.com/p/e43f5e848da1) | |
# init | |
kubeadm init --pod-network-cidr=192.168.99.0/24 --apiserver-advertise-address=192.168.99.20 | |
# use weave addon | |
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" | |
####### su <regular-user> ####### | |
mkdir -p $HOME/.kube | |
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config | |
sudo chown $(id -u):$(id -g) $HOME/.kube/config | |
kubectl get nodes | |
kubectl get pods --all-namespaces | |
####### ssh k8s-node1 ######### | |
# repeat until kubeadm init (not include) | |
kubeadm join 192.168.99.20:6443 --token gijxs5.w049ky73l5u8rbcm --discovery-token-ca-cert-hash sha256:293e4d09c2c1f580a4ec469443f70305bf0a7957bdc1cfaa933f78fd838d93bc | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment