部署环境
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 作者:闻骏