docker - Load balancing is not working properly -


we want test kubernetes load balancing. create 2 node cluster thats runs 6 replicas of our container. container has running apache2 server , php , print pod name if browse hostname.php

cluster details: 172.16.2.92 -- master , minion 172.16.2.91 -- minion

rc , service details:

frontend-controller.json:

{    "kind":"replicationcontroller",    "apiversion":"v1beta3",    "metadata":{       "name":"frontend",       "labels":{          "name":"frontend"       }    },    "spec":{       "replicas":6,       "selector":{          "name":"frontend"       },       "template":{          "metadata":{             "labels":{                "name":"frontend"             }          },          "spec":{             "containers":[                {                   "name":"php-hostname",                   "image":"naresht/hostname",                   "ports":[                      {                         "containerport":80,                         "protocol":"tcp"                      }                   ]                 }             ]          }       }    } } 

frontend-service.json:

{    "kind":"service",    "apiversion":"v1beta3",    "metadata":{       "name":"frontend",       "labels":{          "name":"frontend"       }    },     "spec":{       "createexternalloadbalancer": true,       "ports": [         {           "port":3000,           "targetport":80,           "protocol":"tcp"         }       ],       "publicips": [ "172.16.2.92"],       "selector":{          "name":"frontend"       }    } } 

pod details: frontend-01bb8, frontend-svxfl , frontend-yki5s running on node 172.16.2.91 frontend-65ykz , frontend-c1x0d , frontend-y925t running on node 172.16.2.92

if browse 172.16.2.92:3000/hostname.php, prints pod name.

problem:

running watch -n1 curl 172.16.2.92:3000/hostname.php on node 172.16.2.92 gives pods(frontend-65ykz , frontend-c1x0d , frontend-y925t ). not showing other node 172.16.2.91 pods. running same command on node 172.16.2.91 gives pods. not showing other node 172.16.2.92 pods. running same command outside of cluster showing 172.16.2.92 pods. want see pods not specific node pods, if run wherever.

check below details more information , if wrong

# kubectl nodes

name          labels                                           status 172.16.2.91   kubernetes.io/hostname=172.16.2.91   ready 172.16.2.92   kubernetes.io/hostname=172.16.2.92   ready 

# kubectl pods

pod              ip            container(s)   image(s)                                         host                      labels                                                              status    created          message frontend-01bb8   172.17.0.84                                                                   172.16.2.91/172.16.2.91   name=frontend                                                       running   minute                                php-hostname   naresht/hostname                                                                                                                               running   minute frontend-65ykz   10.1.64.79                                                                    172.16.2.92/172.16.2.92   name=frontend                                                       running   minute                                php-hostname   naresht/hostname                                                                                                                               running   minute frontend-c1x0d   10.1.64.77                                                                    172.16.2.92/172.16.2.92   name=frontend                                                       running   minute                                php-hostname   naresht/hostname                                                                                                                               running   minute frontend-svxfl   172.17.0.82                                                                   172.16.2.91/172.16.2.91   name=frontend                                                       running   minute                                php-hostname   naresht/hostname                                                                                                                               running   minute frontend-y925t   10.1.64.78                                                                    172.16.2.92/172.16.2.92   name=frontend                                                       running   minute                                php-hostname   naresht/hostname                                                                                                                               running   minute frontend-yki5s   172.17.0.83                                                                   172.16.2.91/172.16.2.91   name=frontend                                                       running   minute                                php-hostname   naresht/hostname                                                                                                                               running   minute kube-dns-sbgma   10.1.64.11                                                                    172.16.2.92/172.16.2.92   k8s-app=kube-dns,kubernetes.io/cluster-service=true,name=kube-dns   running   45 hours                                kube2sky       gcr.io/google_containers/kube2sky:1.1                                                                                                          running   45 hours                                etcd           quay.io/coreos/etcd:v2.0.3                                                                                                                     running   45 hours                                skydns         gcr.io/google_containers/skydns:2015-03-11-001                                                                                                 running   45 hours 

# kubectl services

name            labels                                                              selector           ip(s)           port(s) frontend        name=frontend                                                       name=frontend      192.168.3.184   3000/tcp kube-dns        k8s-app=kube-dns,kubernetes.io/cluster-service=true,name=kube-dns   k8s-app=kube-dns   192.168.3.10    53/udp kubernetes      component=apiserver,provider=kubernetes                             <none>             192.168.3.2     443/tcp kubernetes-ro   component=apiserver,provider=kubernetes                            <none>             192.168.3.1     80/tcp 

# iptables -t nat -l

chain kube-portals-container (1 references) target     prot opt source               destination redirect   tcp  --  anywhere             192.168.3.184        /* default/frontend: */ tcp dpt:3000 redir ports 50734 redirect   tcp  --  anywhere             kube02               /* default/frontend: */ tcp dpt:3000 redir ports 50734 redirect   udp  --  anywhere             192.168.3.10         /* default/kube-dns: */ udp dpt:domain redir ports 52415 redirect   tcp  --  anywhere             192.168.3.2          /* default/kubernetes: */ tcp dpt:https redir ports 33373 redirect   tcp  --  anywhere             192.168.3.1          /* default/kubernetes-ro: */ tcp dpt:http redir ports 60311  chain kube-portals-host (1 references) target     prot opt source               destination dnat       tcp  --  anywhere             192.168.3.184        /* default/frontend: */ tcp dpt:3000 to:172.16.2.92:50734 dnat       tcp  --  anywhere             kube02               /* default/frontend: */ tcp dpt:3000 to:172.16.2.92:50734 dnat       udp  --  anywhere             192.168.3.10         /* default/kube-dns: */ udp dpt:domain to:172.16.2.92:52415 dnat       tcp  --  anywhere             192.168.3.2          /* default/kubernetes: */ tcp dpt:https to:172.16.2.92:33373 dnat       tcp  --  anywhere             192.168.3.1          /* default/kubernetes-ro: */ tcp dpt:http to:172.16.2.92:60311 

thanks

because flannel not working

/root/kube/reconfdocker.sh on everynode

it restart docker , flannel check ifconfig docker0 , flannel0 bridge ips should in same network. load balancing work. works me.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -