以下是完整的Kubernetes架构师课程教学大纲,包括实验和参考资料( 四 )


当应用程序的负载增加时,可以使用HPA自动扩展 Pod的数量 。以下是一个使用HPA自动扩展的示例实验:
a.创建一个
在中,是一种控制器,用于管理Pod的副本数量和更新策略 。首先,我们需要创建一个,例如:
kubectl create deployment php-apache --image=k8s.gcr.io/hpa-example
这个命令将创建一个名为php-的,使用k8s.gcr.io/hpa-镜像 。
b.创建一个
在中,用于暴露Pod的网络端口 。如果要从外部访问Pod,需要创建一个 。例如:
kubectl expose deployment php-apache --port=80 --target-port=80 --type=NodePort
这个命令将创建一个名为php-的,将本地端口80映射到Pod的端口80上 。
c.创建一个HPA
下面我们将创建一个HPA,用于自动扩展Pod的数量 。可以使用以下命令创建一个名为php--hpa的HPA:
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
这个命令将创建一个HPA,根据CPU利用率自动调整Pod的数量 。如果CPU利用率超过50%,HPA将自动扩展Pod的数量,但不会超过10个 。最小Pod数量为1 。
d.测试自动扩展
现在,我们可以模拟应用程序负载来测试自动扩展功能 。可以使用以下命令启动一个负载测试:
kubectl run -i --tty load-generator --image=busybox /bin/sh
然后,在控制台中使用以下命令模拟负载:
while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done
这个命令会不断地从中访问Pod,模拟负载 。
e.监视自动扩展
可以使用以下命令来监视自动扩展的情况:
kubectl get hpakubectl describe hpa php-apache-hpa
第一个命令将显示HPA的概览信息,包括目标、CPU利用率和当前Pod数量等信息 。第二个命令将显示详细的HPA配置信息,包括扩展和缩减Pod数量的阈值等信息 。
当负载增加时,HPA将自动扩展Pod的数量,直到达到最大Pod数量 。在本实验中,最大Pod数量为10 。当负载减少时,HPA将自动缩减Pod的数量,直到达到最小Pod数量 。在本实验中,最小Pod数量为1 。
以上就是一个使用HPA自动扩展 Pod数量的示例实验 。注意,HPA需要根据实际的应用程序负载进行配置,以便自动扩展和缩减Pod数量 。
实验:使用部署应用程序、管理 Pod 和容器、缩放应用程序
参考资料:
官方文档()
《 in 》一书(作者:Marko Luksa)
三.高级操作 1.使用命名空间进行资源隔离
命名空间是中用于进行资源隔离和权限控制的基本单元 。使用命名空间可以将一个集群划分为多个逻辑部分,并为每个部分分配一定的资源和权限 。这样可以避免不同应用程序之间的冲突和干扰,提高集群的可靠性和安全性 。
在中,每个对象都属于一个命名空间 。常见的对象包括Pod、、、、等 。这些对象可以通过命名空间进行隔离和管辖,以便在不同的应用程序之间进行区分和管理 。
a.查看中的命名空间列表:
<