一、前言

    在近期的某个项目中,我们需要将一套基于物理服务器的K8S环境迁移至甲方内部网络。由于现场部署周期很短,因此决定先将物理服务器运到实验室,把K8S集群及应用部署完成后打包物理机迁移至甲方机房。

    在这个项目实施过程中,遇到了几个在非高安全环境部署情况下不会出现的问题。

二、问题

1. 服务器需要根据等保三级要求配置登录策略及防火墙策略。

2. 服务器在接入实验室网络时使用的是实验室内网ip,与甲方机房ip不同网段,存在后期ip修改问题。

三、经验总结

    根据该次项目实施的过程遇到的问题,我总结了几个方面的建议。

1. 在服务器操作系统层面配置两个ip。

(1)在本次项目实施中最大的问题即是在安装完成K8S集群的情况下轻易改动服务器IP。为此采用了两个IP的配置,使用一个内部IP用于K8S集群通信,一个外部IP用于暴露应用及网络连接。

(2)在本次实施过程中甲方环境要求开启防火墙并限制端口,由于K8S中的calico和kube-proxy是动态端口启动,也研究不出具体的端口范围,由于采用了两个ip,所以直接在firewalld放行了对内部ip的全部端口,规避了因为防火墙限制导致集群异常的问题。

2. firewalld开启后需要配置允许NAT转发

(1)在本次项目实施中开启防火墙并放开端口后,发现K8S集群通信异常,ETCD状态异常,应用状态正常但是端口不通。研究后发现是calico封包通信的时候被firewalld拦截了,允许NAT转发后该问题解决。

3. 把禁止使用root远程ssh登录配置放在最后一步

(1)在做集群部署的时候,使用了ansible做自动化配置。由于服务器使用了root用户配置免密,ansible playbook中使用了root用户进行远程配置,一旦配置禁止root远程则无法使用ansible进行配置。

 

 

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