部署环境


IP地址 主机名 功能
10.1.104.200 k8s-deploy 部署节点,不承担实际作用
10.1.104.201 k8s-master01 master节点
10.1.104.202 k8s-master02 master节点
10.1.104.203 k8s-master03 master节点
10.1.104.204 k8s-nginx 负载均衡节点,实际生产中应为HA架构
10.1.104.205 k8s-node01 node节点
10.1.104.206 k8s-node02 node节点
10.1.104.207 k8s-node03 node节点

验证集群状态


本部署将使用Deloyment的方式部署一个3个副本的Nginx服务,并使用NodePort的方式对外提供服务。


确认组件、节点均正常工作(k8s-master):

验证各组件状态:

kubectl get cs

验证各节点状态:

kubectl get node


部署Deployment资源(k8s-master):

创建Deployment资源文件:

cd /opt/k8s/work
source /opt/k8s/bin/environment.sh

cat > nginx-prod.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: daemon-nginx-deployment
  namespace: default
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-prod
      labels:
        app: nginx
        env: prod
    spec:
      containers:
      - name: daemon-nginx-pod
        image: nginx:1.14.2
        imagePullPolicy: Always
        ports:
        - name: http-80
          containerPort: 80
        resources:
          limits:
            cpu: 400m
            memory: 1024Mi
          requests:
            cpu: 100m
            memory: 256Mi
        readinessProbe:
          tcpSocket:
            port: 80
          initialDelaySeconds: 20
          periodSeconds: 10
        livenessProbe:
          tcpSocket:
            port: 80
          initialDelaySeconds: 20
          periodSeconds: 10
  strategy:
    type: RollingUpdate
    rollingUpdate: 
      maxSurge: 1

---

apiVersion: v1
kind: Service
metadata:
  name: daemon-nginx-service
spec:
  type: NodePort
  selector:
    app: nginx
  clusterIP: 10.254.8.8
  ports:
  - port: 8080
    targetPort: 80
    nodePort: 32666
EOF

查看创建的Deployment、service及pod资源:

kubectl apply -f nginx-prod.yaml
kubectl get all

访问任意Node节点的地址,检验应用是否能访问:

http://10.1.104.205:32666/

文档更新时间: 2020-10-22 15:55   作者:闻骏