热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FAQ宝典之常见问题排查与修复方法

faq,宝典,之,常见问题,排

一、服务/容器

1、为什么我只能编辑容器的名称?

Docker容器在创建之后就不可更改了。唯一可更改的内容是我们要存储的不属于Docker容器本身的那一部分数据。无论是停止、启动或是重新启动,它始终在使用相同的容器。如需改变任何内容都需要删除或重新创建一个容器。

你可以克隆,即选择已存在的容器,并基于已有容器的配置提前在添加服务界面中填入所有要设置的内容,如果你忘记填入某项内容,可以通过克隆来改变它之后删除旧的容器。

2、service-link的容器/服务在Rancher中是如何工作的?

在Docker中,关联容器(在docker run中使用--link)的ID和IP地址会出现在容器的/etc/hosts中。在Rancher中,我们不需要更改容器的/etc/hosts文件,而是通过运行一个内部DNS服务器来关联容器,DNS服务器会返回给我们正确的IP。

3、不能通过Rancher的界面打开命令行或查看日志,如何去访问容器的命令行和日志?

Agent主机有可能会暴露在公网上,Agent上接受到的访问容器命令行或者日志的请求是不可信的。Rancher Server中发出的请求包括一个JWT(JSON Web Token),JWT是由服务器签名并且可由Agent校验的,Agent可以判断出请求是否

来自服务器,JWT中包括了有效期限,有效期为5分钟。这个有效期可以防止它被长时间使用。如果JWT被拦截而且没有用SSL时,这一点尤为重要。

如果你运行docker logs -f (rancher-agent名称或ID)。日志会显示令牌过期的信息,随后检查Rancher Server主机和Rancher Agent主机的时钟是否同步。

4、在哪里可以看到我的服务日志?

在服务的详细页中,我们提供了一个服务日志的页签日志。在日志页签中,列出了和服务相关的所有事件,包括时间戳和事件相关描述,这些日志将会保留24小时。

5、RANCHER SERVER 点击WEB shell屏幕白屏

如果RANCHER SERVER 运行在V1.6.2版本,点击WEB shell出现白屏,这是UI上的一个BUG,请选择升级server服务。

二、跨主机通信

如果容器运行在不同主机上,不能够ping通彼此,可能是由一些常见的问题引起的。

1、如何检查跨主机通信是否正常?

在应用->基础设施中,检查 healthcheck 应用的状态。如果是active跨主机通信就是正常的。

手动测试,你可以进入任何一个容器中,去ping另一个容器的内部IP。在主机页面中可能会隐藏掉基础设施的容器,如需查看点击“显示系统容器”的复选框。

2、UI中显示的主机IP是否正确?

有时,Docker网桥的IP地址会被错误的作为了主机IP,而并没有正确的选择真实的主机IP。这个错误的IP通常是172.17.42.1或以172.17.x.x开头的IP。如果是这种情况,在使用docker run命令添加主机时,请用真实主机的IP地址来配置CATTLE_AGENT_IP环境变量。

sudo docker run -d -e CATTLE_AGENT_IP= --privileged \ -v /var/run/docker.sock:/var/run/docker.sock \ rancher/agent:v0.8.2 http://SERVER_IP:8080/v1/scripts/xxxx

3、Rancher的默认子网(10.42.0.0/16)在我的网络环境中已经被使用或禁止使用,我应该怎么去更改这个子网?

Rancher Overlay网络默认使用的子网是10.42.0.0/16。如果这个子网已经被使用,你将需要更改Rancher网络中使用的默认子网。你要确保基础设施服务里的Network组件中使用着合适的子网。这个子网定义在该服务的rancher-compose.yml文件中的default_network里。

要更改Rancher的IPsec或VXLAN网络驱动,你将需要在环境模版中修改网络基础设施服务的配置。创建新环境模板或编辑现有环境模板时,可以通过单击编辑来配置网络基础结构服务的配置。在编辑页面中,选择配置选项>子网输入不同子网,点击配置。在任何新环境中将使用环境模板更新后的子网,编辑已经有的环境模板不会更改现在已有环境的子网。

这个实例是通过升级网络驱动的rancher-compose.yml文件去改变子网为10.32.0.0/16。

ipsec: network_driver: name: Rancher IPsec default_network: name: ipsec host_ports: true subnets: # After the configuration option is updated, the default subnet address is updated - network_address: 10.32.0.0/16 dns: - 169.254.169.250 dns_search: - rancher.internal cni_config: '10-rancher.conf': name: rancher-cni-network type: rancher-bridge bridge: docker0 # After the configuration option is updated, the default subnet address is updated bridgeSubnet: 10.32.0.0/16 logToFile: /var/log/rancher-cni.log isDebugLevel: false isDefaultGateway: true hostNat: true hairpinMode: true mtu: 1500 linkMTUOverhead: 98 ipam: type: rancher-cni-ipam logToFile: /var/log/rancher-cni.log isDebugLevel: false routes: - dst: 169.254.169.250/32

注意:随着Rancher通过升级基础服务来更新子网,以前通过API更新子网的方法将不再适用。

4、VXLAN 网络模式下,跨主机容器无法通信

Vxlan 通过4789端口实现通信,检查防火墙有没有开放此端口;

执行iptables -t filter -L -n参看IPtable表,查看chain FORWARD 是不是被丢弃,如果是,执行sudo iptables -P FORWARD ACCEPT

