环境:Centos7
配置:cpu2核、内存2G、3台虚拟机
一、
1、
vim /etc/hostname
master/node1/node2 (3台虚拟机都做) #修改主机名
2、
vi /etc/hosts
192.168.118.100 master
192.168.118.101 node1
192.168.118.102 node2scp /etc/hosts node1:/etc
scp /etc/hosts node1:/etc
3、
yum install conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git #下载一些需要的包
swapoff -a >>/dev/null 2>&1
sed -i 's/.*swap.*/#&/' /etc/fstab #关闭swap分区
systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat
iptables -P FORWARD ACCEPT #关闭防火墙,设置默认转发策略
4、
调整系统TimeZone(时区)为上海
timedatectl set-timezone Asia/Shanghai
将当前的UTC时间写入硬件时钟
timedatectl set-local-rtc 0
hwclock -w
更新服务时间
ntpdate ntp1.aliyun.com
重启系统时间服务
systemctl restart rsyslog
systemctl restart crond
5、
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 777 /etc/sysconfig/modules/ipvs.modules && bash #kube-proxy设置开启ipvs的前置条件
以上操作3台虚拟机都操作
二、
1、安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2 #安装依赖
yum-config-manager \
--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #导入阿里云的docker-ce仓库
yum update -y && yum install -y docker-ce #更新系统并安装docker-ce
systemctl start docker
systemctl enable docker # 开启docker并设置开机自启
2、安装Kubeadm
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 777 /etc/sysconfig/modules/ipvs.modules && bash #kube-proxy设置开启ipvs的前置条件
yum install -y kubelet-1.18.4-0 kubeadm-1.18.4-0 kubectl-1.18.4-0 #安装Kubeadm(初始化工具)、kubectl(命令管理工具)、kubelet(与docker的cri交互创建容器)
安装1.18.4版本
systemctl enable kubelet.service #k8s设置开机自启
vim image.sh
# more image.sh #以下为image.sh文件的内容,如没有该文件,可以在当前文件下创建文件
#!/bin/bash
url=registry.cn-hangzhou.aliyuncs.com/google_containers #阿里云镜像仓库地址,可以按需修改
version=v1.18.4 #安装的kubernetes的版本(可以按需修改)
images=(`kubeadm config images list --kubernetes-version=$version|awk -F '/' '{print $2}'`)
for imagename in ${images[@]} ; do
docker pull $url/$imagename
docker tag $url/$imagename k8s.gcr.io/$imagename
docker rmi -f $url/$imagename
done #写一个下载镜像的脚本
chmod a+x image.sh
scp image.sh node1:/root
scp image.sh node2:/root
./image.sh #执行下载镜像
以上操作3台虚拟机都操作
三·、
1、初始化节点(master主机)
kubeadm init --kubernetes-version=v1.18.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap #黄色部分按照自己安装的版本而定
出现以下界面表示初始化成功,并复制红框部分内容
2、安装网络插件(master节点)
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/configwget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml #可能要多执行几次,前几次可能会失败
kubectl apply -f kube-flannel.yml
3、node节点加入
kubeadm join 192.168.118.100:6443 --token ekiax2.bkgca6uv7zfgk1hg \
--discovery-token-ca-cert-hash sha256:da8febeb21b9ad8b3afc60c90bfa846f45e617c216d055a567b86f998954dd5c #上面红框部分的内容在node节点执行
kubectl get pod -n kube-system # 查看节点是否加入成功