Vagrant搭建k8s集群

目录

一、使用vagrant搭建3台虚拟机

二、给每台虚拟机设置网络

三、设置linux环境

四、所有节点安装docker、kubeadm、kubelet、kubectl

五、部署k8s集群


一、使用vagrant搭建3台虚拟机

vagrant的使用以及搭建虚拟机:vagrant搭建虚拟机

二、给每台虚拟机设置网络

以下步骤要在每台虚拟机中操做:

用xshell连接vagrant后,查看使用的默认网卡:

ip route show

看到使用的默认网卡是eth0,然后使用 ip addr 查看三台的eth0都是一样的ip。

接下来设置virtualBox的网卡。

1、在管理->全局设定->网络中添加一块网卡

Vagrant搭建k8s集群_第1张图片

 2、在设置中->网络->网卡1中修改连结方式为 NAT网络 ,并刷新MAC地址

Vagrant搭建k8s集群_第2张图片

3、重新查看eth0的网络地址

k8s-master:

Vagrant搭建k8s集群_第3张图片

k8s-node1

 Vagrant搭建k8s集群_第4张图片

k8s-node2

Vagrant搭建k8s集群_第5张图片 现在每台的eth0地址都不一样了。

4、查看虚拟机之间网络是否互通,互相 ping , 并且 ping 一下百度

Vagrant搭建k8s集群_第6张图片

 如果都能ping通,那么虚拟机的网卡就设置完毕。

eth0是后面k8s集群要默认使用的网卡。

三、设置linux环境

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

四、所有节点安装docker、kubeadm、kubelet、kubectl

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

五、部署k8s集群

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

Vagrant搭建k8s集群_第7张图片

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机器执行上图第三个红框里的命令

Vagrant搭建k8s集群_第8张图片

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节点都已经准备就绪,大功告成!

你可能感兴趣的:(k8s,k8s)