当前位置: 首页 > news >正文

修改本地hosts文件及外部访问机器本地hosts文件后,rancher UI网站仍然不能访问

原因排查

kubectl get svc

# 输出:
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   4d17h

kubectl get svc -A

# 输出:
NAMESPACE                         NAME                                 TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)                      AGE
cattle-fleet-system               gitjob                               ClusterIP      10.111.178.163   <none>           80/TCP                       18h
cattle-provisioning-capi-system   capi-webhook-service                 ClusterIP      10.109.173.131   <none>           443/TCP                      4d16h
cattle-system                     rancher                              ClusterIP      10.108.22.229    <none>           80/TCP,443/TCP               18h
cattle-system                     rancher-webhook                      ClusterIP      10.110.157.18    <none>           443/TCP                      18h
cert-manager                      cert-manager                         ClusterIP      10.97.116.89     <none>           9402/TCP                     4d17h
cert-manager                      cert-manager-webhook                 ClusterIP      10.99.135.71     <none>           443/TCP                      4d17h
default                           kubernetes                           ClusterIP      10.96.0.1        <none>           443/TCP                      4d17h
ingress-nginx                     ingress-nginx-controller             LoadBalancer   10.102.90.59     192.168.21.157   80:31759/TCP,443:32560/TCP   4d17h
ingress-nginx                     ingress-nginx-controller-admission   ClusterIP      10.110.70.3      <none>           443/TCP                      4d17h
kube-system                       kube-dns                             ClusterIP      10.96.0.10       <none>           53/UDP,53/TCP,9153/TCP       4d17h

kubectl get ingress -A

# 输出:
NAMESPACE       NAME      CLASS    HOSTS             ADDRESS   PORTS     AGE
cattle-system   rancher   <none>   rancher.xxx.com             80, 443   18h

kubectl describe ingress -A

# 输出:
Name:             rancher
Labels:           app=rancherapp.kubernetes.io/managed-by=Helmchart=rancher-2.8.5heritage=Helmrelease=rancher
Namespace:        cattle-system
Address:          
Ingress Class:    <none>
Default backend:  <default>
TLS:tls-rancher-ingress terminates rancher.xxx.com
Rules:Host             Path  Backends----             ----  --------rancher.xxx.com  /   rancher:80 (10.244.167.180:80,10.244.167.181:80,10.244.167.182:80)
Annotations:       meta.helm.sh/release-name: ranchermeta.helm.sh/release-namespace: cattle-systemnginx.ingress.kubernetes.io/proxy-connect-timeout: 30nginx.ingress.kubernetes.io/proxy-read-timeout: 1800nginx.ingress.kubernetes.io/proxy-send-timeout: 1800
Events:            <none>

ls

查看相关文件(看不看都行)

由kubectl get ingress -A显示可知class为none且address也没有被分配地址导致的网页打不开(我查看的例子也有同上显示却能访问Racher的,无奈我学艺不精,小白一个,adrress既然动态分配不到,那我只能指定一个啦)

此时尝试创建一个ingress class文件,虽然文件创建成功,但是再次查看kubectl get ingress -A发现class仍然是,因此默认的class最好在rancher install之前安装。

# 创建/编辑ingress class
vim nginx-ingress-set-default.yml# 文件内容
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:labels:app.kubernetes.io/component: controllername: nginx-ingressannotations:ingressclass.kubernetes.io/is-default-class: "true"
spec:controller: k8s.io/ingress-nginx# 应用
kubectl  apply -f nginx-ingress-set-default.yml 
# ingressclass.networking.k8s.io/nginx-ingress created# 查看
kubectl get ingress -A
# NAMESPACE       NAME      CLASS    HOSTS             ADDRESS   PORTS     AGE
# cattle-system   rancher   <none>   rancher.xxx.com             80, 443   18h

