登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
业界区
›
安全
›
k8s部署nginx集群
k8s部署nginx集群
[ 复制链接 ]
每捎京
2025-6-1 18:23:31
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
1.nginx集群介绍
在Kubernetes(k8s)中部署Nginx集群,是通过声明式配置实现高可用、可扩展的Web服务。其核心是通过
Deployment
管理Nginx容器副本的自动扩缩容和故障恢复,并借助
Service
提供负载均衡和统一的访问入口。Kubernetes的调度机制保障了集群的弹性与稳定性,支持滚动更新、资源限制、健康检查等关键特性,适用于生产环境的大规模流量分发与业务托管。
2.部署环境
IP
节点
操作系统
k8s版本
nginx版本
docker版本
172.16.4.85
master1
centos7.8
1.23.17
20.10.9
172.16.4.86
node1
centos7.8
1.23.17
20.10.9
172.16.4.87
node2
centos7.8
1.23.17
1.20.1
20.10.9
172.16.4.89
node3
centos7.8
1.23.17
1.20.1
20.10.9
172.16.4.90
node4
centos7.8
1.23.17
1.20.1
20.10.9
3.nginx集群部署
3.1 nfs csi部署
https://www.cnblogs.com/Leonardo-li/p/18813140
复制代码
3.2 创建namespace
kubectl create namespace nginx
复制代码
3.3 创建nginx configmap
# nginx-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config
namespace: nginx
data:
nginx.conf: |
user nginx;
worker_processes auto;
# 日志路径指向 /data/service/nginx/logs
error_log /data/service/nginx/logs/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
server_tokens off;
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /data/service/nginx/logs/access.log main;
sendfile on;
keepalive_timeout 65;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream ltas-server {
server lt-algstore.ltzx.svc.cluster.local:8080;
}
upstream minio-server {
server minio-svc.minio.svc.cluster.local:9001;
}
server {
listen 80;
server_name localhost;
client_max_body_size 1024M;
location / {
root /data/service/nginx/html;
try_files $uri $uri/ /index.html;
}
location /prod-api/ {
proxy_pass http://ltas-server/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location /prod-ws/ {
proxy_pass http://ltas-server/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_read_timeout 600s;
}
location /prod-file/ {
proxy_pass http://minio-server/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
复制代码
3.4 创建nginx html pvc
# html-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nginx-html-pvc
namespace: nginx
spec:
accessModes:
- ReadWriteMany # 必须为多节点读写
storageClassName: nfs-csi
resources:
requests:
storage: 10Gi
复制代码
3.5 创建nginx service
# nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: nginx
spec:
type: NodePort
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080 # 根据需求调整端口范围(30000-32767)
复制代码
3.6 创建nginx statefulset
此段配置,是因为我在做nginx镜像的时候,没有将日志输出到前台,所以在执行kubectl logs的时候是没有输出的,所以在增加此段配置,来输出nginx日志
command: ["/bin/sh", "-c"]
args:
- |
mkdir -p /data/service/nginx/logs
ln -sf /dev/stdout /data/service/nginx/logs/access.log
ln -sf /dev/stderr /data/service/nginx/logs/error.log
exec nginx -g 'daemon off;'
# ng-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nginx
namespace: nginx
spec:
serviceName: nginx
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
securityContext:
fsGroup: 1000
containers:
- name: nginx
image: 10.142.99.123:8060/public/nginx:v1.20.1
env:
- name: TZ
value: "Asia/Shanghai"
ports:
- containerPort: 39988
command: ["/bin/sh", "-c"]
args:
- |
mkdir -p /data/service/nginx/logs
ln -sf /dev/stdout /data/service/nginx/logs/access.log
ln -sf /dev/stderr /data/service/nginx/logs/error.log
exec nginx -g 'daemon off;'
volumeMounts:
- name: host-timezone
mountPath: /etc/localtime
readOnly: true
- name: html-shared
mountPath: /data/service/nginx/html
- name: logs-volume
mountPath: /data/service/nginx/logs
- name: nginx-config
mountPath: /data/service/nginx/conf/nginx.conf
subPath: nginx.conf
# 关键修复:volumes 必须放在 Pod 模板内部
volumes:
- name: host-timezone
hostPath:
path: /etc/localtime
- name: html-shared
persistentVolumeClaim:
claimName: nginx-html-pvc
- name: nginx-config
configMap:
name: nginx-config
# volumeClaimTemplates 保持在 StatefulSet 顶层
volumeClaimTemplates:
- metadata:
name: logs-volume
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: nfs-csi
resources:
requests:
storage: 50Gi
复制代码
3.7 执行并创建各种资源类
kubectl apply -f ng-cm.yaml
kubectl apply -f ng-html-pvc.yaml
kubectl apply -f ng-svc.yaml
kubectl apply -f ng-sts.yaml
复制代码
3.8 验证状态
[root@master1 nginx-n6]# kubectl get pv | grep nginx
pvc-1200d1d4-6186-4629-9980-5372f3a7584c 50Gi RWO Retain Bound nginx/logs-volume-nginx-1 nfs-csi 48m
pvc-48f293ad-a6ae-4b57-883d-59e6797ce165 50Gi RWO Retain Bound nginx/logs-volume-nginx-2 nfs-csi 48m
pvc-6baae14c-0f7f-4251-8a1f-4606194677e7 10Gi RWX Retain Bound nginx/nginx-html-pvc nfs-csi 52m
pvc-dc0037af-7a9e-4547-9ea9-f3ecf692c335 50Gi RWO Retain Bound nginx/logs-volume-nginx-0 nfs-csi 48m
[root@master1 nginx-n6]# kubectl get pvc -n nginx
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
logs-volume-nginx-0 Bound pvc-dc0037af-7a9e-4547-9ea9-f3ecf692c335 50Gi RWO nfs-csi 48m
logs-volume-nginx-1 Bound pvc-1200d1d4-6186-4629-9980-5372f3a7584c 50Gi RWO nfs-csi 48m
logs-volume-nginx-2 Bound pvc-48f293ad-a6ae-4b57-883d-59e6797ce165 50Gi RWO nfs-csi 48m
nginx-html-pvc Bound pvc-6baae14c-0f7f-4251-8a1f-4606194677e7 10Gi RWX nfs-csi 52m
[root@master1 nginx-n6]# kubectl get sts -n nginx
NAME READY AGE
nginx 3/3 47m
[root@master1 nginx-n6]# kubectl get pods -n nginx
NAME READY STATUS RESTARTS AGE
nginx-0 1/1 Running 0 47m
nginx-1 1/1 Running 0 47m
nginx-2 1/1 Running 0 47m
[root@master1 nginx-n6]# kubectl get svc -n nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx NodePort 10.102.171.84 <none> 80:30080/TCP 88m
复制代码
3.9 前端页面目录
因为我的nginx是需要做web服务器的,所以将业务的前端放到nfs csi的自动创建的pvc(nginx-html-pvc)中,它对应的pv是挂载到容器中的html目录的,这样就可以正常访问了nginx发布的web前端了。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
k8s
部署
nginx
集群
相关帖子
Ubuntu 部署 Gitea 代码仓库
Ubuntu 部署Harbor (Docker版)
Ubuntu 部署Harbor (Docker版)
Ubuntu 部署Harbor (Docker版)
Ubuntu 部署Harbor (Docker版)
Ubuntu 部署Harbor (Docker版)
Ubuntu 部署Harbor (Docker版)
大模型私有化部署指南:从“一键安装”到“企业级落地”
大模型私有化部署指南:从“一键安装”到“企业级落地”
3分钟部署本地大模型,零成本实现 Token 自由!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
Ubuntu 部署 Gitea 代码仓库
0
226
诉称
2026-03-26
安全
Ubuntu 部署Harbor (Docker版)
0
86
艾晓梅
2026-03-26
安全
Ubuntu 部署Harbor (Docker版)
0
933
旌磅箱
2026-03-26
安全
Ubuntu 部署Harbor (Docker版)
0
731
尸酒岐
2026-03-26
安全
Ubuntu 部署Harbor (Docker版)
0
252
后雪闵
2026-03-26
安全
Ubuntu 部署Harbor (Docker版)
0
240
福清婉
2026-03-26
安全
Ubuntu 部署Harbor (Docker版)
0
406
扈怀易
2026-03-26
业界
大模型私有化部署指南:从“一键安装”到“企业级落地”
0
990
栓州
2026-03-26
业界
大模型私有化部署指南:从“一键安装”到“企业级落地”
0
628
钱闲华
2026-03-26
安全
3分钟部署本地大模型,零成本实现 Token 自由!
0
80
蒲善思
2026-03-26
回复
(32)
任静柔
2025-10-29 05:12:00
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
过来提前占个楼
铜坠匍
2025-11-6 08:30:49
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
热心回复!
东郭欣然
2025-11-20 22:22:35
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
艺轫
2025-11-29 13:35:53
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
分享、互助 让互联网精神温暖你我
诈知
2025-12-13 13:04:04
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
懂技术并乐意极积无私分享的人越来越少。珍惜
事确
2025-12-14 01:30:45
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
很好很强大 我过来先占个楼 待编辑
戈森莉
2025-12-14 16:54:47
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
烯八
2025-12-24 20:19:54
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
懂技术并乐意极积无私分享的人越来越少。珍惜
赫连如冰
2026-1-9 14:00:41
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
啤愿
2026-1-14 04:49:47
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,辛苦了
纪晴丽
2026-1-14 18:26:31
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
分享、互助 让互联网精神温暖你我
诞楮
2026-1-20 21:01:18
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
新版吗?好像是停更了吧。
电棘缣
2026-1-22 13:33:28
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
用心讨论,共获提升!
拼匍弦
2026-1-24 10:46:08
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
用心讨论,共获提升!
懵诬哇
2026-1-25 03:48:45
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享,学习下。
釉她
2026-1-28 05:09:26
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
yyds。多谢分享
喙审
2026-1-29 03:34:52
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,学习下。
挚魉
2026-2-1 04:15:09
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
东西不错很实用谢谢分享
喙审
2026-2-5 04:31:46
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
每捎京
2026-2-5 04:31:46
关注
0
粉丝关注
22
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9522
6
韶又彤
9916
7
宋子
9878
8
荪俗
9018
9
闰咄阅
9995
10
蓬森莉
9870
查看更多
今日好文热榜
387
AI开发-python-langchain框架(3-14-并行流
861
WPF新手村教程(七)—— 终章(MVVM架构
296
38岁程序员的接单平台踩坑史:从被骗到月入
142
MySQL优化全攻略:索引、SQL与分库分表的最
2
《HelloGitHub》第 120 期
248
自动类型推导
402
C# 面试高频题:装箱和拆箱是如何影响性能
451
《DNESP32P4开发指南_V1.0》第十一章 LED实
615
《DNESP32P4开发指南_V1.0》第十一章 LED实
230
《DNESP32P4开发指南_V1.0》第十一章 LED实
194
《DNESP32P4开发指南_V1.0》第十一章 LED实
213
构建企业级智能知识库:Vue3 + TypeScript
503
读2025世界前沿技术发展报告24其他飞行器
785
读2025世界前沿技术发展报告24其他飞行器
749
读2025世界前沿技术发展报告24其他飞行器
436
读2025世界前沿技术发展报告24其他飞行器
280
读2025世界前沿技术发展报告24其他飞行器
643
读2025世界前沿技术发展报告24其他飞行器
518
读2025世界前沿技术发展报告24其他飞行器
473
读2025世界前沿技术发展报告24其他飞行器