安装过程

1,安装基本软件包

yum install wget net‐tools vim bash‐comp* ‐y

2,设置主机名,管理节点设置主机名为master

hostnamectl set-hostname master
su root

3,配置 Master 和 work 节点的域名

vim /etc/hosts

192.168.1.50 master
192.168.1.51 node1
192.168.1.52 node2

4,关闭 防火墙

systemctl stop firewalld
systemctl disable firewalld

5,关闭 SeLinux

setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

6,关闭 swap

swapoff -a
yes | cp /etc/fstab /etc/fstab_bak
cat /etc/fstab_bak |grep -v swap > /etc/fstab

7,配置Docker, K8S的阿里云yum源

cat >>/etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

yum clean all

yum repolist

8,安装并启动 docker

yum install -y docker-ce.x86_64 docker-ce-cli.x86_64 containerd.io.x86_64

mkdir /etc/docker

cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

9,编辑/usr/lib/systemd/system/docker.service

vi /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd
# Restart Docker
systemctl daemon-reload
systemctl enable docker
systemctl restart docker

此时查看 docker info,可以看到默认 Cgroup Driver为 systemd

卸载旧版本

yum remove -y kubelet kubeadm kubectl

安装kubelet、kubeadm、kubectl

yum install -y kubeadm-1.19.3-0 kubectl-1.19.3-0  kubelet-1.19.3-0

重启 docker,并启动 kubelet

systemctl enable kubelet && systemctl start kubelet

10,初始化Master 节点

将桥接的IPv4流量传递到iptables的链

echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables

vi /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

初始化主节点

kubeadm init --kubernetes-version=1.19.2 \
--apiserver-advertise-address=192.168.1.50 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

看到这一步表示已经成功了

三,Master节点安装Docker,kubeadm,kubelet,kubectl_docker

执行以下一下命令

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

记录下来,备用

kubeadm join 192.168.1.50:6443 --token 9uomuo.5trla2410rvc4yum \
    --discovery-token-ca-cert-hash sha256:e817908582b98d16e92dabecb1d413691676024a5a2e7ba04ed20bd354b0c7a8 

安装网络插件 Flannel

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

被墙了,网络不通

三,Master节点安装Docker,kubeadm,kubelet,kubectl_docker_02

手动下载  https://download.csdn.net/download/echizao1839/19418584

kubectl apply -f kube-flannel.yml

三,Master节点安装Docker,kubeadm,kubelet,kubectl_kubernetes_03

查看是否成功创建flannel网络

ifconfig |grep flannel
kubectl get po -n kube-system

三,Master节点安装Docker,kubeadm,kubelet,kubectl_docker_04

重置 kubeadm

kubeadm reset