容器使用过程中的典型问题分析.docx

? ? ? ? ? ? ? 容器使用过程中的典型问题分析 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 近年来,容器技术的发展非常迅猛,以Docker和kubernetes为代表的容器技术日新月异,但我们也在容器的使用过程中碰到各种困扰和难题。目前整理的故障问题,并不包括全部的内容,在今后随着版本的更新,系统的环境更复杂,中间件,存储,大数据等的引入,一定会出现更多,更复杂的故障,我们永远不可能覆盖全部,希望提供排查方法和排查思路,典型案例,帮助大家学会怎么样更快的去发现问题,解决问题。最重要的是“防微杜渐”,前期做好规划和设计,后期维护更轻松,问题更少出现。 1、Docker什么情况下使用有状态,什么情况使用无状态? @MT嘲西西?上海逸橙 技术经理: 容器在跑php、java这些应用服务的时候,可以使用无状态,作为普通的节点。前端用负载均衡。 有状态的一般是用在有master的服务,? 比如 MySQL , Redis, MQ等。 2、由于应用的历史原因,应用分区部署,Kubernetes是否有支持大二层网络的插件呢? @MT嘲西西?上海逸橙?技术经理: flannel和calico都是可以的。 如果跨机房的主机网络是可以互通的(跨机房最好是专线,不要走公网vpn,延迟高),k8s cni也是可以实现跨机房互通。跨机房两端的k8s pod, 配在同一个虚拟网络内。 3、K8S 升级方案?如何对应用影响最小? @MT嘲西西?上海逸橙?技术经理: 建议具备以下条件再升级 1、? k8s 双master +vip? 2、 k8s前端使用? haproxy 或者nginx做负载均衡 3、 k8s版本不要太老,跨版本幅度不要太大 (比如 1.8直接升级1.18) 跨度大不清楚是否存在未知问题 升级过程如下 1、 前端负载均衡,先下掉? k8s? master2 2、升级master2 的k8s版本到指定版本(需要提前 kubectl upgrade plan) 3、 kubeadm upgrade apply 升级 master2 4、负载均衡切换master1 5、升级 master1 升级node注意 先驱离node上的Pod后,再yum 新版kubelet 4、kubeadmin安装问题:使用Kubeadmin join 的时候有些node可以ready有些无法ready? @MT嘲西西?上海逸橙?技术经理: 在有问题的节点上执行? ?systemctl? status? kubelet看下 输出什么报错 有可能是cni 引起的 5、Pod 每过一段时间就重启,看应用没有异常,一般是什么情况导致的呢? @MT嘲西西?上海逸橙?技术经理: journalctl -u kubelet看下日志报什么错? 这个要具体分析日志, 看下有哪里配的不对,或者代码问题引起等 6、安装包的获取都是从官方获取吗?现在上生产都是使用kubeadmi安装吗? @MT嘲西西?上海逸橙?技术经理: 最好从官方,但官方的镜像较慢 也可以使用阿里云的镜像 除了kubeadm的方式,目前也有简化安装方式? helm /helm/helm/releases 安装也很简单 7、ETCD性能问题:K8S集群master节点组件的pod总是发生异常重启,最后发现可能是etcd的磁盘性能问题导致,想咨询下专家K8S对etcd性能都有那些指标要求? @MT嘲西西?上海逸橙?技术经理: 如果是k8s集群部署方式,至少需要3台etcd,? 不推荐单点etcd。 一般影响etcd性能的,是网络io和磁盘io。 延迟、吞吐量是两个比较关键的因素。 建议 etcd 用压测工具benchmark 测试下。 8、Docker容器和kubernetes集群安装部署的周期大概多长,现有业务的迁移过程如何计算? @MT嘲西西?上海逸橙?技术经理: docker比较简单, yum和 compose都可以,比较快。 k8s部署建议用 kubeadm或helm。 业务的迁移过程, 一定是先将容器环境都部署好,再进行应用服务的迁移。 最后再进行流量的切换(切到容器)。 每一步都需要验证。 @mtming333 甜橙金融翼支付 系统运维工程师: 原生的话,部署一天。 迁移就要看业务情况了。 9、pod一直CrashLoopBackOff状态启动不了? 应用的pod一直处于CrashLoopBackOff状态无法启动起来,检查了资源配置,镜像文件,kubectl也 查看了pod日志一直没有找到异常,还有哪些可以排查的地方? @MT嘲西西?上海逸橙?技术经理: CrashLoopBackOff可以有多种原因导致pod无法正常run。 代码问题,pod资源问题(requ

文档评论(0)

1亿VIP精品文档

相关文档