解决k8s故障,eureka处于unknow的问题
//pod Unknown状态,开始强制删除eureka-server-node-0,eureka-server-node-1等,强制删除不了
[root@fp158 sts]# kubectl delete pods eureka-server-node-0 --grace-period=0 --force
//那就用kubectl scale扩展吧,发现也不行,后用 kubectl describe pod podname 查看发现标签有问题, 这是pod状态是pending
//同时采用在线编辑yaml,保存,本来强制删除,但是用--grace-period=0 --force 删除都删不了,也是第一回遇到,那就先用edit命令吧,
注意 不能只是kubectl edit pod podname形式。
[root@f158 sts]# kubectl edit sts eureka-server-node -o yaml --save-config //eureka-server-node是pod名
//覆盖某个node上的role标签
kubectl label nodes k2.node role=htt --overwrite
//查看显示某个node的标签
[root@f158 sts]# kubectl get nodes -o wide --show-labels | grep k2 //k2调度到的节点
//查看eureka-server-node
[root@f158 sts]# kubectl get pod -o wide | grep eureka-server-node
//进入pod查看
[root@f158 sts]# kubectl exec -ti ut-node-0 -- /bin/sh
# ping www.baidu.com //无反应,怀疑网络有问题,首先必然是calico, 然后上racher 管理平台上查看node的一些上报状态情况.
//同时在宿主机上进行了一系列操作
[root@fp-web-187 ~]# docker ps| grep calico-node //看看网络情况
[root@fp-web-187 ~]# docker ps -a | grep calico-node //查看未启动的,可恢复
[root@fp-web-187 ~]# systemctl restart calico-node //重启calico网络
[root@fp-web-187 ~]# systemctl restart kubectl //重启 k8s 节点
[root@fp-web-187 ~]# systemctl restart kube-proxy //重启代理
[root@fp-web-187 ~]# systemctl restart docker //重启pod
[root@fp-web-187 ~]# ip a //查ip,网卡情况
[root@fp-web-187 ~]# route -n //查看 tunl0(ip ip )情况
[root@fp-web-187 ~]# docker exec -it 973ad176419c /bin/bash //进入容器里面看一下,这时不能叫pod,因为pod可以有多个容器,我们进入的是当前的eureka容器
[root@fp-web-187 ~]# docker ps | grep eu //查看eureka,服务在线情况.
同时为方便查找出错误,配置在web浏览器查看
/usr/local/nginx/conf/extconf/eu.conf
server {
listen 80;
listen 443 ssl;
listen [::]:80;
listen [::]:443 ssl;
server_name a.b.com.cn;
#ssl on;
ssl_certificate ssl/server.pem;
ssl_certificate_key ssl/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
large_client_header_buffers 4 1m;
fastcgi_intercept_errors on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://eu;
proxy_connect_timeout 600s;
proxy_read_timeout 900s;
proxy_redirect off;
client_max_body_size 1000m;
}
}
主nginx.conf user weblogic;
worker_processes auto;
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log error;
pid logs/nginx.pid;
events {
worker_connections 65535;
accept_mutex off;
use epoll;
multi_accept on;
}
http {
#autoindex off;
server_tokens off;
include mime.types;
include /usr/local/nginx/conf/extconf/*.conf;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" "$request_body" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'$upstream_addr'
' $upstream_response_time';
access_log /var/log/nginx/access.log main;
fastcgi_intercept_errors on;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on; upstream bc {
server 10.121.51.11:38761 max_fails=3 fail_timeout=120s; //master ip
server 10.121.51.12:38761 max_fails=3 fail_timeout=120s; //master2 ip
keepalive 32;
keepalive_timeout 120s;
}
} [root@fp-Nignx01 ~]# /usr/local/nginx/sbin/nginx -t
[root@fp-Nignx01 ~]# /usr/local/nginx/sbin/nginx -s reload
访问
http://a.b.com.cn/lastn //即可访问
配置eureka在web页面上访问,可以通过
1、查看暴露的端口
[root@fp-web-158 sts]# kubectl get svc -o wide | grep eu
eureka-server ClusterIP None <none> 8761/TCP 3y name=eureka-server-node
eureka-server-np NodePort 172.17.65.89 <none> 8761:38761/TCP 3y name=eureka-server-node
2、在域名里面进行相关的配置
upstream bc {
server 10.121.51.11:38761 max_fails=3 fail_timeout=120s; //master ip
keepalive 32;
keepalive_timeout 120s;
}
3、访问 http://a.b.com.cn/ (这个域名根据公司申请的域名设置二级域名即可)

//pod正常应该可以ping通eu
[root@f158 sts]# kubectl exec -ti ts-node-0 -- /bin/sh
# ping eureka-server-node-0.eureka-server
PING eureka-server-node-0.eureka-server.default.svc.cluster.local (172.17.94.145): 56 data bytes
64 bytes from 172.17.94.145: icmp_seq=0 ttl=62 time=0.273 ms
64 bytes from 172.17.94.145: icmp_seq=1 ttl=62 time=0.266 ms
64 bytes from 172.17.94.145: icmp_seq=2 ttl=62 time=0.310 ms
64 bytes from 172.17.94.145: icmp_seq=3 ttl=62 time=0.256 ms
64 bytes from 172.17.94.145: icmp_seq=4 ttl=62 time=0.308 ms
64 bytes from 172.17.94.145: icmp_seq=5 ttl=62 time=0.233 ms
64 bytes from 172.17.94.145: icmp_seq=6 ttl=62 time=0.507 ms
^C--- eureka-server-node-0.eureka-server.default.svc.cluster.local ping statistics ---
7 packets transmitted, 7 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.233/0.308/0.507/0.085 ms
解决k8s故障,eureka处于unknow的问题的更多相关文章
- 1个工具,助你提升K8S故障排查效率!
Kubernetes的故障排查一直困扰众多运维团队或DevOps,除了Kubernetes本身的复杂性之外,还有Kubernetes的工作负载是动态的原因.本文将介绍1个工具可以帮助你可视化K8S的网 ...
- 【转载】解决k8s中的长连接负载均衡问题
原文链接:一流铲屎官二流程序员[解决k8s中的长连接负载均衡问题] 长连接与短连接: 简介 长连接是指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测 ...
- [转帖]解决K8S 安装只有 一直提示:kernel:unregister_netdevice: waiting for eth0 to become free. Usage count = 1 的方法
Centos7 终端报Message from syslogd :kernel:unregister_netdevice https://www.jianshu.com/p/96d7e2cd9e99 ...
- 终于解决 k8s 集群中部署 nodelocaldns 的问题
自从开始在 kubernetes 集群中部署 nodelocaldns 以提高 dns 解析性能以来,一直被一个问题困扰,只要一部署 nodelocaldns ,在 coredns 中添加的 rewr ...
- 解决k8s出现pod服务一直处于ContainerCreating状态的问题的过程
参考于: https://blog.csdn.net/learner198461/article/details/78036854 https://liyang.pro/solve-k8s-pod-c ...
- 重记解决kube-dns故障一则---ceph惹的祸
上次,在同一个k8s集群里安装完ceph进行功能测试. 当测试完成之后,我停止了ceph的程序,再重新启动k8s集群. 结果,有一个应用就出问题了. 后来查出是因为防火墙里 Chain FORWARD ...
- 解决0RA-04031故障
1.客户反应报表数据很慢,简单查询5分钟都出不来. 2.登陆数据库服务器检查日志:Thu Mar 21 16:20:30 2013Errors in file /opt/oracle/diag/rdb ...
- (转)解决k8s集群提示docker login问题(同样适用于Rancher)
文章转自 https://blog.liv1020.com/ 参考文档:https://kubernetes.io/docs/concepts/containers/images/#configuri ...
- [报错解决] k8s 删除pv一直处于terminating 两种解决方法
第一种 直接到etcd中删除 1.将所有的etcd中的key值取到一个keys.yam里面,便于查询 ETCDCTL_API=3 etcdctl get "" --from-key ...
随机推荐
- 问题排查利器:Linux 原生跟踪工具 Ftrace 必知必会
本文地址:https://www.ebpf.top/post/ftrace_tools TLDR,建议收藏,需要时查阅. 如果你只是需要快速使用工具来进行问题排查,包括但不限于函数调用栈跟踪.函数调用 ...
- LGP7814题解
lmpp 教你对着样例得到做法.jpg 题意:给定一个长度为 $ n $ 的字符串 A,要求你构造一个字符串 B,使得 A 是 B 的子序列且 A 不是 B 的子串. 首先给出无解的判断方法: if( ...
- 使用Spring Data ElasticSearch+Jsoup操作集群数据存储
使用Spring Data ElasticSearch+Jsoup操作集群数据存储 1.使用Jsoup爬取京东商城的商品数据 1)获取商品名称.价格以及商品地址,并封装为一个Product对象,代码截 ...
- java中对集合操作的易错点01
今天用for循环遍历集合,对集合中满足条件的元素进行remove操作报错:ConcurrentModificationException 所以,在遍历集合进行增.删操作时,要使用迭代器的方式 publ ...
- python 发送GET请求
# #博客地址:https://blog.csdn.net/qq_36374896 # 特点:把数据拼接到请求路径的后面传递给服务器 # # 优点:速度快 # # 缺点:承载的数据量小,不安全 imp ...
- C#: .net序列化及反序列化 [XmlElement(“节点名称”)] [XmlAttribute(“节点属性”)] (下篇)
介绍 XML 序列化 .NET Framework 开发员指南 序列化是将对象转换为容易传输的格式的过程.例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间 ...
- FPGA设计流程
今天学习了FPGA设计流程的视频,我理解要做一个完整的FPGA系统,所要经历的步骤,先将它简单总结如下: 我在对上面的流程图进行解释: 第一:设计定义就是我们这个FPGA系统或者FPGA设计所要实现的 ...
- HTML-置换元素
我们都知道,行内元素不能够定义宽度和高度,但 img,input,button等标签作为行内元素却可以定义宽高,为什么呢?这就牵扯到了置换元素和非置换元素. 置换元素: w3c官方解释:"A ...
- Linux下使用压力测试工具stress
一:stress的安装 首先解压安装包到/usr/local/src/下 mv stress-1.0.4.tar.gz /usr/local/srctar -zxf stress-1.0.4.tar ...
- 什么情况下使用break关键字?什么情况下使用Continue关键字
return用于返回一个值给函数,或者直接使用,结束函数:break用于结束循环,即从循环中退出:continue用于结束当次循环,直接进行下次循环.