kubernetes
文章平均质量分 86
挖煤工人学IT
这个作者很懒,什么都没留下…
展开
-
优化生产环境中的 Kubernetes 资源分配
我和 Kubernetes 的初次接触就涉及到将应用容器化并部署到生产环境集群中,当时我的工作重点是把 buffer 吞吐量最高(低风险)的某个端点从单个应用程序中分离出来,因为这个特殊的端点会给我们带来很大的困扰,偶尔还会影响到其他更高优先级的流量。在使用curl进行一些手动测试之后,我们决定将这个剥离出来的端点部署在Kubernetes上。当有1%的流量打进来时,服务运行正常,一切看起来都是那么地美好;当流量增加到10%时,也没有什么大问题;最后我将流量增加到50%,麻烦来了,这时...转载 2021-07-02 16:05:57 · 383 阅读 · 0 评论 -
集群内部服务发现之 DNS
前面我们给大家讲解了Service的用法,我们可以通过 Service 生成的ClusterIP(VIP)来访问 Pod 提供的服务,但是在使用的时候还有一个问题:我们怎么知道某个应用的 VIP 呢?比如我们有两个应用,一个是 api 应用,一个是 db 应用,两个应用都是通过Deployment进行管理的,并且都通过 Service 暴露出了端口提供服务。api 需要连接到 db 这个应用,我们...转载 2019-01-24 09:55:32 · 912 阅读 · 0 评论 -
外部服务发现之 ingress(一)
上节课我们学习了在Kubernetes集群内部使用kube-dns实现服务发现的功能,那么我们部署在Kubernetes集群中的应用如何暴露给外部的用户使用呢?我们知道前面我们使用 NodePort 和 LoadBlancer 类型的 Service 可以实现把应用暴露给外部用户使用,除此之外,Kubernetes 还为我们提供了一个非常重要的资源对象可以用来暴露服务给外部用户,那就是 ingre...转载 2019-01-24 10:20:46 · 1206 阅读 · 0 评论 -
外部服务发现之 ingress(二)
上节课给大家展示了traefik的安装使用以及简单的ingress的配置方法,这节课我们来学习一下 ingress tls 以及 path 路径在 ingress 对象中的使用方法。TLS 认证在现在大部分场景下面我们都会使用 https 来访问我们的服务,这节课我们将使用一个自签名的证书,当然你有在一些正规机构购买的 CA 证书是最好的,这样任何人访问你的服务的时候都是受浏览器信任的证书...转载 2019-01-24 14:22:40 · 577 阅读 · 0 评论 -
理解 kubernetes 亲和性调度
一般情况下我们部署的 Pod 是通过集群的自动调度策略来选择节点的,默认情况下调度器考虑的是资源足够,并且负载尽量平均,但是有的时候我们需要能够更加细粒度的去控制 Pod 的调度,比如我们内部的一些服务 gitlab 之类的也是跑在Kubernetes集群上的,我们就不希望对外的一些服务和内部的服务跑在同一个节点上了,害怕内部服务对外部的服务产生影响;但是有的时候我们的服务之间交流比较频繁,又希望...转载 2019-01-24 16:07:56 · 354 阅读 · 0 评论 -
使用 Prometheus 监控 Kubernetes 集群应用
上一节我们和大家介绍了Prometheus的数据指标是通过一个公开的 HTTP(S) 数据接口获取到的,我们不需要单独安装监控的 agent,只需要暴露一个 metrics 接口,Prometheus 就会定期去拉取数据;对于一些普通的 HTTP 服务,我们完全可以直接重用这个服务,添加一个/metrics接口暴露给 Prometheus;而且获取到的指标数据格式是非常易懂的,不需要太高的学习成本...转载 2019-01-24 18:04:48 · 703 阅读 · 0 评论 -
Grafana 在 Kubernetes 中的使用
安装grafana 是一个可视化面板,有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持 Graphite、zabbix、InfluxDB、Prometheus、OpenTSDB、Elasticsearch 等作为数据源,比 Prometheus 自带的图表展示功能强大太多,更加灵活,有丰富的插件,功能更加强大。接下来我们就来直接安装,同样的,我们将 grafana 安装...转载 2019-01-25 17:26:41 · 6967 阅读 · 3 评论 -
Kubernetes traefik Ingress
Ingress简介如果你还不了解,ingress是什么,可以先看下我翻译的Kubernetes官网上ingress的介绍Kubernetes Ingress解析。理解Ingress简单的说,ingress就是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上。Ingress相当于nginx、apache等负载均衡方向代理服务器,其中还包括规则定义...转载 2019-01-31 19:18:03 · 346 阅读 · 0 评论 -
Kubernetes 服务发布方式详解
在Kubernetes中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了。选择正确的部署策略是要依赖于我们的业务需求的,下面我们列出了一些可能会使用到的策略: 重建(recreate):停止旧版本部署新版本 滚动更新(rolling-update):一个接一个地以滚动更新方式发布新版本 蓝绿(blue/green)...转载 2019-01-28 18:18:03 · 1158 阅读 · 0 评论 -
在 Kubernetes 上搭建 EFK 日志收集系统
Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。Elasticsearch 通常与 Kibana 一起部署,Kiba...转载 2019-01-28 18:20:46 · 1020 阅读 · 1 评论 -
Kubernetes Pod 工作流
我们知道Pod是Kubernetes中最小的调度单元,平时我们操作Pod的时间也是最多的,那么你知道Pod是怎样被创建出来的吗?知道他的工作流程吗?组件之间的通信我们知道在Kubernetes集群中apiserver是整个集群的控制入口,etcd在集群中充当数据库的作用,只有apiserver才可以直接去操作etcd集群,而我们的apiserver无论是对内还是对外都提供了统一的REST ...转载 2019-01-23 14:46:29 · 313 阅读 · 0 评论 -
kubernetes 持久化存储(一)
概念PV 的全称是:PersistentVolume(持久化卷),是对底层的共享存储的一种抽象,PV 由管理员进行创建和配置,它和具体的底层的共享存储技术的实现方式有关,比如 Ceph、GlusterFS、NFS 等,都是通过插件机制完成与共享存储的对接。PVC 的全称是:PersistentVolumeClaim(持久化卷声明),PVC 是用户存储的一种声明,PVC 和 Pod 比较类似...转载 2019-01-23 17:06:38 · 782 阅读 · 0 评论 -
kubernetes 持久化存储(二)
前面的课程中我们学习了 PV 和 PVC 的使用方法,但是前面的 PV 都是静态的,什么意思?就是我要使用的一个 PVC 的话就必须手动去创建一个 PV,我们也说过这种方式在很大程度上并不能满足我们的需求,比如我们有一个应用需要对存储的并发度要求比较高,而另外一个应用对读写速度又要求比较高,特别是对于 StatefulSet 类型的应用简单的来使用静态的 PV 就很不合适了,这种情况下我们就需要用...转载 2019-01-23 17:30:25 · 596 阅读 · 0 评论 -
Kubernetes StatefulSet 详解
StatefulSet 作为 Controller 为 Pod 提供唯一的标识。它可以保证部署和 scale 的顺序。使用案例参考:kubernetes contrib - statefulsets,其中包含zookeeper和kakfa的statefulset设置和使用说明。StatefulSet是为了解决有状态服务的问题(对应Deployments和ReplicaSets是为无状态服务...原创 2019-02-15 17:43:56 · 2382 阅读 · 1 评论 -
经典案例复盘——运维专家讲述如何实现K8S落地(摘抄)
以下是运满满K8s容器化进程记录,摘抄一下,方便以后查阅。背景介绍运满满自开始微服务改造以来,线上线下已有数千个微服务的 Java 实例在运行中。这些 Java 实例部署在数百台云服务器或虚机上,除少数访问量较高的关键应用外,大部分实例均混合部署。这些实例的管理,采用自研平台结合开源软件的方式,已实现通过平台页面按钮菜单执行打包、部署、启动、停止以及回滚指定的版本等基本功能,取得了不错...转载 2019-03-07 11:22:44 · 6640 阅读 · 0 评论 -
如何落地全球最大 Kubernetes 生产集群(摘抄)
鲍永成京东基础架构部技术总监,DevOps 标准核心编写专家前言JDOS 就是京东数据中心操作系统,随着数据中心规模不断的扩大,我们需要对数据中心做综合的考虑。所以一开始就先说数据中心的层面,大家知道数据中心里面有服务器、网络、基础软件,还有就是部署业务系统。随着技术的发展,有一些集群管理、编排加进来。JDOS 1.0 是基于 openstack ...转载 2019-03-11 16:24:41 · 431 阅读 · 0 评论 -
calico设置IPIP模式
Configuring IP-in-IPIf your network fabric performs source/destination address checks and drops traffic when those addresses are not recognized, it may be necessary to enable IP-in-IP encapsulation ...原创 2018-12-20 18:48:30 · 5619 阅读 · 0 评论 -
Kubernetes Ingress使用
Kubernetes关于服务的暴露主要是通过NodePort方式,通过绑定minion主机的某个端口,然后进行pod的请求转发和负载均衡,但这种方式下缺陷是Service可能有很多个,如果每个都绑定一个node主机端口的话,主机需要开放外围一堆的端口进行服务调用,管理混乱 无法应用很多公司要求的防火墙规则理想的方式是通过一个外部的负载均衡器,绑定固定的端口,比如80,然后根据域名或者服务名...转载 2018-11-12 14:34:50 · 421 阅读 · 0 评论 -
kubernetes--应用程序健康检查
K8S的应用程序健康检查分为livenessProbe和readinessProbe,两者相似,但两者存在着一些区别。livenessProbe在服务运行过程中检查应用程序是否运行正常,不正常将杀掉进程;而readness Probe是用于检测应用程序启动完成后是否准备好对外提供服务,不正常继续检测,直到返回成功为止。livenessProbe许多应用程序经过长时间运行,最终过渡到无法运...转载 2018-10-29 14:07:32 · 308 阅读 · 0 评论 -
理解Kubernetes网络之Flannel网络
理解Kubernetes网络之Flannel网络第一次采用kube-up.sh脚本方式安装的Kubernetes cluster目前运行良好,master node上的组件状态也始终是“没毛病”:# kubectl get csNAME STATUS MESSAGE ERRORcontroller-manager H...转载 2018-04-16 14:10:26 · 1813 阅读 · 0 评论 -
Etcd安装及使用详解
1. etcd 简介coreos 开发的分布式服务系统,内部采用 raft 协议作为一致性算法。作为服务发现系统,有以下的特点:简单:安装配置简单,而且提供了 HTTP API 进行交互,使用也很简单安全:支持 SSL 证书验证快速:根据官方提供的 benchmark 数据,单实例支持每秒 2k+ 读操作可靠:采用 raft 算法,实现分布式系统数据的可用性和一致性在这篇文章编写的时候,etcd ...转载 2018-04-16 14:14:13 · 15113 阅读 · 0 评论 -
通过静态发现方式部署etcd集群
在「etcd使用入门」一文中对etcd的基本知识点和安装做了一个简要的介绍,这次我们来说说如何部署一个etcd集群。etcd构建自身高可用集群主要有三种形式:静态发现: 预先已知etcd集群中有哪些节点,在启动时通过--initial-cluster参数直接指定好etcd的各个节点地址。etcd动态发现: 通过已有的etcd集群作为数据交互点,然后在扩展新的集群时实现通过已有集群进行服务发现的机制...转载 2018-04-16 14:36:52 · 787 阅读 · 0 评论 -
kubernetes:kubeDNS部署
一,理解Kubedns原理 通俗理解,首先明白k8s dns是为服务的发现而生,即service的发现,为了能够让其它服务能够直接通过service 名字找到它们,于是就需要dns将service名转换为它的VIP, 那么service的变化如何知道? 如何知道目前有哪些service 及知道他们的vip呢,service的增加减少又如何知道了, 所以要有一个组件...转载 2018-05-17 15:55:29 · 1649 阅读 · 0 评论 -
kubernetes:kubedns安装
下载kubernetes安装包 https://github.com/kubernetes/kubernetes/releases/download/v1.6.7/kubernetes.tar.gz, 在kubernetes/cluster/addons/dns目录下有kubedns的安装脚本。本文的脚步在已上传到github: https://github.com/zhuchuangang/k8...转载 2018-05-17 17:05:28 · 394 阅读 · 0 评论 -
kubernetes上的服务发现-CoreDNS配置
参考:官方网站,https://coredns.io/CoreDNS安装,https://my.oschina.net/u/2306127/blog/1618543CoreDNS使用手册,https://coredns.io/manual/toc/CoreDNS源码,https://github.com/corednsCoreDNS配置,https://my.oschina.net/u/23061...转载 2018-06-21 16:07:35 · 31312 阅读 · 0 评论 -
使用kubeadm安装安全高可用kubernetes集群
安装包地址 如非高可用安装请忽略此教程,直接看产品页的三步安装。单个master流程: 单master视频教程解压后在master 上 cd shell && sh init.sh ,然后sh master.sh(注意因为脚本用的相对路径所以不再当前目录会找不到文件)在node上 cd shell && sh init.sh 。然后在node上执行master输出的...转载 2018-06-21 16:25:50 · 1146 阅读 · 0 评论 -
kubernetes的Service Account和secret
Service AccountService Account概念的引入是基于这样的使用场景:运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它服务。Service Account它并不是给kubernetes集群的用户使用的,而是给pod里面的进程使用的,它为pod提供必要的身份认证。kubectl get sa --all-namespacesN...转载 2018-06-07 15:43:32 · 727 阅读 · 0 评论 -
kubernetes apiserver认证
Kubernetes集群的操作可以通过apiserver来进行操作,kubectl命令最终也是调用的apiserver,如果想要获取对apiserver进行操作,需要先通过其认证api-server的认证方式:基本认证:basic-auth--basic-auth-file=/path/to/basic-auth.csv在basic-auth.csv中拥有以列为单位的认证信息,格式为passwor...转载 2018-06-07 15:50:21 · 474 阅读 · 0 评论 -
Kubernetes Dashboard集成Heapster
Heapster原生支持K8s(v1.0.6及以后版本)和CoreOS,并且支持多种存储后端,比如:InfluxDB、ElasticSearch、Kafka等,这个风格和k8s的确很像:功能先不管完善与否,先让自己在各个平台能用起来再说^0^。这里我们使用的数据存储后端是InfluxDB。一、安装步骤我们的Heapster也是要放在pod里运行的。当前,Heapster的最新stable版本是v1...转载 2018-06-07 15:55:29 · 509 阅读 · 0 评论 -
Kubeadm 安装中的各种坑
一、error: failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs"解决:vi /etc/systemd/system/kubel...原创 2018-06-29 18:27:32 · 19799 阅读 · 1 评论 -
kubernetes1.9用kubeadm安装(包含calico、dashboard)
基础环境关闭防火墙 selinux 1 2 $ systemctl stop firewalld && systemctl disable firewalld $ setenforce 0 打开forward sysctl -w net.ipv4.ip_forward=1关闭s...转载 2018-07-21 15:42:13 · 1975 阅读 · 0 评论 -
kubeadm工作机制分析
介绍kubeadm一共提供了5个子命令:kubeadm init kubeadm join kubeadm token kubeadm reset kubeadm version这个可以在k8s v1.5.0 代码中cmd/kubeadm/app/cmd/cmd.go:29看到: func NewKubeadmCommand(f cmdutil.Factory, ...转载 2018-08-30 17:43:24 · 298 阅读 · 0 评论 -
kubernetes网络之---Calico原理解读
Calico简单简介Calico是一个纯三层的协议,为OpenStack虚机和Docker容器提供多主机间通信。Calico不使用重叠网络比如flannel和libnetwork重叠网络驱动,它是一个纯三层的方法,使用虚拟路由代替虚拟交换,每一台虚拟路由通过BGP协议传播可达信息(路由)到剩余数据中心。 Calico 架构Calico 是一个三层的数据中心网络方案,而且...原创 2018-09-05 14:31:16 · 31155 阅读 · 1 评论 -
kubernetes calico网络不通的排查思路
举个例子容器A访问不了容器B,也就是容器A ping 不通容器B排查思路:正向1 容器A的内容是否发送到容器A所在的node上2 容器A所在的节点node是否发送出去3 容器B所在的节点node是否接收到容器A所在的节点node发送的报文4 容器B所在的节点node是否把报文发送到容器B中反向1 容器B的内容是否发送到容器B所在的node上2 容器B所在的节点no...转载 2018-09-05 15:10:32 · 4459 阅读 · 0 评论 -
kubernetes集群搭建实战
1 条件准备: IP:172.16.20.17 Master Centos7 内核3.10 内存8G 硬盘150G IP:172.16.20.18 Node Centos7 内核3.10 内存8G 硬盘50G IP:172.16.20.19 Node Centos7 内核3.10 内存8G 硬盘50G2 Kuber...原创 2018-04-14 15:41:43 · 1350 阅读 · 1 评论