k8s搭建
准备三台centos7 1804以上的主机IP地址规划10.0.0.100 master10.0.0.101 node110.0.0.102 node2主机搭建主机配置:2核心 4G内存 50G硬盘1、系统安装的时候要选择基础服务器配置(可以省去很多包的安装)2、虚拟机需要能直接连接外网3、网络配置可以参考网络教程建议选择nat4、进制swap分区(可以选择自动分区、也可以选择手动分区,看个人喜好
准备三台centos7 1804以上的主机
IP地址规划
10.0.0.100 master
10.0.0.101 node1
10.0.0.102 node2
主机搭建
主机配置:2核心 4G内存 50G硬盘
1、系统安装的时候要选择基础服务器配置(可以省去很多包的安装)
2、虚拟机需要能直接连接外网
3、网络配置可以参考网络教程建议选择nat
4、进制swap分区(可以选择自动分区、也可以选择手动分区,看个人喜好)
进入系统以后可以用:
cat /etc/reahat-release 检查系统版本要求是1804版本以上
可以用ping www.baidu.com 检测是否有外网(如果没有可以看看dns是否配置)
配置网络可以参考:
linux网卡连接失败设备无法激活_m0_52526697的博客-CSDN博客
一、基本环境搭建
以下配置3个节点都需要配置
1、第一步我们需要配置主机清单
10.0.0.100 master
10.0.0.101 node1
10.0.0.102 node2
2、配置时间同步(因为我们搭建的是服务器集群,对时间配置会有一定要求,如果您是最小化安装需要自行安装时间服务,)
systemctl start chronyd
systemctl enable chronyd
最后用date命令查看三个节点时间是否进行同步
3、永久禁用防火墙跟selinux
# 1 关闭firewalld服务
systemctl stop firewalld
systemctl disable firewalld
#下面是禁用selinux首先进入下面这个文件
vim /etc/selinux/config
#修改这个命令
SELINUX=disabled
4、禁用swap分区(因为k8s默认是禁用swap分区的)
vim /etc/fstab
注释掉 /dev/mapper/centos-swap swap
5、修改linux的内核参数
#进入下面配置文件添加配置
vim /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
#退出文件
#重新加载配置
sysctl -p
#加载网桥过滤模块
modprobe br_netfilter
#查看网桥过滤是否成功
lsmod | grep br_netfilter
6、配置ipvs功能(k8s是基于service或者ipvs的,ipvs性能比较高,可以自行选择,我们就选择ipvs进行配置)
#安装服务
yum install ipset ipvsadmin -y
#创建一个可执行的脚本
cat <<EOF> /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
#对脚本赋予可执行权限
chmod +x /etc/sysconfig/modules/ipvs.modules
#执行脚本
/bin/bash /etc/sysconfig/modules/ipvs.modules
#最后查看脚本是否执行成功
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
7、完成以上步骤以后需要重启主机
reboot
二、安装docker与k8s组件的安装
A、安装docker
1、切换镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O
2、查看当前镜像源中支持的docker版本
yum list docker-ce --showduplicates
3、安装指定版本的docker,必须指定--setopt=obsoletes=0参数(指定版本安装)
yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y
4、添加一个配置文件
mkdir /etc/docker
cat <<EOF> /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"]
}
EOF
5、设置开机自启并启动docker
systemctl enable docker
systemctl start docker
B、安装k8s组件
1、k8s官方镜像在国外所以我们这个测试环境采用阿里源
#编写一个yum源文件
vim /etc/yum.repos.d/kubernetes.repo
#配置下面参数(注意格式)
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgchech=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
2、安装k8s需要的3个服务
yum install --setopt=obsoletes=0 kubeadm-1.17.4-0 kubelet-1.17.4-0 kubectl-1.17.4-0 -y
4、配置kubelet的cgroup
编辑配置文件/etc/sysconfig/kubelet(里面会有一行参数我们需要注释或者删除),配置下面的参数
vim /etc/sysconfig/kubelet
#增加下面两行参数
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"
5、设置k8s的开机自启
systemctl enable kubelet
三、下载k8s镜像、搭建k8s集群
A、下载k8s镜像
1、我们可以通过下面命令查看我们需要的镜像
kubeadm config images list
2、下载镜像(因为镜像在国外我们没有办法直接下载,所有我们使用间接的方式)
images=(
kube-apiserver:v1.17.4
kube-controller-manager:v1.17.4
kube-scheduler:v1.17.4
kube-proxy:v1.17.4
pause:3.1
etcd:3.4.3-0
coredns:1.6.5
)
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
B、我们配置我们的服务器集群
1、在master节点执行
#注意下面的10.0.0.100要根据自己的ip地址进行配置
kubeadm init \
--apiserver-advertise-address=10.0.0.100 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.17.4 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
创建必要的文件
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 10.0.0.100 --token ...
开头的token 我们需要把这个命令在两个node节点执行
2、我们可以用下面命令查看节点信息
在master执行
kubectl get nodes
这个时候我们的主机都是NotReady没有起来是因为我们没有配置网络的原因
3、配置kubectl的网络插件
在master执行
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
下载配置网络的yaml文件
4、重置kubeadmreset集群
#在两个node节点之外的节点进行操作
kubeadm reset
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig docker0 down
ip link delete cni0
ip link delete flannel.1
##重启kubelet
systemctl restart kubelet
##重启docker
systemctl restart docker
在master重启docker和kubelet
systemctl restart kubelet
systemctl restart docker
5、使用配置文件启动fannel
注意:执行个命令的时候需要跟我们上面下载那个文件在同一个目录下
kubectl apply -f kube-flannel.yml
6、我们使用下面命令重新生成token
kubeadm token create --print-join-command
生成的token需要在两个node节点执行
7、在主机点查看集群状态
在主节点执行
kubectl get nodes
这个时候你会发现你的服务器的状态变成了Ready
(那么就证明你的k8s集群搭建成功了)
更多推荐
所有评论(0)