作者声明:本篇文章系本人依照真实部署过程原创,未经许可,谢绝转载。
上一篇文章介绍了kubernetes LB(Load Balancing)负载均衡集群,这一篇文件带你来 5分钟带你体验kubernetes集群扩展功能
环境准备
本文中我用到了docker的的镜像文件 28code/httpd:v1.0 ,系作者基于docker的busybox镜像做的一个docker image,主要功能是提供httpd服务并显示版本和pod信息。 启动28code/httpd:v1.0镜像时候会生成文件位于 /var/www/index.html,index.html记录了版本号V1和启动pod时候的pod名称,用来提供展示版本变更和访问时候显示访问的哪个pod的显示效果。
kubernetes 集群扩展
上次在master执行命令,部署docker镜像文件28code/httpd:v1.0,,镜像提供httpd服务,部署为2个服务1
# kubectl run myapp --image=28code/httpd:v1.0 --replicas=2
在master节点执行命令,查看pod的运行情况1
2
3
4
5
6
7
8
9# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
myapp-799bbcd6b4-6tqkk 1/1 Running 0 22s 10.244.2.30 node02.k8s.com <none> <none>
myapp-799bbcd6b4-p4dxz 1/1 Running 0 22s 10.244.1.24 node01.k8s.com <none> <none>
在master节点执行命令,查看deployment
# kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
myapp 2/2 2 2 5m57s
可以看到httpd服务启动了两个分别运行在node01节点上和node02节点上。
此时如果我们想要运行5个httpd服务,此时我们只需要在在master节点执行命令
1 | # kubectl scale --replicas=5 deployment myapp |
可以看到kubernetes扩展了3个pod提供httpd服务。
在master节点分别访问5个pod节点查看httpd服务信息1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# curl 10.244.1.25
V1
myapp-799bbcd6b4-6697m
# curl 10.244.2.30
V1
myapp-799bbcd6b4-6tqkk
# curl 10.244.1.26
V1
myapp-799bbcd6b4-kfqpw
# curl 10.244.1.24
V1
myapp-799bbcd6b4-p4dxz
# curl 10.244.2.31
V1
myapp-799bbcd6b4-xxxb9
可以看到5个pod节点正常访问(V1代表版本信息,myapp-XXXXXX 是代表pods名称),显示了版本号和pod名称。
此时我们来测试kubernetes LB功能1
2
3
4
5
6
查看 service
# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 72m
myapp ClusterIP 10.100.210.72 <none> 80/TCP 17m
在master节点执行命令展示LB的效果,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43# curl 10.100.210.72
V1
myapp-799bbcd6b4-6tqkk
# curl 10.100.210.72
V1
myapp-799bbcd6b4-kfqpw
# curl 10.100.210.72
V1
myapp-799bbcd6b4-p4dxz
# curl 10.100.210.72
V1
myapp-799bbcd6b4-p4dxz
# curl 10.100.210.72
V1
myapp-799bbcd6b4-p4dxz
# curl 10.100.210.72
V1
myapp-799bbcd6b4-6tqkk
# curl 10.100.210.72
V1
myapp-799bbcd6b4-6697m
# curl 10.100.210.72
V1
myapp-799bbcd6b4-6tqkk
# curl 10.100.210.72
V1
myapp-799bbcd6b4-p4dxz
# curl 10.100.210.72
V1
myapp-799bbcd6b4-p4dxz
# curl 10.100.210.72
V1
myapp-799bbcd6b4-6697m
# curl 10.100.210.72
V1
myapp-799bbcd6b4-xxxb9
# curl 10.100.210.72
V1
myapp-799bbcd6b4-p4dxz
# curl 10.100.210.72
V1
myapp-799bbcd6b4-xxxb9
#
可以看到访问服务地址10.100.210.72后,分别均匀的访问到5个pod上的httpd服务
以上是体验kubernetes集群扩展功能整个过程