准备虚拟机环境
VMWare WorkStation Pro下载:链接
CentOS7镜像(阿里云源):镜像链接
VM网络设置
- master节点IP: 172.16.0.3
- node01节点IP:172.16.0.4
- node02节点IP:172.16.0.5
- 子网掩码:255.255.0.0
- 网关:172.16.0.2
- DNS:114.114.114.114
设置虚拟网卡
首先打开顶栏编辑-虚拟网络编辑器改下VMnet8的NAT网卡
子网172.16.0.0,子网掩码255.255.0.0
创建master虚拟机
安装CentOS7
创建完安装系统,这里我选CentOS7镜像
挂载安装盘
保存,开机
过下开机引导
配置静态IP
配网好了就可以开始安装,设置root密码
安装完后关闭虚拟机
进入虚拟机设置里关掉光驱的安装镜像,开机
输入ip addr
看看IP对不对
安装docker
移除原来的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
设置yum为阿里云源
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
systemctl enable docker --now
配置加速
sudo mkdir -p /etc/docker # 创建文件夹
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker安装完成!
安装kubeadm
部署基础环境
# 将 SELinux 设置为 permissive 模式
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
#swap关闭
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
#允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
安装kubelet、kubeadm、kubectl 三大件
# 配置k8s下载地址
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=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
exclude=kubelet kubeadm kubectl
EOF
sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes
# 启动kubelet
sudo systemctl enable --now kubelet
拉取镜像
# 下载镜像
sudo tee ./images.sh <<-'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF
chmod +x ./images.sh && ./images.sh
初始化matser主节点
#所有机器添加master域名映射,以下IP地址需要修改为自己的
echo "172.16.0.3 cluster-endpoint" >> /etc/hosts # master节点 每个节点都需要执行,让每个节点知道master节点
#初始化主节点(只需在master节点运行)
kubeadm init \
--apiserver-advertise-address=172.16.0.3 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16
# 以下是各个命令的备注不需要执行
kubeadm init \
--apiserver-advertise-address=172.16.0.4 \ # master 节点ip
--control-plane-endpoint=cluster-endpoint \ # 域名值
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \ # 镜像仓库
--kubernetes-version v1.20.9 \ # k8s 版本
--service-cidr=10.96.0.0/16 \ # 网络范围 一般不用改 网络范围不重叠
--pod-network-cidr=192.168.0.0/16 # k8s 给pod分配网络ip的范围 一般不用改
#所有网络范围不重叠
我的运行结果,出现这个就说明master初始化成功了
根据上述运行结果的提示可以进行下一步加入node子节点的操作
版权属于:JiuXia2025
本文链接:https://blog.inekoxia.com/index.php/archives/518.html
转载时须注明出处及本声明