Kubernetes

version: 1.0.0

Built with Teadocs

01.k8s问题记录

# 01.k8s问题记录

# 问题1.Kubernetes主机间curl cluster ip时不通
  • 问题现象

    • 测试部署了一个service,包括2个pod,分别在node1和node2上。

      [root@k8s-master01 06]# kubectl get svc -o wide
      NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE   SELECTOR
      kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP   8d    <none>
      nginx-svc    ClusterIP   10.104.60.94   <none>        80/TCP    15m   name=nginx
  • 在node1(或者node2)上curl 10.254.132.190(cluster ip),只有当负载到本地pod时正常,curl <本地pod ip和另一个主机pod ip>是正常的。

    [root@k8s-master01 06]# kubectl get pod -o wide
    NAME                        READY   STATUS    RESTARTS   AGE   IP            NODE         NOMINATED NODE   READINESS GATES
    nginx-dm-5496d4bc4d-5ncg6   1/1     Running   0          16m   10.244.2.15   k8s-node01   <none>           <none>
    nginx-dm-5496d4bc4d-w85z7   1/1     Running   0          16m   10.244.1.15   k8s-node02   <none>           <none>
  • ip route

    [root@k8s-master01 06]# ip route 
    default via 10.0.2.2 dev eth0 proto dhcp metric 100 
    10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15 metric 100 
    10.244.1.0/24 via 10.244.1.0 dev flannel.1 onlink 
    10.244.2.0/24 via 10.244.2.0 dev flannel.1 onlink 
    172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
    192.168.33.0/24 dev eth1 proto kernel scope link src 192.168.33.10 metric 101 
  • 解决方案

    • service 需要配置标签选择
      metadata:
      name: mall-config-service
      labels:
        app: mall-config
        project: mall
    # 问题2.Kubernetes微服务间如何通信,即service下pod如何调用其他service。
      1. spring boot 配置举例,以下配置是读取config服务,需要注意的是uri配置的不是ingress端口访问的地址。
        而是通过k8s的service配置的name进行访问,前提是在同个namespace,默认default。
        spring:
        main:
        allow-bean-definition-overriding: true # 当遇到相同的名字的时候,是否允许覆盖注册
        cloud:
        config:
        name: item
        profile: k8s
        label: master
        #      uri: http://config.mall.com:30924
        uri: http://mall-config-service:10011