1)参考官网安装docker,国内yum或dnf安装docker需要把repo改成阿里云的,但是阿里云地址的repo里配置的下载地址是错误的,需要自己手动修改后放在/etc/yum.repos.d/里。同理安装kubeadm、kubectl、kubelet三个工具。
配置docker:/etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://o3v0hgo4.mirror.aliyuncs.com"]
}
部署k8s集群,主要记录官网没有的命令:
关闭防火墙:systemctl stop firewalld&&systemctl disable firewalld
关闭 swap 分区:
# 关闭Swap,机器重启后不生效
swapoff -a
# 修改/etc/fstab永久关闭Swap
cp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')
# Redhat
sed -i "s/\/dev\/mapper\/rhel-swap/\#\/dev\/mapper\/rhel-swap/g" /etc/fstab
# CentOS
sed -i "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab
# 修改后重新挂载全部挂载点
mount -a
# 查看Swap
free -m
cat /proc/swaps
设置hostname,为了方便记忆和区分:hostnamectl set-hostname k8s-master、k8s-node01、k8s-node02
设置/etc/hosts信息:cat <<EOF | sudo tee /etc/hosts
创建集群:
kubeadm init \
--apiserver-advertise-address=192.168.50.115 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
创建加入集群的命令:
kubeadm token create --print-join-command
**把docker的Cgroup改为systemd后,启动kubelet失败,原因是kubelet的Cgroup为cgroupfs,两者不匹配
journalctl -xefu kubelet 可查看systemd 日志查看具体报错信息
安装flannel:wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
执行:kubectl apply -f kube-flannel.yml
执行完后会因无法科学上网镜像拉取失败,需要手动下载导入镜像文件到docker中
下载地址:https://github.com/flannel-io/flannel/releases
# 载入docker本地仓库
docker load < flanneld-v0.13.1-rc2-amd64.docker
# 更改tag,与文件kube-flannel.yml保持一致
docker tag quay.io/coreos/flannel:v0.13.1-rc2-amd64 quay.io/coreos/flannel:v0.13.1-rc2
# 删除原始镜像
docker image rm quay.io/coreos/flannel:v0.13.1-rc2-amd64
安装dashboard:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml