请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

關於 service 以及 ingress的問題

目前我的虚拟环境如下
192.168.99.101 master
192.168.99.102 node1
192.168.99.103 node2
彼此之间互相可以连通

我按照教学create deployment -> service -> ingress
并于/etc/hosts 加入 10.1.211.240 hello-world.info
然后使用curl hello-world.info 尝试取得回应

目前发现一个问题

在node1中使用terminal尝试 无法取得回应
在node2中使用termianl可以取得回应

感觉service 跟 ingress都部属到了node2
也发现10.1.211.240 这个ip只能从本地连线

请问这个现象是否正常?
想请问要怎么知道service以及ingress是部属在哪一个node?
想请问这个cluster是否有共同IP可以由外统一连入?

正在回答 回答被采纳积分+3

1回答

清风 2021-03-24 11:22:42

请参考第六章加餐文档里'加餐-Service 的域名解析'的内容:

确保第四章代码库的 coredns.yaml 已经执行,且 node1 上的 coredns pod 已经运行:

```

kc get po -n kube-system -o wide

NAME                             READY   STATUS    RESTARTS   AGE   IP               NODE     NOMINATED NODE   READINESS GATES

coredns-d8dcc8965-7xn8c          1/1     Running   0          14s   10.244.1.98      node1    <none>           <none>

coredns-d8dcc8965-fnl5n          1/1     Running   0          14s   10.244.0.31      master   <none>           <none>

```

如果该 node 上没有coredns pod 运行,则无法解析。如果需要在多个 node 上进行域名解析,则可以将 coredns 的副本数增加到和 node 节点数相同,例如代码中设置的数量为 replica: 3。


0 回复 有任何疑惑可以回复我~
  • 提问者 山謬 #1
    感謝您的回覆
    我看到這兩個pod 都在master 節點下
    ```
    coredns-6d56c8448f-hmvfz         1/1     Running   5          8d    10.244.0.12      master   <none>           <none>
    coredns-6d56c8448f-nvxv7         1/1     Running   5          8d    10.244.0.13      master   <none>           <none>
    ```
    然後我嘗試kubectl apply -f coredns.yaml得到
    ```
    for: "coredns.yaml": Operation cannot be fulfilled on deployments.apps "coredns": the object has been modified; please apply your changes to the latest version and try again
    ```
    請問要怎麼把這兩個pod放到node上而不是master?
    回复 有任何疑惑可以回复我~ 2021-03-24 15:59:50
  • 清风 回复 提问者 山謬 #2
    需要在 coredns.yaml 里,spec->template->spec:加上一下内容:
    affinity:
            podAntiAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
              - labelSelector:
                  matchLabels:
                    k8s-app: kube-dns
                topologyKey: kubernetes.io/hostname
    
    我更新了这个代码kubeblog/docs/Chapter4/coredns.yaml,你重新拉取代码,kubectl delete -f kubeblog/docs/Chapter4/coredns.yaml,再执行 kubectl apply -f kubeblog/docs/Chapter4/coredns.yaml
    回复 有任何疑惑可以回复我~ 2021-03-25 10:34:55
  • 拧壶冲 回复 清风 #3
    所以demo的代码是不是应该默认的就是replicas: 3 才对?因为所有的例子都是以三台机器为标准来讲授的。如果replicas是目前的2,会导致有一台机器没有跑coredns的pod
    回复 有任何疑惑可以回复我~ 2021-12-17 12:32:26

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信