1. Yum config
Use a network yum mirror for fast speed, you may want to look at
How to build a yum mirror
How to bulld a local yum
mv /etc/yum.repos.d/*.repo /tmp/
sudo vi /etc/yum.repos.d/remote.repo
[remote]
name=RHEL Apache
baseurl=http://192.168.126.143
enabled=1
gpgcheck=0
2. Evirenment
kube-env.sh init installtion env
#!/bin/bash
rm -f /root/.ssh/id_rsa
ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa -q
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
setenforce 0
sed -ri 's/.*swap.*/#&/' /etc/fstab
swapoff -a
sysctl -p
firewall-cmd --permanent --add-port=6443/tcp
firewall-cmd --permanent --add-port=2379-2380/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10251/tcp
firewall-cmd --permanent --add-port=10252/tcp
firewall-cmd --permanent --add-port=10255/tcp
firewall-cmd --reload
modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
reboot
3.Installation
3.1 Docker
3.1.1 docker install
sudo yum install docker-ce-19.03.14-3.el7 docker-ce-cli-19.03.14-3.el7 containerd.io-1.3.9-3.1.el7 -y
sudo systemctl enable docker
sudo systemctl start docker
systemctl enable docker
systemctl start docker
docker --version
3.1.2 cggroup systemd for docker
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
reboot
3.2 Kubernetes
3.2.1 k8s images
kubeadm config images list
images=(
kube-apiserver:v1.20.1
kube-controller-manager:v1.20.1
kube-scheduler:v1.20.1
kube-proxy:v1.20.1
pause:3.2
etcd:3.4.13-0
coredns:1.7.0
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done
rm -rf /etc/kubernetes/manifests
rm -f /etc/kubernetes/kubelet.conf
rm -f /etc/kubernetes/pki/ca.crt
4.2.2 hostname
vi /etc/hosts
192.168.126.145 kube-master
192.168.126.146 kube-node1
192.168.126.147 kube-node2
4.2.2 k8s install
dnf install kubeadm -y
systemctl enable kubelet
systemctl start kubelet
kubeadm init --image-repository=registry.ourdark.org --pod-network-cidr=10.244.0.0/16
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a 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
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.126.145:6443 --token rz8qnn.qu17hu8zcs7suwry \
--discovery-token-ca-cert-hash sha256:b8a242360e5bbb423819dd700e7776f0cf3700175ea5c7157c7d788f22e9494c
4.3 Plugin
4.3.1 network
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
4.3.2 external access
iptables -P FORWARD ACCEPT
4.3.3 commands
# Remove all exited docker
docker rm $(docker ps -q -f status=exited)