接下来我们在Kubernetes是部署一个可以扩展的nginx集群。
因为是在Ingress上部署的,所以前提是你的Kubernetes集群上已部署Ingress,如果没有,参考这篇Kubernetes安装配置Ingress
首先创建nginx Deployment和Service的配置文件 nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-dep
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-tpl
labels:
app: nginx
spec:
containers:
- name: nginx-app
image: nginx
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
ports:
- port: 80
selector:
app: nginx
默认只有一个节点幅本(Pod)
再创建ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: example-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: nginx
servicePort: 80
应用这两个配置
kubectl apply -f nginx.yaml
kubectl apply -f ingress.yaml
在浏览器上访问http://localhost
,就会显示nginx的默认欢迎页面。
现在我们对其扩容,扩容到4个节点(Pod)
kubectl scale deployment nginx-dep --replicas=4
请求就会被由轮循机制平均路由到4个节点上,通过观察容器日志可以得到验证。
用不了那么多节点的时候缩容
kubectl scale deployment nginx-dep --replicas=1
这是手动的扩容缩容,也可以做成自动化的,参考官方文档 Pod 水平自动扩缩