k8s解除NodePort端口限制
发表于|更新于|容器
|浏览量:
我自己写了一个 svc 的 yaml 文件,部署的时候报错,不在默认的范围内,默认范围是: 30000-32767
kubectl apply -f nginx-src.yaml
报错:
1 | The Service "nginx" is invalid: spec.ports[0].nodePort: Invalid value: 80: provided port is not in the valid range. The range of valid ports is 30000-32767 |
如果是 kubeadm 部署
修改配置文件 vim /etc/kubernetes/manifests/kube-apiserver.yaml
在启动参数里面添加如下一行
1 | - --service-node-port-range=1-65535 |
重启 kube-apiserver
1 | kubectl delete pod -n kube-system kube-apiserver-xxx |
文章作者: 张理坤
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
相关推荐
2025-11-01
Kubernetes之master高可用方案
之前一直用使用的负载方案是搭建一台负载均衡器,可以是 haproxy 或 nginx 或 lvs,来将多个 master 节点的 6443 端口做个负载均衡,但是考虑到负载均衡也需要高可用,所以会引入类似 keepalived 的方案来解决问题。偶然看到了 kubeasz 这个开源项目,宣称解决了 master 高可用问题,部署了一遍发现并没有额外搭建负载均衡器,研究了一下,发现了另一种思路。 使用额外的负载均衡来做高可用这种就是比较容易想到的一种方案,比如 3 个 master 节点,前面有一台负载均衡(nginx、haproxy、lvs)等,但是负载均衡本身就是一个单点故障,所以一般来说还需要另一台负载均衡,通过 keepalived 来实现 VIP 的切换使用Keepalived来实现Nginx高可用 使用Nginx做负载均衡使用HAproxy做负载均衡使用LVS做负载均衡vim nginx.conf 在文件最后添加 123stream { include stream.conf;} 然后 vim /etc/nginx/stream.conf ...
2025-02-14
在Kubernetes中部署nacos 2.3.2
其他版本参考文档 在Kubernetes中部署nacos 2.1.0 nacos 官方文档写的太敷衍了,很多东西都需要自己去找,比如容器运行的时候,必须的环境变量都没有写全,遇到的一些坑整理了出来。 新版的变化鉴权逻辑优化官方说明:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html 2.2.2 版本之前的 Nacos 默认控制台,无论服务端是否开启鉴权,都会存在一个登录页;这导致很多用户被误导认为 Nacos 默认是存在鉴权的。在社区安全工程师的建议下,Nacos 自 2.2.2 版本开始,在未开启鉴权时,默认控制台将不需要登录即可访问,同时在控制台中给予提示,提醒用户当前集群未开启鉴权。 部分环境变量默认值删除nacos 新版(2.2.1 之后删除了默认值) 可以查看 /home/nacos/conf/application.properties 这个文件,如果有环境变量名不确认也可以到这个文件里查询: 比如: server.port=${NACOS_APPLICATION_PORT:8848} NACOS_APPLICA...
2026-03-28
开源分布式存储工具longhorn部署
k8s 如果需要用到存储,对于云产品一般都是采用云厂商提供的存储驱动,自建机房简单一点的会采用 nfs,nfs 有以下问题: 高可用性问题,一般都是单台机器在跑,高可用完全依靠物理机器的 RAID,非常不云原生 性能问题,NFS 本身性能不算好,外加一个集群都在使用,网卡速度是个瓶颈longhorn 是个开源的存储引擎,简单来说就是它把 k8s 每个节点的磁盘空间搜集起来,组成一个大池子,然后分配个各个 pod 使用。并通过多副本的方式做高可用。longhorn 好像是 openSUSE 家的吧,和 rancher 一个公司。 官方文档官方安装说明:https://longhorn.io/docs/1.6.1/deploy/install/install-with-kubectl/ 官方安装要求:https://longhorn.io/docs/1.6.1/deploy/install/#installation-requirements 官方的检查依赖项脚本: 1curl -fsSL https://raw.githubusercontent.com/longhorn/l...
2026-03-28
kubernetes节点维护流程
节点设置为 SchedulingDisabled 其实就是打上污点 node.kubernetes.io/unschedulable:NoSchedule 命令 说明 kubectl cordon 将 node 设置为 SchedulingDisabled, 不允许新的 pod 调度上来, 旧的 pod 不受影响 kubectl drain 先驱逐 node 上的 pod, k8s 会在其他节点重新创建, 然后将节点设置为 SchedulingDisabled kubectl uncordon 恢复调度, 删除 SchedulingDisabled 污点 操作流程常规操作将节点上现有的 pod 驱逐, 不追求优雅 1kubectl drain <node> --delete-local-data=true --ignore-daemonsets=true --force 操作完毕后, 将节点恢复调度 1kubectl uncordon <node> 对集群无影响的操作先针对节点执行 1kubectl cordon &l...

2026-03-28
Java程序被停止前自动dump内存快照
线上业务偶尔会出现重启现象,为了排查这个问题,决定在 OOM 的时候自动进行 dump 内存快照用于分析 针对 JVM OOM 的情况OOM 全称 “Out Of Memory”,表示内存耗尽。当 JVM 因为没有足够的内存来为对象分配空间,并且垃圾回收器也已经没有空间可回收时,就会抛出这个错误,解决 OOM 问题的一个思路: 假设发生 OOM 了,必然说明系统中某个区域的对象太多了,塞满了那个区域,而且一定是无法回收掉那些对象,最终才会导致内存溢出的,首先就得知道到底是什么对象太多了导致 OOM ,就必须得有一份 JVM 发生 OOM 时的 dump 内存快照有了 dump 内存快照,就可以用 MAT 之类的工具,或者在线工具来分析:https://memory.console.heapdump.cn/JVM 在发生 OOM 的时候并不是直接挂掉的, 而是在 OOM 之前会尽量去 GC 腾出来一些内存空间,如果 GC 后还是没有空间,放不下对象, 才会触发内存溢出的。JVM 给我们提供了一些参数可以在发生 OOM 的时候进行自动 dump 内存快照。: -XX:+HeapDu...
2026-03-28
Kubernetes的3中探针readinessProbe、livenessProbe和startupProbe
探针K8S 提供了 3 种探针 startupProbe 启动检查(1.16 版本新增)livenessProbe 存活检查readinessProbe 就绪检查 startupProbekubernetes 1.16 版本新增功能,用于判断容器内应用程序是否已经启动,如果配置了 startuprobe,就会先禁用其他的探测,直到它成功为止,成功后将不再进行探测。 1234567891011startupProbe: # 健康检查方式:[readinessProbe,livenessProbe,StartupProbe] failureThreshold: 3 # 检测失败3次表示未就绪 httpGet: # 请求方式 path: /health # 请求路径 port: 8080 # 请求端口 scheme: HTTP # 请求协议 initi...
评论
公告
此博客为我记录运维工作总结所用,供网友阅读参考,如有侵权,请通知我,我会核实后进行处理。
欢迎加入技术交流群:
