解决安装了k3s以后80和443端口被占用的问题

这篇具有很好参考价值的文章主要介绍了解决安装了k3s以后80和443端口被占用的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

今天服务器安装了一个k3s,该服务器的其他服务就都访问不了了,查了一下是因为k3s默认会安装traefik来替代k8s的ingress来代理流量,此时默认情况会占据系统的 80 和 443 端口。
并且很奇怪的是lsof -i:80 都查不到traefik这个端口。因为通过iptables来转发流量所以lsof不会找到该应用,因为接管80/443端口的是service而不是traefik这个pod

为啥k3s安装了以后80和443端口会被占用

k3s在默认情况下会安装Traefik作为替代Kubernetes Ingress的默认代理器来处理流量。Traefik是一个流行的反向代理和负载均衡器,它可以通过路由规则将流量转发到相应的后端服务。

在k3s中,Traefik会监听系统的80端口和443端口,并将流量路由到相应的服务。这意味着在k3s集群中,如果您已经有其他应用程序在使用这些端口,它们将被Traefik占用。如果您希望使用其他端口或禁用Traefik的默认配置,您可以进行相应的配置更改。

请注意,具体的配置方式可能因k3s的版本和您的部署环境而有所不同。建议查阅k3s的文档或社区资源以获取更详细的配置信息和操作指南。

如果您使用iptables来转发流量,并且将80/443端口的流量接管给了服务(Service),而不是直接给Traefik Pod,那么确实lsof命令可能无法直接找到Traefik应用程序。

为啥lsof命令可能无法显示Traefik的进程

lsof(List Open Files)是一个用于列出系统中打开文件的工具,它可以显示正在使用某个端口的进程。然而,由于Traefik在这种情况下是通过Kubernetes Service进行流量转发的,它并不直接在80/443端口上监听连接,而是由iptables规则将流量转发到相应的Service。因此,lsof命令可能无法显示Traefik的进程。

要查看Traefik的相关信息,您可以尝试以下方法:

  1. 使用Kubernetes命令行工具(kubectl)查看Traefik的Pod和相关服务:

    kubectl get pods --all-namespaces | grep traefik
    kubectl get services --all-namespaces | grep traefik
    

    这将显示与Traefik相关的Pod和服务的详细信息,包括名称、命名空间等。

  2. 检查Traefik的日志输出。您可以使用以下命令获取Traefik Pod的日志:

    kubectl logs <traefik-pod-name> -n <namespace>
    

    替换<traefik-pod-name>为您的Traefik Pod的名称,<namespace>为Pod所在的命名空间。

通过查看Traefik Pod的日志,您应该能够获取到有关Traefik的详细信息和流量转发的日志记录。

请注意,具体的命令和操作可能因您的部署环境和配置而有所不同。以上提供的是一般的指导,建议根据您的实际情况进行相应的调整和查询。

如何禁用Traefik

参考这个解决方案:https://github.com/k3s-io/k3s/issues/1160#issuecomment-1115803175
以下是在初始设置期间禁用Traefik所需执行的步骤:

  1. 删除Traefik的Helm Chart资源:kubectl -n kube-system delete helmcharts.helm.cattle.io traefik
  2. 停止k3s服务:sudo service k3s stop
  3. 编辑服务文件:sudo nano /etc/systemd/system/k3s.service,并在ExecStart行中添加以下内容:
    –no-deploy traefik
    k3s.service文件:
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
Wants=network-online.target
After=network-online.target

[Install]
WantedBy=multi-user.target

[Service]
Type=notify
EnvironmentFile=-/etc/default/%N
EnvironmentFile=-/etc/sysconfig/%N
EnvironmentFile=-/etc/systemd/system/k3s.service.env
KillMode=process
Delegate=yes
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Restart=always
RestartSec=5s
ExecStartPre=/bin/sh -xc '! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service'
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s \
    server \
    --disable=traefik \
  1. 重新加载服务文件:sudo systemctl daemon-reload
  2. 从自动部署文件夹中删除清单文件:sudo rm /var/lib/rancher/k3s/server/manifests/traefik.yaml
  3. 启动k3s服务:sudo service k3s start

以上步骤将禁用并删除Traefik。请注意,执行这些步骤可能会对您的系统产生影响,请确保在进行更改之前备份重要数据,并确保您理解所采取操作的后果。文章来源地址https://www.toymoban.com/news/detail-667297.html

