1. 创建NodePod的mysql或MariaDB服务, 请参考Kubernetes Mariadb Mysql安装.

2. 安装完成使用ip:30016 用户 密码连接失败, 使用over ssh方式却可以连接成功.

排查问题

  1. 查看防火墙端口打开30016端口

firewall-cmd --list-ports

# 没有则添加
firewall-cmd --zone=public --add-port=30016/tcp --permanent
firewall-cmd --reload
  1. 关闭防火墙, 为啥关闭以后再开一篇解释
systemctl stop firewalld
  1. 查询iptables规则,
iptables -L -n

# iptables 被kubernetes接管后的规则比较多,仔细看下FORWARD规则发现,
# policy DROP状态,
# 这就导致了我们直接访问node节点的IP加上端口会无法访问容器.

# 临时生效
iptables -P FORWARD ACCEPT
  1. 永久生效
vim /usr/lib/systemd/system/docker.service


# 在[Service]下增加一条规则
............
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT

# 重启docker生效

systemctl daemon-reload
systemctl restart docker
  1. 重新使用刚才mysql或mariadb连接测试.