在Debian上部署Kubernetes(K8s)时,安全设置是非常重要的。以下是一些关键的安全配置步骤:
节点唯一性
- 确保每个节点的MAC地址和
product_uuid
是唯一的。 - 使用
ip link
或ifconfig -a
检查product_uuid
。
主机名重命名
- 设置机器名称以便在集群中辨识。
- 使用
sudo hostnamectl set-hostname master01
命令临时设置主机名,并使用sudo tee /etc/hostname
永久保存。
关闭swap
- 临时关闭swap:
sudo swapoff -a
。 - 永久关闭swap:编辑
/etc/fstab
文件,添加noauto
选项,例如:UUID=f96e71e3-a4b7-4dbb-9576-9ef9ae498717 none swap defaults,noauto 0 0
。
防火墙配置
- 安装管理工具:
sudo apt install ufw
。 - 启动防火墙:
sudo ufw enable
。 - 设置控制平面的端口,例如:
- Kubernetes API服务器:
sudo ufw allow 6443
。 - etcd服务器客户端API:
sudo ufw allow 2379:2380/tcp
。 - Kubelet API:
sudo ufw allow 10250
。 - kube-scheduler、kube-controller-manager:
sudo ufw allow 10251:10252
。 - NodePort服务:
sudo ufw allow 30000:32767/tcp
。 - Flannel/Calico的VXLAN Overlay网络专用端口:
sudo ufw allow 8472/udp
。 - coredns:
sudo ufw allow 53
。 - flanneld:
sudo ufw allow 9153/tcp
。 - coredns与flanneld通信:
sudo ufw allow 443/tcp
。
- Kubernetes API服务器:
SELinux和AppArmor
- Debian默认使用AppArmor进行权限控制。如果需要关闭SELinux(适用于Red Hat类系统),可以使用以下命令:
- 临时关闭:
sudo setenforce 0
。 - 永久关闭:编辑
/etc/selinux/config
文件,将SELINUX=enforcing
改为SELINUX=disabled
。
- 临时关闭:
启用IPVS
- 安装软件:
sudo apt-get install ipvsadm ipset
。 - 临时启用IPVS:
sudo modprobe -- ip_vs
。sudo modprobe -- ip_vs_rr
。sudo modprobe -- ip_vs_wrr
。sudo modprobe -- ip_vs_sh
。sudo modprobe -- nf_conntrack
。
配置hosts文件
- 编辑
/etc/hosts
文件,添加集群中各节点的IP地址和主机名映射。
时间同步
- 安装时间同步软件,例如
ntpd
或chrony
,以确保集群中各节点的时间一致。
以上步骤是在Debian上部署Kubernetes时的一些基本安全设置。根据具体需求和环境,可能还需要进行其他安全配置,如网络策略、证书管理等。