到了这里,关于解决安装了k3s以后80和443端口被占用的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【K3s】第1篇 K3s入门级介绍及架构详解

    https://docs.k3s.io/zh/architecture K3s 是一个轻量级的 Kubernetes 发行版,它针对边缘计算、物联网等场景进行了高度优化。K3s 有以下增强功能: 打包为单个二进制文件。 使用基于 sqlite3 的轻量级存储后端作为默认存储机制。同时支持使用 etcd3、MySQL 和 PostgreSQL 作为存储机制。 封装

    2023年04月26日
    浏览(48)
  • K3S+Rancher

    查看系统版本 查看系统命令集 这是我系统配置情况 服务器清单 名称 IP 配置 系统 主-服务 192.168.23.171 4Cpu8G Ubuntu 20.04.6 副主-服务 192.168.23.103 4Cpu8G Ubuntu 20.04.6 代理-服务 192.168.23.248 4Cpu8G Ubuntu 20.04.6 外置均衡代理 192.168.23.205 4Cpu8G Ubuntu 20.04.6 修改/etc/apt/sources.list文件 修改主机服

    2024年01月18日
    浏览(42)
  • 玩转 PI 系列-如何在 Rockchip Arm 开发板上安装 Docker Tailscale K3s Cilium?

    618 买了几个便宜的 Purple PI OH 开发板 (500 块多一点买了 3 个🤑), 这个开发板类似树莓派,是基于 Rockchip(瑞芯微) 的 rx3566 arm64 芯片。如下: 买来是用作家庭服务器或家庭实验室的。主要考虑就是: 便宜 可玩性高 功耗低 散热小,运行安静 Arm64 现在生态还凑活 其配置如下

    2024年02月17日
    浏览(117)
  • kubernetes快速入门之K3S

    Kubernetes 是一个开源的容器编排引擎和容器集群管理工具,用来对容器化应用进行自动化部署、 扩缩和管理。 Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有8个字符。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在 Google 大

    2024年03月10日
    浏览(95)
  • docker+k3s部署GZCTF

    k3s官网 gzctf官方部署文档地址 gzctf官网 name ip gzctfweb 192.168.8.100 k3s-master 192.168.8.101 k3s-slave 192.168.8.102 1、 k3s-master节点执行: systemctl enable --now k3s  # k3sserver自启 注意:在安装slave节点时,先在master节点用如下命令查看token cat /var/lib/rancher/k3s/server/node-token 2、 k3s-slave节点执行:

    2024年02月08日
    浏览(76)
  • k3s部署全过程kuboard管理界面

    # 安装k3s博客 ## 准备工作 1.准备俩台可以相互访问的服务器 2.需要先安装dockers 3.以下教程将使用VsCode+ssh插件来进行插件图 点击打开ssh操作界面 进入需要设置master节点的服务器中然后执行docker命令启动一个autok3s的容器并且需要将docker映射进去 注:如果选择使用docker做为k3s的

    2024年02月06日
    浏览(51)
  • 完美解决443端口被vmware占用的问题

    因为某些原因需要使用443端口,但服务总是启动不了,提示443端口被占用,于是查询了一下, win+R→cmd→netstat -aon | findstr “443”,找到443端口对应的进程PID ctrl+alt+delete打开任务管理器,在详细信息里找到PID对应的进程名,发现是vmware-hostd.exe 直接结束可以暂时解决问题,结

    2024年01月16日
    浏览(37)
  • 关于Windows 443端口被占用问题的解决

    1、打开 cmd 命令行窗口,输入netstat -ano 回车,如图: 图中可以看到某程序正在占用 443 端口(左边一列 0.0.0.0:443,0.0.0.0 代表的地址也就是本地,冒号后面的443就是占用的端口),且可以看到它的 进程PID 为7236(最右边一列对应的) 或者执行命令 netstat -aon|findstr 443 ,找到占

    2024年02月11日
    浏览(45)
  • K3S和 K8S 有何不同?

    K3s 是CNCF 认证的 Kubernetes 发行版和Sandbox项目,专为低资源环境而设计。由 Rancher Labs 维护着 K3s。 总的来说,K3s 提供了一个开销较小的 Kubernetes 集群设置,但仍然集成了 K8s 的大部分架构和功能。 以下是 K3s 成为轻量级发行版的原因: 打包为具有最小外部依赖性的单个二进制

    2023年04月09日
    浏览(42)
  • k3s or RKE2 helm安装报错dial tcp 127.0.0.1:8080: connect: connection refused

    1.报错: Error: INSTALLATION FAILED: Kubernetes cluster unreachable: Get \\\"http://127.0.0.1:8080/version\\\": dial tcp 127.0.0.1:8080: connect: connection refused 2.问题原因:         1.因为helm默认使用k8s的配置文件,默认位置为 ~/.kube/config.yml,因为是k3s所以配置文件要使用环境变量来指定: export KUBECONFIG=/etc/r

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包