kubernetes集群怎么访问外部的服务mysql、redis?

kubernetes pod中的container 无法ping通本地其他物理机。

集群信息

k8s-master 192.168.10.12
k8s-node-1 192.168.10.14
k8s-node-2 192.168.10.15

cat my-nginx.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-nginx
spec:
  replicas: 2
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: registry:5000/nginx:1.9
        ports:
        - containerPort: 80
    

kubectl create -f my-nginx.yaml
创建两个nginx的pod。
两个nginx 的ip分别为10.0.48.7,10.0.98.5。分别在两个node节点上。

kubectl exec my-nginx-1192235638-hvlmk -i -t -- /bin/bash
登录其中一台。

clipboard.png

ping 10.0.48.7 可以ping通

clipboard.png

但是ping物理机ip无法ping通,只能ping通container所在物理机。

clipboard.png

container所在物理机iptables如下:

clipboard.png

想使用容器访问192.168.10.13物理机的mysql和redis,但是根本不通啊?跪求大神帮忙解释一下!

阅读 6.1k
1 个回答
新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题