网站首页 > 精选教程 正文
# 一、统一配置中心
使用挂在配置文件方式,支持热更新,配置文件内容可命令生成,后复制到configmap的yml文件中。这里不做介绍了
- 1、编辑ConfigMap配置文件 configmap-nginx.yml 直接上内容:
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-configmap
data:
nginx_conf: |-
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
#测试个性cm
location /test/ {
proxy_pass http://www.baidu.com/;
proxy_redirect default;
proxy_set_header Host www.baidu.com;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
add_header Set-Cookie "flag=ssz-test";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
- 2、执行发布命令(支持热更新)
kubectl apply -f configmap-nginx.yml
#二、发布Pod
- 1 编写配置文件Deployment配置文件: deployment-nginx.yml
内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
selector:
matchLabels:
app: my-nginx
replicas: 2
template:
metadata:
labels:
app: my-nginx
spec:
containers:
- name: my-nginx
image: nginx
ports:
- containerPort: 80
volumeMounts:
- mountPath: /etc/nginx/nginx.conf
name: nginx
subPath: nginx.conf
volumes:
- name: nginx
configMap:
name: nginx-configmap
items:
- key: nginx_conf
path: nginx.conf
#resources:
# requests:
# cpu: 1
# memory: 500Mi
# limits:
# cpu: 2
# memory: 1024Mi
```
- 2、执行发布命令
kubectl apply -f deployment-nginx.yml
#三、发布Service (NodePort方式)
- 1、编写Service配置 service-nginx.yml
apiVersion: v1
kind: Service
metadata:
name: nginx-svc #定义service名称为nginx-service
labels:
app: nginx-svc #为service打上app标签
spec:
type: NodePort #使用NodePort方式开通,在每个Node上分配一个端口作为外部访问入口
selector:
app: my-nginx
ports:
- port: 8000 #port是k8s集群内部访问service的端口,即通过clusterIP: port可以访问到某个service
targetPort: 80 #targetPort是pod的端口,从port和nodePort来的流量经过kube-proxy流入到后端pod的targetPort上,最后进入容器
nodePort: 30080 #nodePort是外部访问k8s集群中service的端口,通过nodeIP: nodePort可以从外部访问到某个service
- 2、执行发布命令
kubectl apply -f service-nginx.yml
#四、总结
- 1、使用NodePort方式发布的Service端口范围只能30000~32767,可以在任一节点访问。如果想使用80端口,只能前置 nginx 反向代理到80 端口。
- 2、关于修改configmap内容后的更新。
直接更新configmap-nginx.yml内容 ,比如个性其中的baidu为163 ,
kubectl apply -f configmap-nginx.yml
配置即可生效。但是pod中的nginx是无法加载的,可以升级nginx镜像版本后滚动更新,如:
kubectl apply -f deployment-nginx-v2.yml
也可以直接销毁当前容器新建:
kubectl scale deployment my-nginx --replicas= 0
kubectl scale deployment my-nginx --replicas= 2
猜你喜欢
- 2024-10-20 K8S Configmap和Secret热更新之Reloader
- 2024-10-20 WebSocket与Nginx的小秘密 ng websocket
- 2024-10-20 入门Elasticsearch,我觉着你看这一篇就够了
- 2024-10-20 还不会MapReduce的离线数据分析?阿里大数据负责人教你
- 2024-10-20 如何使用Nginx实现不同的Hearder值代理到不同的后端服务
- 2024-10-20 从netmap到dpdk,从硬件到协议栈,4个维度让网络体系构建起来
- 2024-10-20 MAPREDUCE快速入门 mapreduce讲解
- 2024-10-20 K8s 配置管理必备!ConfigMap vs Secret,哪个更适合你?
- 2024-10-20 Java8 快速实现List转map 、分组、过滤等操作
- 2024-10-20 client-go获取k8s资源信息 k8s获取pod信息
你 发表评论:
欢迎- 05-16原来汇编中的循环是这么玩儿的
- 05-16什么?Java 中的锁还有状态?
- 05-161.4、Java流程控制语句详解
- 05-16Java基础-循环语句
- 05-16Java虚拟机和Dalvik虚拟机有哪些区别和不同?
- 05-16Java、Python、C语言?5大热门编程语言,我该怎么选?
- 05-16java的就业方向有哪些
- 05-16java好学吗?java是不是最难学的语言?
- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)