Kubernetes部署可扩展的nginx集群

接下来我们在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 水平自动扩缩

Leave a Comment

豫ICP备19001387号-1