一、部署规划
### --- 部署规划
~~~ centos7.x.server1: k8s-master IP:10.10.10.11
~~~ centos7.x.server2: k8s-node1 IP:10.10.10.12
~~~ centos7.x.server3: k8s-node2 IP:10.10.10.13
二、系统初始化
### --- 关闭防火墙
[root@server11 ~]# systemctl stop firewalld.service
[root@server11 ~]# systemctl disable firewalld.service
### --- 关闭selinux
[root@server11 ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config #永久
[root@server11 ~]# setenforce 0 #临时
### --- 关闭swap
[root@server11 ~]# swapoff -a #临时
[root@server11 ~]# sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
### --- 主机名
[root@server11 ~]# hostnamectl set-hostname k8s-master
[root@server12 ~]# hostnamectl set-hostname k8s-node1
[root@server13 ~]# hostnamectl set-hostname k8s-node2
### --- 在master添加hosts:
[root@k8s-master ~]# cat >> /etc/hosts << EFO
> 10.10.10.11 k8s-master
> 10.10.10.12 k8s-node1
> 10.10.10.13 k8s-node2
> EFO
### --- 将桥接的IPV4流量传递到iptables的链:
[root@k8s-master ~]# cat > /etc/sysctl.d/k8s.conf << EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
[root@k8s-node1 ~]# cat > /etc/sysctl.d/k8s.conf << EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
[root@k8s-node2 ~]# cat > /etc/sysctl.d/k8s.conf << EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
~~~ 生效
[root@k8s-master ~]# sysctl --system
[root@k8s-node1 ~]# sysctl --system
[root@k8s-node2 ~]# sysctl --system
### --- 时间同步
[root@k8s-master ~]# yum install -y ntpdate
[root@k8s-node1 ~]# yum install -y ntpdate
[root@k8s-node2 ~]# yum install -y ntpdate
[root@k8s-master ~]# ntpdate time.windows.com #设置当前时间和windows主机的时间一致
19 Feb 15:18:49 ntpdate[11137]: adjust time server 20.189.79.72 offset 0.069848 sec
[root@k8s-node1 ~]# ntpdate time.windows.com
19 Feb 15:18:53 ntpdate[10229]: adjust time server 20.189.79.72 offset 0.064745 sec
[root@k8s-node2 ~]# ntpdate time.windows.com
19 Feb 15:18:56 ntpdate[10286]: adjust time server 20.189.79.72 offset 0.070064 sec
三、所有节点安装Docker/kubeadm/kubelet:
### --- 所有节点安装Docker/kubeadm/kubelet:
~~~ Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。
### --- 安装Docker(三个节点均部署)
~~~ k8s-master部署
[root@k8s-master ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
[root@k8s-master ~]# yum install -y docker-ce-18.06.1.ce-3.el7
[root@k8s-master ~]# systemctl enable docker && systemctl start docker
[root@k8s-master ~]# docker --version
Docker version 18.06.1-ce, build e68fc7a
~~~ k8s-node1部署
[root@k8s-node1 ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
[root@k8s-node1 ~]# yum install -y docker-ce-18.06.1.ce-3.el7
[root@k8s-node1 ~]# systemctl enable docker && systemctl start docker
[root@k8s-node1 ~]# docker --version
Docker version 18.06.1-ce, build e68fc7a
~~~ k8s-node2部署
[root@k8s-node2 ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
[root@k8s-node2 ~]# yum install -y docker-ce-18.06.1.ce-3.el7
[root@k8s-node2 ~]# systemctl enable docker && systemctl start docker
[root@k8s-node2 ~]# docker --version
Docker version 18.06.1-ce, build e68fc7a
### --- 添加阿里云YUM软件源:设置仓库地址
[root@k8s-master ~]# cat > /etc/docker/daemon.json << EOF
> {
> "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
> }
> EOF
[root@k8s-master ~]# systemctl restart docker
[root@k8s-master ~]# docker info
Registry Mirrors:
https://b9pmyelo.mirror.aliyuncs.com/
[root@k8s-node1 ~]# cat > /etc/docker/daemon.json << EOF
> {
> "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
> }
> EOF
[root@k8s-node1 ~]# systemctl restart docker
[root@k8s-node1 ~]# docker info
Registry Mirrors:
https://b9pmyelo.mirror.aliyuncs.com/
[root@k8s-node2 ~]# cat > /etc/docker/daemon.json << EOF
> {
> "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
> }
> EOF
[root@k8s-node2 ~]# systemctl restart docker
[root@k8s-node2 ~]# docker info
Registry Mirrors:
https://b9pmyelo.mirror.aliyuncs.com/
### --- 添加阿里云YUM软件源:k8s软件源地址
[root@k8s-master ~]# cat > /etc/yum.repos.d/kubernetes.repo << EOF
> [kubernetes]
> make=Kubernetes
> baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
> enabled=1
> gpgcheck=0
> repo_gpgcheck=0
> gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
> EOF
[root@k8s-node1 ~]# cat > /etc/yum.repos.d/kubernetes.repo << EOF
> [kubernetes]
> make=Kubernetes
> baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
> enabled=1
> gpgcheck=0
> repo_gpgcheck=0
> gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
> EOF
### --- 安装kubeadm,kubelet和kubectl
[root@k8s-master ~]# yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
Installed:
kubeadm.x86_64 0:1.18.0-0 kubectl.x86_64 0:1.18.0-0 kubelet.x86_64 0:1.18.0-0
[root@k8s-master ~]# systemctl enable kubelet
[root@k8s-node1 ~]# yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
Installed:
kubeadm.x86_64 0:1.18.0-0 kubectl.x86_64 0:1.18.0-0 kubelet.x86_64 0:1.18.0-0
[root@k8s-node1 ~]# systemctl enable kubelet
[root@k8s-node2 ~]# yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
Installed:
kubeadm.x86_64 0:1.18.0-0 kubectl.x86_64 0:1.18.0-0 kubelet.x86_64 0:1.18.0-0
[root@k8s-node2 ~]# systemctl enable kubelet