摘要:Istio 是一种开源服务网格,可透明地分层到现有的分布式应用程序上。 Istio 的强大功能提供了一种统一且更高效的方式来保护、连接和监控服务。 Istio 是实现负载均衡、服务到服务身份验证和监控的途径 - 几乎无需更改服务代码。 参考:https://istio.io/latest/zh/do
阅读全文
摘要:参考: https://meaninglive.com/2021/02/25/python-django%E9%80%9A%E8%BF%87webssh%E6%93%8D%E4%BD%9Ckubernetes-pod/ 获取实时日志的停止stream应该是有问题的,可以采用:停止线程的方式。 htt
阅读全文
摘要:一、背景 因项目需要,用python-client获取k8s的pod状态和node状态,但是要求和kubectl得到的状态一致,有点坑啊 二、解决方法 将kubectl的源码进行python改写 k8s.io\kubernetes\pkg\printers\internalversion\print
阅读全文
摘要:之前接触过calico,但是kubernetes中的calico为什么是calico-kube-controllers、calico-node、calico-typha,为什么和想象的组件不一样。查资料后,知道了为什么,特总结下。 一、calico基本实现图 calico的基本组件有etcd、fel
阅读全文
摘要:Docker介绍 最近听闻 K8s 弃用dockershim,一个从事k8s开发的工作人员不懂这是什么意思是不行的,所以好好梳理梳理下。 一、docker原理关于docker1.12.x,该版本的docker由docker-client,dockerd,containerd,docker-shim,
阅读全文
摘要:kubelet 介绍 一、kubelet简介 kubelet 的主要功能就是定时从某个地方获取节点上 pod/container 的期望状态(运行什么容器、运行的副本数量、网络或者存储如何配置等等),并调用对应的容器平台接口达到这个状态。 之所以有pod的概览,即给容器提供这一层封装,主要是因为容器
阅读全文
摘要:一、Controller Manager简介 Controller Manager作为集群内部的管理控制中心,负责集群内的Node、Pod、Endpoint、Namespace、ServiceAccount、ResourceQuota的管理, 每个Controller通过API Server提供的接
阅读全文
摘要:这样可以获取实时资源 package main import ( "k8s.io/client-go/tools/clientcmd" metrics "k8s.io/metrics/pkg/client/clientset/versioned" metav1 "k8s.io/apimachiner
阅读全文
摘要:预选(Predicates):如果某节点的资源不足或者不满足预选策略的条件如“Node的label必须与Pod的Selector一致优选(Priorities):资源越富裕、负载越小的Node可能具有越高的排名
阅读全文
摘要:etcd 是基于 raft算法的分布式键值数据库,生来就为集群化而设计的。 比较好的操作: alias etcdctl='etcdctl --endpoints=https://10.20.16.227:2379,https://10.20.16.228:2379,https://10.20.16.
阅读全文
摘要:etcd学习 etcd是k8s系统中的一个组建,安装在master节点中,负责数据的存储,以及节点的注册发现。etcd 被设计为提供高可用、强一致的小型 keyvalue 数据存储服务 在 2015 年2月份,etcd 发布了第一个正式的稳定版本 2.0。在 2.0 版本中,etcd 重新设计了 R
阅读全文
摘要:csi :容器存储接口 cni:容器网络接口 cri:容器runtime接口 简要说下Kubernetes有哪些核心组件以及这些组件负责什么工作?etcd:提供数据库服务保存了整个集群的状态kube-apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制ku
阅读全文
摘要:一、介绍 PodPreset用来给指定标签的Pod注入额外的信息,如环境变量、存储卷等。这样,Pod模板就不需要为每个Pod都显式设置重复的信息。 二、如何开启PodPreset 1、vi /usr/lib/systemd/system/kube-apiserver.service 2、在--adm
阅读全文
摘要:Webhook原理: 1.api请求到达K8S API Server 2.请求要先经过认证 3.执行一连串的admission controller,包括MutatingAdmissionWebhook和ValidatingAdmissionWebhook, 先串行执行MutatingAdmissi
阅读全文
摘要:http://www.coderdocument.com/docs/kubernetes/v1.14/reference/using_kubernetes_api/client_libraries.html 官方支持的Kubernetes客户端库 编程语言客户端库示例程序 Go github.com
阅读全文
摘要:网络主要解决两个问题,一个是连通性,实体之间能够通过网络互通。另一个是隔离性,出于安全、限制网络流量的目的,又要控制实体之间的连通性。Network Policy用来实现隔离性,只有匹配规则的流量才能进入pod,同理只有匹配规则的流量才可以离开pod 一、原理 Network Policy是kube
阅读全文
摘要:概述 对于NodePort 类型的 service 而言,有一个参数是 externalTrafficPolicy=Local 即 service.spec.externalTrafficPolicy=Local ( 外部访问Service的方式有两种: 1)通过设置nodePort映射到物理机,同
阅读全文
摘要:资源类型 缩写 描述 clusters componentstatuses cs configmaps cm daemonsets ds deployments deploy endpoints ep event ev horizontalpodautoscalers hpa ingresses i
阅读全文
摘要:一、Kubernetes控制器的删除有3种模式: 1、删除pod kubectl delete pod pod_name 2、强制删除 kubectl delete pod pod_name --force --grace-period=0 3、强制删除 kubectl edit pv pvc_na
阅读全文
摘要:(1) hostname hostname环境变量保存了该Pod的hostname。 (2)容器和Pod的基本信息 Pod的名字、命名空间、IP以及容器的计算资源限制等可以以Downward API的方式获取并存储到环境变量中。基本上yaml里的信息都可以作为环境变量。 apiVersion: v1
阅读全文