已经安装完rancher并且不想再重新安装,可以修改下rancher配置

  • 不在原目录下操作,进入tmp目录cd /tmp/
  • 查看下tmp目录是否有文件,可以不看ls,但最好看下,万一失败还可以恢复原来的tmp文件删除冗余文件
  • 查看kubectl get ingress/rancher -n cattle-system,发现CLASS是,ADDRESS为空
  • 获取 k8s集群cattle-system 命名空间下 rancher 的 Ingress 资源的详细信息,并以 YAML 格式输出,kubectl get ingress/rancher -n cattle-system -o yaml
    # 输出
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:annotations:meta.helm.sh/release-name: ranchermeta.helm.sh/release-namespace: cattle-systemnginx.ingress.kubernetes.io/proxy-connect-timeout: "30"nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"creationTimestamp: "2024-07-29T08:54:02Z"generation: 1labels:app: rancherapp.kubernetes.io/managed-by: Helmchart: rancher-2.8.5heritage: Helmrelease: ranchername: ranchernamespace: cattle-systemresourceVersion: "1370584"uid: b1fe8833-6c77-4969-aa11-e2be56d719c5
    spec:# 这里增加一行rules:- host: rancher.xxx.comhttp:paths:- backend:service:name: rancherport:number: 80path: /pathType: ImplementationSpecifictls:- hosts:- rancher.xxx.comsecretName: tls-rancher-ingress
    status:loadBalancer: {}
    
  • 查看rancher 的 Ingress 资源并将其重定向到/tmp/test.yaml 文件kubectl get ingress/rancher -n cattle-system -o yaml > /tmp/test.yaml
  • 编辑/tmp/test.yaml
    [...]uid: b1fe8833-6c77-4969-aa11-e2be56d719c5
    spec:# 增加 ingressClassName: nginx-ingressingressClassName: nginx-ingressrules:- host: rancher.lxq.comhttp:paths:- backend:service:name: rancherport:number: 80path: /pathType: ImplementationSpecific[...]
    
  • 应用/tmp/test.yaml kubectl apply -f test.yaml -n cattle-system
    # 我这里虽然报错但是经过下方查看命令发现ingress相关已经更新,经测试Rancher UI成功链接kubectl apply -f test.yaml -n cattle-system 
    # Error from server (Conflict): error when applying patch:
    # {"metadata":{"generation":1,"resourceVersion":"1370584"}}
    # to:
    # Resource: "networking.k8s.io/v1, Resource=ingresses", GroupVersionKind: "networking.k8s.io/v1, Kind=Ingress"
    # Name: "rancher", Namespace: "cattle-system"
    # for: "test.yaml": error when patching "test.yaml": Operation cannot be fulfilled on ingresses.networking.k8s.io "rancher": the object has been modified; please apply your changes to the latest version and try again# 查看
    kubectl get ingress -A
    # NAMESPACE       NAME      CLASS           HOSTS             ADDRESS          PORTS     AGE
    # cattle-system   rancher   nginx-ingress   rancher.xxx.com   192.168.21.157   80, 443   18h
    
  • Error from server (Conflict): error when applying patch: …
    the object has been modified; please apply your changes to the latest version and try again这个错误表明你正在尝试应用的配置已经被修改过了。kubectl apply 通过资源的 generation 和 resourceVersion 来确定资源的当前状态。如果这些值与你的配置文件中的不匹配,Kubernetes 就会阻止应用,以防止潜在的配置冲突。

从提供的输出和错误信息来看,这里发生了两件事情:

  1. 第一次执行 kubectl apply -f test.yaml 时的警告:

    Warning: resource ingresses/rancher is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply.
    

    这个警告说明,你正在尝试使用 kubectl apply 命令应用一个没有 kubectl.kubernetes.io/last-applied-configuration 注解的资源。这个注解是 kubectl apply 用来确定资源是否被修改过的关键信息。如果资源没有这个注解,kubectl apply 将自动添加它,并警告用户。

  2. 后续执行 kubectl apply -f test.yaml -n cattle-system 时的错误:

    Error from server (Conflict): error when applying patch: ...
    the object has been modified; please apply your changes to the latest version and try again
    

    这个错误表明你正在尝试应用的配置已经被修改过了。kubectl apply 通过资源的 generationresourceVersion 来确定资源的当前状态。如果这些值与你的配置文件中的不匹配,Kubernetes 就会阻止应用,以防止潜在的配置冲突。

    解决步骤:

    • 使用 kubectl apply 时,确保你使用的是最新的配置文件。如果你手动编辑了资源或通过其他方式修改了它,你需要重新获取最新的配置,然后再应用。

    • 如果你确定配置文件是最新的,或者你想强制更新资源,你可以使用 kubectl replace -f test.yaml -n cattle-system 命令替代 kubectl apply。这个命令会替换现有的资源而不是尝试应用差异。

    • 如果你收到冲突错误,并且想要解决它,你可以先获取当前的资源状态,然后再次应用你的配置:

      kubectl get ingress rancher -o yaml -n cattle-system > test.yaml
      kubectl apply -f test.yaml -n cattle-system
      
    • 检查资源是否正确应用

      kubectl get ingress -A
      

