为了以后能够快速部署k8s集群,按集群部署的先决条件提前做好初始化配置,并制作成虚拟机模板,便于以后有需要就可以直接从这个模板克隆(建议链接克隆)虚拟机出来部署master、node、网络插件等。
-
确保每个节点上MAC地址的唯一性
vmware workstation虚拟机设置中,网卡的高级选项里可重新生成mac地址。
-
确保product_uuid的唯一性 查看product_uuid
cat /sys/class/dmi/id/product_uuid
vmware workstation中链接克隆后,会自动更新product_uuid。
-
放通所需端口
使用的Pod网络插件也可能需要开启某些特定端口,由于各个Pod网络插件的功能都有所不同,可参阅他们各自文档中对端口的要求。
如果制作的模板未启用防火墙,就无需提前配置防火墙策略,忽略这个步骤。
-
控制节点
协议 | 方向 | 端口范围 | 目的 | 使用者 |
---|---|---|---|---|
TCP | 入站 | 6443 | Kubernetes API server | 所有 |
TCP | 入站 | 2379-2380 | etcd server client API | kube-apiserver, etcd |
TCP | 入站 | 10250 | Kubelet API | 自身, 控制面 |
TCP | 入站 | 10259 | kube-scheduler | 自身 |
TCP | 入站 | 10257 | kube-controller-manager | 自身 |
etcd 的端口也列举在控制节点部分,但也可以在外部自建etcd集群或者自定义端口。
-
工作节点
协议 | 方向 | 端口范围 | 目的 | 使用者 | |||
---|---|---|---|---|---|---|---|
TCP | 入站 | 10250 | Kubelet API | 自身, 控制面 | |||
TCP | 入站 | 30000-32767 | NodePort Services† | 所有 |
所有默认端口都可以重新配置。当使用自定义的端口时,需要打开这些端口来代替这里提到的默认端口。
-
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
-
关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
-
禁止swap分区
sed -ri 's/.*swap.*/#&/' /etc/fstab
-
将桥接的IPv4流量传递到iptables链
# 将桥接的IPv4流量传递到iptables链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 生效
sysctl --system
-
同步时间
# 同步阿里云时间
ntpdate ntp1.aliyun.com
# 开机同步
chmod 755 /etc/rc.d/rc.local
echo "ntpdate ntp1.aliyun.com" >> /etc/rc.local
# 或
echo "ntp1.aliyun.com" > /etc/ntp/step-tickers
-
安装Docker
#查看有哪些版本
yum list docker-ce --showduplicates | sort -r
# 不指定版本则安装最新版本
yum install docker-ce -y
# 启动
systemctl enable docker
systemcctl start docker
# 指向阿里云镜像仓库
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
# 重启docker
systemctl restart docker
-
安装kubeadm、kubelet和kubectl
# 添加阿里云的k8s 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
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 查看当前最新版本
[root@localhost ~]# yum list kubeadm kubelet kubectl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Available Packages
kubeadm.x86_64 1.25.3-0 kubernetes
kubectl.x86_64 1.25.3-0 kubernetes
kubelet.x86_64 1.25.3-0 kubernetes
# 不指定版本则安装最新
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
到此为止,一个通用的模板就制作好了,以后有需要就可以直接从这个模板克隆(建议链接克隆)虚拟机出来部署master、node、网络插件等。
原文始发于微信公众号(不背锅运维):制作一个通用的虚拟机模板方便搭建k8s集群
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/57546.html