目录
主机硬件配置说明
| 主机名 | IP | 角色 | CPU | 内存 | 系统 |
|---|---|---|---|---|---|
| master01 | 223.193.36.152 | master,etcd | 8C | 32G | CentOS 7 |
| master02 | 223.193.36.155 | master,etcd | 8C | 32G | CentOS 7 |
| node01 | 223.193.36.179 | worker | 8C | 32G | CentOS 7 |
| node02 | 223.193.36.182 | worker | 8C | 32G | CentOS 7 |
| harbor | 223.193.36.117 | repository | 8C | 32G | CentOS 7 |
docker安装
卸载旧版本
# 1. 卸载之前安装的组件
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
设置存储库
# 1.安装yum-utils
sudo yum install -y yum-utils
# 2.设置稳定的存储库
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 下面是官网的, 上面使用阿里云的 国内比较快
# https://download.docker.com/linux/centos/docker-ce.repo
安装最新版本的Docker引擎和容器
# 1. 直接安装最新docker版本
sudo yum -y install docker-ce docker-ce-cli containerd.io
# 2. 安装完成后查看版本
docker -v
安装指定版本
# 如果想安装不同版本
# 1.列出可用版本
yum list docker-ce --showduplicates | sort -r
# 2.安装指定版本
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
如:
sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io
启动docker
# 启动docker
systemctl start docker
# 停止docker
systemctl stop docker
# 重启
systemctl restart docker
# 查看状态
systemctl status docker
# 设置开机自启动
systemctl enable docker
# 查看信息
docker info
# 查看帮助文档
docker --help
卸载docker(如需要)
# 1.卸载 Docker 引擎、CLI 和容器包
sudo yum remove docker-ce docker-ce-cli containerd.io
# 2.主机上的图像、容器、卷或自定义配置文件不会自动删除。要删除所有图像、容器和卷
sudo rm -rf /var/lib/docker
# 3.必须手动删除任何编辑的配置文件。
docker配置
# 给所有k8s主机配置docker
sudo nano /etc/docker/daemon.json
# 改为如下内容
{
"registry-mirrors": ["https://tuv7rqqq.mirror.aliyuncs.com"],
"insecure-registries": ["http://harbor.ifzzh.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
# 参数说明:
# "registry-mirrors": ["https://tuv7rqqq.mirror.aliyuncs.com"],
# "insecure-registries": ["http://harbor.xinjizhiwa.com"], #允许拉取自建仓库harbor仓库的镜像;
# "exec-opts": ["native.cgroupdriver=systemd"] #kubeadm去寻找的cgroup默认是systemd,而docker不配置的话,默认是cgroupfs,不配置这个,部署k8s时会报错;
# 重启docker服务
systemctl restart docker.service
k8s 节点 Linux 环境配置
关闭swap分区
# 查看swap
free -h
# 临时关闭swap分区
swapoff -a && sysctl -w vm.swappiness=0
# 永久关闭,把fstab中swap那一行注释掉
sed -ni '/^[^#]*swap/s@^@#@p' /etc/fstab
节点网卡硬件编号验证是否冲突
# 网卡编号验证
ifconfig eth0 |grep ether |awk '{print $2}'
# 硬件编号验证
cat /sys/class/dmi/id/product_uuid
节点配置允许iptables转发桥接流量
cat > /etc/modules-load.d/k8s.conf << EOF
br_netfilter
EOF
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
EOF
sysctl --system
关闭防火墙和SELinux
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭SELinux
setenforce 0
sed -i '7c SELINUX=disabled' /etc/selinux/config
kubeadm方式部署k8s
所有节点安装部署组件kubeadm
# 1. 配置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
EOF
# 2.查看安装源中的k8s都有什么版本?
yum -y list kubeadm --showduplicates | sort -r
# 3. yum安装组件
yum -y install kubeadm-1.23.17-0 kubelet-1.23.17-0 kubectl-1.23.17-0
# 4. 设置开机自启动
systemctl enable --now kubelet.service
# 5. 查看状态(此时启动失败,不用管,因为还没配置完成,配置完成后自动会启动)
systemctl status kubelet.service
初始化master节点
kubeadm init --kubernetes-version=v1.23.17 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.100.0.0/16 --service-cidr=10.200.0.0/16 --service-dns-domain=ifzzh.com
# 参数释义:
--pod-network-cidr=10.100.0.0/16 #pod的网段
--service-cidr=10.200.0.0/16 #service资源的网段
--service-dns-domain=ifzzh.com #service集群的dns解析名称