相关文章:

修改本地hosts文件及外部访问机器本地hosts文件后,rancher UI网站仍然不能访问

原因排查 kubectl get svc # 输出&#xff1a; NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4d17hkubectl get svc -A # 输出&#xff1a; NAMESPACE …...

西北潮榆林范儿,新榆林首个360°沉浸式剧场发布会闪耀亮相

这是一场城市更迭的未来大赏&#xff0c;也是一场商业蝶变的复合对话 8月3日&#xff0c;朗阁集团商业品牌发布会在榆林银杏熙悦酒店隆重启幕。朗阁集团董事长杨志成携众多集团领导出席&#xff1b;多家主流媒体代表联袂参加&#xff1b;喜茶、中影时光国际影城、汉堡王、鲍师傅…...

如何创建响应式移动端网页设计?最佳实践详解

移动端网页设计是一个耗时而复杂的过程开发&#xff0c;包括UI设计、UX设计、检测、发布、改进、维护和持续的错误修复。通过学习这篇文章&#xff0c;你将掌握什么是移动端网页&#xff0c;如何制作移动端网页&#xff0c;以及设计网页的技巧。 什么是移动端网页&#xff1f;…...

Python 如何进行Web抓取(BeautifulSoup, Scrapy)

Web抓取&#xff08;Web Scraping&#xff09;是一种从网站提取数据的技术。Python有许多用于Web抓取的库&#xff0c;其中最常用的是BeautifulSoup和Scrapy。 BeautifulSoup BeautifulSoup是一个用于解析HTML和XML文档的Python库&#xff0c;适合处理简单的Web抓取任务。它将…...

白骑士的PyCharm教学进阶篇 2.5 数据库连接与管理

系列目录 上一篇&#xff1a;白骑士的PyCharm教学进阶篇 2.4 Django开发支持 在Web开发中&#xff0c;数据库是必不可少的部分。PyCharm不仅是一款功能强大的IDE&#xff0c;还提供了丰富的数据库连接和管理工具&#xff0c;使开发者可以更方便地浏览和操作数据库。本篇将详细…...

(五)activiti-modeler 编辑器初步优化

最终效果&#xff1a; 1..首先去掉顶部的logo&#xff0c;没什么用&#xff0c;还占用空间。 修改modeler.html文件&#xff0c;添加样式&#xff1a; <style type"text/css"> #main-header{display: none; } #main{padding: 0px; } </style> 2.左边组…...

(学习总结12)C++类和对象3

C类和对象3 一、初始化列表二、类型转换三、static成员四、友元五、内部类六、匿名对象 以下代码环境在 VS2022。 一、初始化列表 之前我们实现构造函数时&#xff0c;初始化成员变量主要使用函数体内赋值&#xff0c;构造函数初始化还有⼀种方式&#xff0c;就是初始化列表&a…...

docxtpl,一个强大的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个强大的 Python 库 - docxtpl。 项目地址&#xff1a;https://docxtpl.readthedocs.io/en/latest/ 在日常工作中&#xff0c;自动生成和处理 Word 文档是一个常见需求。doc…...

捷途山海T2:超长续航,节能环保的驾驶新星

在当今的汽车市场中&#xff0c;消费者的购车选择日趋多样化&#xff0c;不再仅限于传统的燃油车。随着环保理念的深入人心以及人们对用车成本的日益关注&#xff0c;像捷途山海T2这样配备高效混动系统的车型逐渐受到大众的青睐。 捷途山海T2&#xff0c;以其杰出的节能性、强劲…...

[Day 45] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈的可擴展性挑戰 概述 區塊鏈技術在過去幾年中取得了顯著的進展&#xff0c;其去中心化、透明和安全的特性使其在金融、供應鏈管理、醫療等領域得到了廣泛應用。然而&#xff0c;區塊鏈技術的一個重大挑戰是其可擴展性。可擴展性是指系統能夠有效處理日益增長的數據和用…...