三、DNS

1、如何查看我的DNS是否配置正确?

如果你想查看Rancher DNS配置,点击应用 > 基础服务。点击network-services应用,选择metadata,在metadata中,找到名为network-services-metadata-dns-X的容器,通过UI点击执行命令行后,可以进入该容器的命令行,然后执行如下命令。

cat /etc/rancher-dns/answers.json

2、在Ubuntu上运行容器时彼此间不能正常通信。

如果你的系统开启了UFW,请关闭UFW或更改/etc/default/ufw中的策略为:

DEFAULT_FORWARD_POLICY="ACCEPT"

四、负载均衡

1、为什么我的负载均衡一直是Initializing状态?

负载均衡器自动对其启用健康检查。如果负载均衡器处于初始化状态,则很可能主机之间无法进行跨主机通信。

2、我如何查看负载均衡的配置?

如果要查看负载均衡器的配置,你需要用进入负载均衡器容器内部查找配置文件,你可以在页面选择负载均衡容器的执行命令行

cat /etc/haproxy/haproxy.cfg

该文件将提供负载均衡器的所有配置详细信息。

3、我在哪能找到HAproxy的日志?

HAProxy的日志可以在负载均衡器容器内找到。负载均衡器容器的docker logs只提供与负载均衡器相关的服务的详细信息,但不提供实际的HAProxy日志记录。

cat /var/log/haproxy

4、如何自定义负载均衡的配置

FAQ宝典之常见问题排查与修复方法

如图,在自定义配置中,按照global、defaults、frontend、backend的格式配置。

五、健康检查

1、为什么健康检查服务一直显示×××初始化状态?

healthcheck不仅为其他服务提供健康检查,对系统组件(比如调度服务)也提供健康检查服务,healthcheck也对自己进行健康检查。多个healthcheck组件时,它们会相互交叉检查,只有健康检查通过后,容器状态才会变成绿色。而healthcheck一直显示×××初始化状态,说明一直没有通过健康检查。健康检查都是通过网络访问的,所以一定是网络通信异常导致。

六、调度

为什么节点关机后,应用没有自动调度到其他节点上?Rancher上应用的调度,需要配合健康检查功能。当健康检查检查到应用不健康才会重新调度,如果没有配置健康检查,即使关机,cattle也不会对应用做调度处理。

七、CentOS

1、为什么容器无法连接到网络?

如果你在主机上运行一个容器(如:docker run -it ubuntu)该容器不能与互联网或其他主机通信,那可能是遇到了网络问题。Centos默认设置/proc/sys/net/ipv4/ip_forward为0,这从底层阻断了Docker所有网络。

解决办法:

vi /usr/lib/sysctl.d/00-system.conf

添加如下代码:

net.ipv4.ip_forward=1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-arptables = 1

重启network服务

systemctl restart network

查看是否修改成功

sysctl net.ipv4.ip_forward

如果返回为net.ipv4.ip_forward = 1则表示成功了

##八、京东云

1、京东云运行rancher server出现以下问题

FAQ宝典之常见问题排查与修复方法

解决办法:sudo sysctl -w net.ipv4.tcp_mtu_probing=1

推荐阅读:《FAQ宝典之Rancher Server》,《FAQ宝典之Rancher Server、K8s、Docker》


本文转自 RancherLabs 51CTO博客,原文链接:http://blog.51cto.com/12462495/2055816



推荐阅读
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 本文介绍了一种在 MySQL 客户端执行 NOW() 函数时出现时间偏差的问题,并详细描述了如何通过配置文件调整时区设置来解决该问题。演示场景中,假设当前北京时间为2023年2月17日19:31:37,而查询结果显示的时间比实际时间晚8小时。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • Docker 自定义网络配置详解
    本文详细介绍如何在 Docker 中自定义网络设置,包括网关和子网地址的配置。通过具体示例展示如何创建和管理自定义网络,以及容器间的通信方式。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • Ralph的Kubernetes进阶之旅:集群架构与对象解析
    本文深入探讨了Kubernetes集群的架构和核心对象,详细介绍了Pod、Service、Volume等基本组件,以及更高层次的抽象如Deployment、StatefulSet等,帮助读者全面理解Kubernetes的工作原理。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • Kubernetes 持久化存储与数据卷详解
    本文深入探讨 Kubernetes 中持久化存储的使用场景、PV/PVC/StorageClass 的基本操作及其实现原理,旨在帮助读者理解如何高效管理容器化应用的数据持久化需求。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 深入解析Docker镜像的工作机制
    本文旨在深入探讨Docker镜像的内部结构及其工作机制,包括镜像的分层体系、联合文件系统(UnionFS)的应用,以及各层如bootfs和rootfs的具体作用。 ... [详细]
  • 本文档详细介绍了如何构建和配置 EFKLK(Elasticsearch, Fluentd, Kibana, Kafka)日志采集工具链,包括命名空间创建、Elasticsearch 镜像拉取与容器运行、证书生成及配置、Helm 安装等步骤。 ... [详细]
  • 本文将指导您如何在Docker环境中高效地搜索、下载Redis镜像,并通过指定或不指定配置文件的方式启动Redis容器。同时,还将介绍如何使用redis-cli工具连接到您的Redis实例。 ... [详细]
author-avatar
mobiledu2502884243
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有