随笔分类 - K8S
了解一下K8S的基础功能
摘要:用prometheus监控K8S集群 1、监控任务简介 依据prometheus架构图,使用prometheus对K8S集群进行监控,主要包括以下几个方面: 1、对集群节点状态监控;可以在集群中每个节点运行exports实现; 2、对节点中的pod进行监控;集群各节点上的POD情况均受kubelet
阅读全文
摘要:prometheus基础 1、简介 1、开源的系统监控和告警系统 Prometheus is an open-source systems monitoring and alerting toolkit 官网:https://prometheus.io/docs/introduction/overv
阅读全文
摘要:利用ingress实现灰度发布 1、背景 ingress可以实现七层负载,可以根据请求header不同将流量代理到后端不同的service服务。 比如:后端网站进行了更新,为了不全网更换,可以利用ingress进行流量切分,先将部分流量切到新service,其余流量先不变动,等验证完成后再全网切换。
阅读全文
摘要:ingress和ingress controller 1、背景 # 通过service的nodeport和clusterIP可以将后端pod服务进行代理和负载。但该代理为四层应用,即对IP和port进行代理。 # 根据之前的学习指导,K8S中每一个service资源的创建都会对应的产生一个域名,在集
阅读全文
摘要:RBAC授权 1、背景 RBAC: role based access control基于角色的访问控制 # 认证 # 在k8s集群中,对user account认证表示该用户能够作为一个合法的用户去访问apiserver。 # 对service account认证表示pod内能否访问K8s集群资源
阅读全文
摘要:secret 1、背景 secret是一种用于保存少量敏感信息例如密码、令牌或密钥的对象资源。这样的信息可能会被放在 Pod 规约中或者镜像中。 使用 Secret 意味着你不需要在应用程序代码中包含机密数据。 POD可以有三种方式来使用secret: 1. 作为挂载到一个或多个容器上的卷 中的文件
阅读全文
摘要:ConfigMap 1、背景 为了将配置数据和代码解耦,可以将变化的配置文件单独保存为configmap,而不用每次都修改代码。 ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时, Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。 ConfigM
阅读全文
摘要:daemonset 1、背景 有时需要在集群中的所有node上运行一个pod的副本。当有节点加入集群时, 也会为他们新增一个 Pod 。 当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 2、daemonset典型应用 1. 在每个节点上运行集
阅读全文
摘要:### statefulSet #### 1、背景 ``` # 之前学习的deployment控制器,他所管理的pod一模一样,提供同一服务,不用考虑在哪台node运行,可以随意扩容缩容。我们把这类应用称作“无状态应用”,例如nginx web服务。 # 但是在实际场景中,对于一些分布式应用,比如m
阅读全文
摘要:存储类storageClass 1、官网链接 https://kubernetes.io/zh-cn/docs/concepts/storage/storage-classes/ 2、storageClass资源 # 在前面持久卷的实验中看到,对于静态绑定的pv,完成流程是1、创建PV;2、创建PV
阅读全文
摘要:持久卷PV 官网文档 https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/ 什么是PV和PVC 持久卷(PersistentVolume,PV) 是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Stor
阅读全文
摘要:这几天阳了,坐一会儿就腰痛 K8S中的常用存储方案 背景 因为K8S的POD运行了最终的业务,而pod在控制器的管理下可能会出现重建,重建的pod是镜像的新实例,如果一些重要配置文件或者日志文件也会随着pod的重建丢失,因此需要将pod的重要文件放在物理机存储,或者网络存储上。 常见的存储方法有:e
阅读全文
摘要:四层代理service # 功能:为一组pods上的应用程序公开网络服务的抽象方法,并为这一组pod提供相同的DNS名字,从而实现负载均衡。 # 产生背景: 正常的K8S环境都是集群部署,运行在pod中的某个服务可以在集群内通过POD IP访问 [root@master-worker-node-1
阅读全文
摘要:https://app.yinxiang.com/fx/e417266f-6609-40f6-a9cc-a34467ff1671 # 前面实验了deployment的基础语法、扩容缩容和滚动更新。deployment控制器还具有蓝绿发布和金丝雀发布的特性 蓝绿发布 # 蓝绿发布就是现网运行的业务在系
阅读全文
摘要:deployment deployment基础 上一节试验了replicaset控制器,它可以保证设置的pod数量,但是在升级时,却做不到自动升级,kubectl apply -f xxxx,并不能实时生效。 今天看看deployment,一种比replicaset更高级的声明式资源。它具有滚动更新
阅读全文
摘要:1、replicaset基础 前面都是通过yaml文件创建自主式pod,如果pod中的服务都是通过单纯的重启策略restartPolicy(always、OnFailure、never)来重启pod,但是如果pod运行的node 异常,重启策略将无法生效。或者当POD被手贱删除后,重启策略也无法生效
阅读全文
摘要:健康性探测 健康性探测可主要分为:startupProbe、livenessProbe和readinessProbe 用于探测的三种探针: ExecAction: 在容器中执行一个命令,返回码为0表示成功; TCPSocketAction: 通过与容器的某个TCP端口建立连接,端口打开即认为成功;
阅读全文
摘要:污点和容忍度 之前的实验测试了调度策略中的nodeName、nodeSelector、节点亲和性和pod亲和性。 有时,为了实现部分pod不能运行在特定的节点上,可以将节点打上污点。此时容忍这个污点的POD还是可以被调度到该节点上 环境中一共有2个master节点,2个worker节点 [root@
阅读全文
摘要:pod亲和性和反亲和性 上面实验了pod的资源调度可以通过nodeName、nodeSelector完成,以及node节点亲和性,都是根据依赖关系完成node与pod之间的调度。在实际的需求中,还需要对pod和pod的调度进行控制。 本节就测试一下pod的亲和性和反亲和性 准备一个基础pod作为亲和
阅读全文
摘要:K8S中的调度策略--节点亲和性、pod亲和性 上面实验了nodeName和nodeSelector,其中,nodeName是通过节点的名称进行区分,在一些特定场景下还是很有用的,如果将节点调度到某一高性能节点。但是nodeName还是显得有点过于严苛。nodeSelector则是通过node的标签
阅读全文