白骑士的PyCharm教学实战项目篇 4.3 自动化测试与持续集成

系列目录 上一篇&#xff1a; 在现代软件开发过程中&#xff0c;自动化测试与持续集成&#xff08;CI&#xff09;是确保代码质量和快速交付的关键环节。PyCharm作为一款强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;为自动化测试和持续集成提供了全面的支持。本…...

权限模块开发+权限与角色关联(完整CRUD)

文章目录 &#x1f31e; Sun Frame&#xff1a;SpringBoot 的轻量级开发框架&#xff08;个人开源项目推荐&#xff09;&#x1f31f; 亮点功能&#x1f4e6; spring cloud模块概览常用工具 &#x1f517; 更多信息1.easycode生成代码1.配置2.AuthPermissionDao.java剪切到mapp…...

llama神经网络的结构,llama-3-8b.layers=32 llama-3-70b.layers=80; 2000汉字举例说明

目录 llama-3-8b.layers=32 llama-3-70b.layers=80 llama神经网络的结构 Llama神经网络结构示例 示例中的输入输出大小 实际举例说明2000个汉字文本数据集 初始化词嵌入矩阵 1. 输入层 2. 嵌入层 3. 卷积层 4. 全连接层 llama-3-8b.layers=32 llama-3-70b.laye…...

单细胞数据怎么表现genes mRNA表达的热图?

愿武艺晴小朋友一定得每天都开心 #热图 library("ComplexHeatmap") exp <- AverageExpression(subset(fasting_memory, Celltype %in% c("Pre-B")), layer = "data", #即CPM值 features …...

Java聚合快递对接云洋系统小程序源码

&#x1f680;【物流新纪元】聚合快递如何无缝对接云洋系统&#xff0c;效率飙升秘籍大公开&#xff01;✨ &#x1f50d; 开篇揭秘&#xff1a;聚合快递的魅力所在 Hey小伙伴们&#xff0c;你是否还在为多家快递公司账号管理繁琐、订单处理效率低下而头疼&#xff1f;&#…...

MySQL——数据表的基本操作(三)修改数据表

有时候&#xff0c;希望对表中的某些信息进行修改&#xff0c;这时就需要修改数据表。所谓修改数据表指的是修改数据库中已经存在的数据表结构&#xff0c;比如&#xff0c;修改表名、修改字段名、修改字段的数据类型等。在 MySQL中&#xff0c;修改数据表的操作都是使用 ALTER…...

医学图像分割的基准:TransUnet(用于医学图像分割的Transformer编码器)器官分割

1、 TransUnet 介绍 TransUnet是一种用于医学图像分割的深度学习模型。它是基于Transformer模型的图像分割方法&#xff0c;由AI研究公司Hugging Face在2021年提出。 医学图像分割是一项重要的任务&#xff0c;旨在将医学图像中的不同结构和区域分离出来&#xff0c;以便医生可…...

java-swing编写学生成绩查询管理系统

本文是本人大二上实训项目-学生成绩查询管理系统&#xff0c;采用本项目使用Java、MySQL技术。界面框架由Java Swing搭建&#xff0c;用JDBC实现Java与MySQL的连接。 本项目适合初学java和mysql的同学&#xff0c;来做一些小项目来提升自己&#xff0c;因为兴趣所以想要做去尝…...

volatile浅解

volatile修饰的变量有两个特点 线程中修改了自己工作内存中的副本后&#xff0c;立即将其刷新到主内存工作内存中每次读取共享变量时&#xff0c;都会去主内存中重新读取&#xff0c;然后拷贝到工作内存 内存 -> CPU Cache -> CPU 如果没有volatile那么就会继续读取缓存…...

世媒讯带您了解什么是媒体邀约

什么是媒体邀约&#xff1f;其实媒体邀约是一种公关策略&#xff0c;旨在通过邀请媒体记者和编辑参加特定的活动、发布会或其他重要事件&#xff0c;以确保这些活动能够得到广泛的报道和关注。通过这种方式&#xff0c;企业和组织希望能够传达重要信息&#xff0c;提高品牌知名…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...