K8S 排错之 Pod异常 一般来说,无论 Pod 处于什么异常状态,都可以执行以下命令来查看 Pod 的状态: kubectl get pod <pod-name> -o yaml 查看 Pod 的配置是否正确 kubectl describe pod <pod-name> -n命名空间 查看 Pod 的事件 kubectl logs <pod-name> 2020-04-20 K8S K8S
k8S节点可分配资源限制 Node Allocatable 一、k8s 节点健康状态 状态 释义 NodeHasSufficientMemory 节点有足够的内存 NodeHasNoDiskPressure 节点没有磁盘压力 NodeHasSufficientPID 节点有足够的PID NodeNotReady 节点未准备好 k8s 节点可分配资源限制 Node All 2020-04-18 K8S K8S
本来生活网K8S架构方案 本来生活网(benlai.com)是一家生鲜电商平台,公司很早就停止了烧钱模式,开始追求盈利。既然要把利润最大化,那就要开源节流,作为技术可以在省钱的方面想想办法。我们的生产环境是由 IDC 机房的 100 多台物理机所组成,占用率高达 95%,闲置资源比较多,于是我们考虑借助 k8s 来重构我们的基础设施,提高我们资源的利用率。 容器化项目团队最初加上我就只有三个人,同时我们还有 2020-04-03 K8S K8S
Kubernetes 集群安全机制详解 本文主要介绍 Kubernetes 的安全机制,如何使用一系列概念、技术点、机制确保集群的访问是安全的,涉及到的关键词有:api-server,认证,授权,准入控制,RBAC,Service Account,客户端证书认证,Kubernetes 用户,Token 认证等等。虽然涉及到的技术点比较琐碎,比较多,但是了解整个机制后就很容易将其串起来,从而能很好地理解 Kubernetes 集 2020-04-01 K8S K8S
ConfigMap详解 背景 应用部署的一个最佳实践是将应用所需的配置信息与程序进行分离,这样可以使得应用程序被更好地复用,通过不同的配置也能实现更灵活的功能。 将应用打包为容器镜像后,可以通过环境变量或者外挂文件的方式在创建容器时进行配置注入,但在大规模容器集群的环境中,对多个容器进行不同的配置将变得非常复杂。 从Kubernetes v1.2开始提供了一种统一的应用配置管理方案——ConfigMap。 一、C 2020-03-18 K8S K8S
Kubernetes生态体系落地过程中的选型和踩坑 今天看了篇文章,痛快之余还是决定要分享下。还是那句老话:没有最优的架构,只有最合适的架构,一切系统设计原则都要以解决业务问题为最终目标,脱离实际业务的技术情怀架构往往会给系统带入大坑,任何不基于业务做异想天开的架构都是耍流氓。 开源节流,是企业提升利润的两大方向;中台战略或基础结构体系常常肩负了节流的重任。无论大小企业,容器化都被认为可以大幅度地提升效率,增加运维标准化和资源利用率。但是此类事情 2020-03-16 K8S K8S
AlertManager部署、监控、规则告警 一、K8S中部署Alertmanager 1.1、先来看下报警流程: mark 大概包含如下几个过程: 1、部署Alertmanager 2、配置Prometheus与Alertmanager通信 3、配置告警 4、prometheus指定rules目录 5、configmap存储告警规则 6、configmap挂载到容器rules目录 7、增加alertman 2020-03-11 K8S Prometheus K8S
Grafana可视化展示配置 一、使用Grafana可视化展示Prometheus监控数据 承接如上文,部署了prometheus之後,我们就可以在prometheus中查看到这部分索引: mark 以 kube_ 开头的指标就是 kube-state-metrics 采集的。 推荐模板: 集群资源监控 模板号:3119 当模板添加之后如果某一个Panel不显示数据,可以点击Panel上的编辑,查询P 2020-03-10 K8S Prometheus K8S
K8S中Pod、Node、资源对象等监控 一、监控 K8S 集群 node 1.1、node_explorer安装配置 Pod kubelet的节点使用cAdvisor提供的metrics接口获取该节点所有Pod和容器相关的性能指标数据,安装kubelet默认就开启了 暴露接口地址: https://NodeIP:10255/metrics/cadvisor https://NodeIP:10250/metrics/cadvis 2020-03-09 K8S Prometheus K8S
Grafana在K8S中的应用和配置 一、在K8S平台部署Grafana 通过上面的web访问,可以看出prometheus自带的UI界面是没有多少功能的,可视化展示的功能不完善,不能满足日常的监控所需,因此常常我们需要再结合Prometheus+Grafana的方式来进行可视化的数据展示。 1.1、使用StatefulSet部署grafana 刚才下载的项目中已经写好了Grafana的yaml,根据自己的环境进行修改: [r 2020-03-08 K8S Prometheus K8S
Prometheus在K8S中的应用和配置 一、在K8S平台部署Prometheus IP 角色 192.168.73.136 nfs 192.168.73.138 k8s-master 192.168.73.139 k8s-node1 192.168.73.140 k8s-node2 可以直接选择git clone项目代码,也可以后面自己编写,后面的操 2020-03-07 K8S Prometheus K8S
Istio可视化监控(网格可视化、调用链) 一、前言 今天着重总结下istio微服务调用链关系展示,以及微服务工作状态监测,涉及组件有:prometheus grafana jaeger Kiali 等。 监控指标(Grafana) 网格可视化(Kiali) 调用链跟踪(Jaeger) 昨天我写了篇文章,关于通过gateway暴露内部微服务的示例,本章由于istio的如上内部组件全部都是内部访问,所以我们需要通过i 2020-01-27 K8S Kubernetes Istio
Istio 实现灰度发布 一、部署bookinfo微服务示例 mark Bookinfo 应用分为四个单独的微服务: - productpage : productpage 微服务会调用 details 和 reviews 两个微服务,用来生成页面。 - details :这个微服务包含了书籍的信息。 - reviews :这个微服务包含了书籍相关的评论。它还会调用ratings 微服务。 - rat 2020-01-26 K8S Kubernetes Istio
K8S中Istio应用(sidecar注入,Ingress Gateway) 一、部署 # wget https://github.com/istio/istio/releases/download/1.4.2/istio-1.4.2-linux.tar.gz # tar zxvf istio-1.4.2-linux.tar.gz # cd istio-1.4.2 # mv bin/istioctl /usr/bin # istioctl manifest apply - 2020-01-25 K8S Kubernetes Istio
微服务治理Istio初探 一、Service Mesh Service Mesh 的中文译为“服务网格”,是一个用于 处理服务和服务之间通信的基础设施层 ,它负责为构建复杂的云原生应用 传递可靠的网络请求 ,并为服务通信实现了微服务所需的基本组件功能,例如服务发现、负载均衡、监控、流量管理、访问控制等。在实践中, 服务网格通常实现为一组和应用程序部署在一起的轻量级的网络代理 ,但对应用程序来说是透明的。 2020-01-24 K8S Kubernetes Istio
K8S之ELK日志收集(多维度) 主要分为4方面: 收集哪些日志? elk Stack日志方案? 容器中的日志怎么收集? k8S平台中应用日志收集(模版可针对spring cloud、dubbo微服务的日志)根据自己的项目需求更改; 一、收集哪些日志 k8s系统的组件日志 比如kubectl get cs下面的组件; master节点上的controller-manager,scheduler,apis 2020-01-15 K8S Kubernetes
Kubernetes 亲和性 affinity 一、前言 Kubernetes 支持限制 Pod 在指定的 Node 上运行,或者指定更倾向于在某些特定 Node 上运行。 有几种方式可以实现这个功能: NodeAffinity: 支持更丰富的配置规则,使用更灵活。 PodAffinity: 根据已在节点上运行的 Pod 标签来约束 Pod 可以调度到哪些节点,而不是根据 node label。 二、NodeAffinit 2020-01-11 K8S Kubernetes
Pipeline 集成 Helm 发布微服务项目 一、Helm部署到K8S mark 通过刚刚的配置,如上4个阶段已经完成; 接下来: 二、推送代码到gitlab # git clone http://192.168.171.10:9999/root/ms.git # 拉取代码 # cp simple-microservice-dev4/* ms/ -rf # copy代码 # cd ms # git ad 2020-01-09 K8S Kubernetes
基于Jenkins的Master/Slave模式实现CI/CD Jenkins在Kubernetes中动态创建代理 一、前言 就类似于我们公司 目前每天的jenkins构建测试基本上平稳在2300+左右,也就是可能同时并发的构建我见过一次120+,只是这一个jenkins节点是不可以完成这么大的任务量的!所以jenkins-slave的接入就很大程度上提高了性能! mark mark Master/Slave相当于Serve 2020-01-08 K8S Kubernetes
Jenkins Pipeline基本使用 & 参数化构建 一、持续集成Jenkins部署 在K8S中部署jenkins首先我们需要考虑到的是持久化存储,因为产生的一些插件和job都需要存储起来。当然部署的pod也是不固定的,也可能在node1也可能在其它节点,这就需要在任何节点都可以读取到这部分数据! mark [root@k8s-master1 ~]# cd jenkins [root@k8s-master1 jenkins]# ls 2020-01-07 K8S Kubernetes