nginx-ingress-1.6.4安装、nodeport配置tcp/udp端口发布、修改上传大小
nginx-ingress-1.6.4安装
- 官方地址:
配置image参数为阿里云:
registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.6.4
如何kubectl describe pod -n ingress-nginx 查看镜像拉取失败,先用docker pull一下进行调整正确后填入
- 已修改好的ingress-nginx-1.6.4文件:
ingress-nginx-aliyuan.yaml - 使用kubectl apply -f ingress-nginx.yaml部署
nodeport方式配置tcp、udp端口发布
1、修改配置文件开启端口功能:
修改ingress-controller的deployment配置或安装时修改yaml文件,在位置“-args:”中增加开启端口转发配置。kubectl edit deployments.apps -n ingress-nginx ingress-nginx-controller
在- args
部分添加开启端口转发配置
spec:
containers:
- args:
- /nginx-ingress-controller
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
- --election-id=ingress-controller-leader
- --controller-class=k8s.io/ingress-nginx
- --ingress-class=nginx
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
- --validating-webhook=:8443
- --validating-webhook-certificate=/usr/local/certificates/cert
- --validating-webhook-key=/usr/local/certificates/key
- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services ##打开tcp端口转发
- --udp-services-configmap=$(POD_NAMESPACE)/udp-services ##打开udp端口转发
2、修改默认30000-32767端口限制
k8s和k3s中ingress默认都只能使用node节点的30000-32767端口发布,如果想要使用其他端口,需要修改默认端口限制。
- 停止服务
systemctl stop k3s
修改启动配置
vi /etc/systemd/system/k3s.service # 修改配置,保存并退出
配置文件修改如下,修改ExecStart后内容ExecStart=/usr/local/bin/k3s \ server \ '--disable=traefik' \ --kube-apiserver-arg service-node-port-range=1-65535 ##增加此启动项修改端口范围。
- 重新加载同步
systemctl daemon-reload
- 启动服务
systemctl start k3s
3、配置svc
示例发布dns服务器到node节点53端口,pod默认配置即可:
apiVersion: v1
kind: Service
metadata:
labels:
app: myapp-adguardhome
name: myapp-adguardhome-svc
namespace: my-app
spec:
ports:
- port: 53 ##指定集群端口
name: tcp-53 ##指定名称
protocol: TCP ##指定协议
targetPort: 53 ##指定pod端口
nodePort: 53 ##指定nodePort端口
- port: 53 ##......
name: udp-53
protocol: UDP
targetPort: 53
nodePort: 53
- port: 3000
name: tcp-3000
protocol: TCP
targetPort: 3000
nodePort: 3000
selector:
app: myapp-adguardhome
type: NodePort ##类型为NodePort
4、配置configmap
配置文件格式如下所示:
data: port: "<namespace>/<service name>:<service port>" 53: "my-app/myapp-adguardhome-svc:53" # port: ingress对外暴露的端口 # namespace: 应用所在的namespace # service name: 应用的service name(svc) # service port: 应用的service port(svc端口)
发布UDP端口
apiVersion: v1 kind: ConfigMap metadata: name: tcp-services ## name的值与ingress配置文件args参数中添加的一致。 namespace: ingress-nginx data: 53: "my-app/myapp-adguardhome-svc:53" 3000: "my-app/myapp-adguardhome-svc:3000"
发布 TCP端口
apiVersion: v1 kind: ConfigMap metadata: name: udp-services ## name的值与ingress配置文件args参数中添加的一致。 namespace: ingress-nginx data: 53: "my-app/myapp-adguardhome-svc:53"
以上配置完成,可以通过[nodeip:端口]访问服务,如果已经有域名解析到node主机也可以通过[域名:端口]访问。
解决上传文件大小nginx-ingress配置修改
解决 413 Request Entity Too Large 报错
1、修改集群全局配置
查看configmap名称
kubectl edit deploy -n ingress-nginx nginx-ingress-controller
spec: containers: \- [args](https://so.csdn.net/so/search?q=args&spm=1001.2101.3001.7020): \- /nginx-ingress-controller \- --default-backend-service=$(POD_NAMESPACE)/default-http-backend \- --configmap=$(POD_NAMESPACE)/nginx-configuration //确认configmap名称 \- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services \- --udp-services-configmap=$(POD_NAMESPACE)/udp-services \- --publish-service=$(POD_NAMESPACE)/ingress-nginx \- --annotations-prefix=nginx.ingress.kubernetes.io
编辑configmap:
kubectl edit cm -n ingress-nginx nginx-configuration
kind: ConfigMap apiVersion: v1 //增加以下内容 data: client-header-buffer-size: 20m compute-full-forwarded-for: "true" forwarded-for-header: X-Forwarded-For large-client-header-buffers: 4 1024k proxy-body-size: 50m //配置上传文件限制 use-forwarded-headers: "true" // metadata: name: nginx-ingress-controller namespace: default labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx
2、针对单个服务的ingress配置
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-body-size: 1024m
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
3、老版本配置:
nginx.org/client-max-body-size: 1024m
官方链接:ConfigMap - NGINX Ingress Controller
原文:https://blog.csdn.net/ligaoman521/article/details/121775593
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