CentOS7上使用Kubernetes管理容器(3)

但除了发现redis-master的服务之外,还有两个Kubernetes系统默认的服务kubernetes-ro和kubernetes。而且我们可以看到每个服务都有一个服务IP及相应的端口,对于服务IP,是一个虚拟地址,根据apiserver的portal_net选项设置的CIDR表示的IP地址段来选取,在我们的集群中设置为10.10.10.0/24。为此每新创建一个服务,apiserver都会在这个地址段中随机选择一个IP作为该服务的IP地址,而端口是事先确定的。对redis-master服务,其服务地址为10.10.10.206,端口为6379。

[root@kubernetes guestbook]# kubecfg -h :8080 list services Name Labels Selector IP Port ---------- ---------- ---------- ---------- ---------- kubernetes-ro component=apiserver,provider=kubernetes 10.10.10.207 80 redis-master name=redis-master name=redis-master 10.10.10.206 6379 kubernetes component=apiserver,provider=kubernetes 10.10.10.161 443 5.2 创建redis-slave Pod和redis-slave服务 [root@kubernetes guestbook]# kubecfg -h :8080 -c redis-slave-controller.json create replicationControllers [root@kubernetes guestbook]# kubecfg -h :8080 -c redis-slave-service.json create services

然后通过list命令可知新建的redis-slave Pod根据调度算法调度到两台minion上,服务IP为10.10.10.92,端口为6379

[root@kubernetes guestbook]# kubecfg -h :8080 list pods Name Image(s) Host Labels Status ---------- ---------- ---------- ---------- ---------- redis-master dockerfile/redis 192.168.230.4/ name=redis-master Running 8c0ddbda-728c-11e4-8233-000c297db206 brendanburns/redis-slave 192.168.230.5/ name=redisslave,uses=redis-master Running 8c0e1430-728c-11e4-8233-000c297db206 brendanburns/redis-slave 192.168.230.4/ name=redisslave,uses=redis-master Running [root@kubernetes guestbook]# kubecfg -h :8080 list services Name Labels Selector IP Port ---------- ---------- ---------- ---------- ---------- redisslave name=redisslave name=redisslave 10.10.10.92 6379 kubernetes component=apiserver,provider=kubernetes 10.10.10.161 443 kubernetes-ro component=apiserver,provider=kubernetes 10.10.10.207 80 redis-master name=redis-master name=redis-master 10.10.10.206 6379 5.3 创建Frontend Pod和Frontend服务

在创建之前修改frontend-controller.json的Replicas数量为2,这是因为我们的集群中只有2台minion,如果按照frontend-controller.json的Replicas默认值3,那会导致有2个Pod会调度到同一台minion上,产生端口冲突,有一个Pod会一直处于pending状态,不能被调度。

[root@kubernetes guestbook]# kubecfg -h :8080 -c frontend-controller.json create replicationControllers [root@kubernetes guestbook]# kubecfg -h :8080 -c frontend-service.json create services

通过查看可知Frontend Pod也被调度到两台minion,服务IP为10.10.10.220,端口是80。

[root@kubernetes guestbook]# kubecfg -h :8080 list pods Name Image(s) Host Labels Status ---------- ---------- ---------- ---------- ---------- redis-master dockerfile/redis 192.168.230.4/ name=redis-master Running 8c0ddbda-728c-11e4-8233-000c297db206 brendanburns/redis-slave 192.168.230.5/ name=redisslave,uses=redis-master Running 8c0e1430-728c-11e4-8233-000c297db206 brendanburns/redis-slave 192.168.230.4/ name=redisslave,uses=redis-master Running a880b119-7295-11e4-8233-000c297db206 brendanburns/php-redis 192.168.230.4/ name=frontend,uses=redisslave,redis-master Running a881674d-7295-11e4-8233-000c297db206 brendanburns/php-redis 192.168.230.5/ name=frontend,uses=redisslave,redis-master Running [root@kubernetes guestbook]# kubecfg -h :8080 list services Name Labels Selector IP Port ---------- ---------- ---------- ---------- ---------- kubernetes-ro component=apiserver,provider=kubernetes 10.10.10.207 80 redis-master name=redis-master name=redis-master 10.10.10.206 6379 redisslave name=redisslave name=redisslave 10.10.10.92 6379 frontend name=frontend name=frontend 10.10.10.220 80 kubernetes component=apiserver,provider=kubernetes 10.10.10.161 443

除此之外,你可以删除Pod、Service及更新ReplicationController的Replicas数量等操作,如删除Frontend服务:

[root@kubernetes guestbook]# kubecfg -h :8080 delete services/frontend Status ---------- Success

还可以更新ReplicationController的Replicas的数量,下面是更新Replicas之前ReplicationController的信息。

[root@kubernetes guestbook]# kubecfg -h :8080 list replicationControllers Name Image(s) Selector Replicas ---------- ---------- ---------- ---------- redisSlaveController brendanburns/redis-slave name=redisslave 2 frontendController brendanburns/php-redis name=frontend 2

现在我们想把frontendController的Replicas更新为1,则这行如下命令,然后再通过上面的命令查看frontendController信息,发现Replicas已变为1。

[root@kubernetes guestbook]# kubecfg -h :8080 resize frontendController 1 [root@kubernetes guestbook]# kubecfg -h :8080 list replicationControllers Name Image(s) Selector Replicas ---------- ---------- ---------- ---------- redisSlaveController brendanburns/redis-slave name=redisslave 2 frontendController brendanburns/php-redis name=frontend 1 5.4 演示跨机器服务通信

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3fa06f69b332c2286f561f903bf81c45.html