目录
一、使用vagrant搭建3台虚拟机
二、给每台虚拟机设置网络
三、设置linux环境
四、所有节点安装docker、kubeadm、kubelet、kubectl
五、部署k8s集群
vagrant的使用以及搭建虚拟机:vagrant搭建虚拟机
以下步骤要在每台虚拟机中操做:
用xshell连接vagrant后,查看使用的默认网卡:
ip route show
看到使用的默认网卡是eth0,然后使用 ip addr 查看三台的eth0都是一样的ip。
接下来设置virtualBox的网卡。
1、在管理->全局设定->网络中添加一块网卡
2、在设置中->网络->网卡1中修改连结方式为 NAT网络 ,并刷新MAC地址
3、重新查看eth0的网络地址
k8s-master:
k8s-node1
k8s-node2
4、查看虚拟机之间网络是否互通,互相 ping , 并且 ping 一下百度
如果都能ping通,那么虚拟机的网卡就设置完毕。
eth0是后面k8s集群要默认使用的网卡。
1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2.关闭 selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久关闭
setenforce 0 # 临时关闭当前会话
3.关闭 swap
swapoff ‐a # 临时关闭
vim /etc/fstab # 永久关闭
#注释掉swap这行 相当于(sed -ri 's/.*swap.*/#&/' /etc/fstab)
# /swapfile none swap defaults 0 0
systemctl reboot #重启生效
free ‐m #查看下swap交换区是否都为0,如果都为0则swap关闭成功
4.添加主机名与ip对应关系
注意:这里设置的ip一定是默认网卡的ip
vi /etc/hosts
10.0.2.15 k8s-master
10.0.2.5 k8s-node1
10.0.2.6 k8s-node2
5.将桥接的IPv4流量传递到iptables
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效
6.设置时间同步(可选)
yum install ntpdate -y
ntpdate time.windows.com
kubernetes默认CRI(容器运行时)为docker,因此先安装docker
1、安装docker
(1)卸载之前安装的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-engine
(2)安装必须的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
(3)设置 docker repo 的 yum 位置
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
(4)安装 docker,以及docker-cli
sudo yum install -y docker-ce-18.09.0-3.el7.x86_64 docker-ce-cli-18.09.0-3.el7.x86_64 containerd.io
(5)配置阿里云docker镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://****.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
(6)启动 docker & 设置docker开机自启
systemctl enable docker
(7)添加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=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
(8)安装kubelet、kubeadm、kubectl
yum install -y kubelet-1.18.0-0.x86_64 \
kubeadm-1.18.0-0.x86_64 \
kubectl-1.18.0-0.x86_64
如果没有找到相应的版本:
使用yum search kubeadm --showduplicates
我们可以看到kubeadm的历史版本,这时候想要下载的名字,直接执行
yum -y install 对应的名字
(9)开机启动kubelet
systemctl enable kubelet
systemctl start kubelet
1、master节点初始化
在k8s-master机器上执行初始化操作(里面的第一个ip地址就是k8s-master机器的ip,改成 你自己机器的,后面两个ip网段不用动)
kubeadm init --apiserver-advertise-address=10.0.2.15 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
2、在k8s-master上执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3、在所有k8s node机器执行上图第三个红框里的命令
4、在k8s-master安装 Pod 网络插件
kube-flannel.yml
链接:https://pan.baidu.com/s/1y7yPAOmmdwkPD6UiP0-Tqw
提取码:9szr
kubectl apply -f kube-flannel.yml
5、在k8s-master机器执行查看节点命
kubectl get nodes
刚刚安装的三个k8s节点都已经准备就绪,大功告成!