随笔分类 - kubernetes
舒服是留给有钱人的
摘要:一、Pod问题排查 1、Pod无法启动,如何查找原因? 1、使用kubectl describe pod [pod_name]-n [namespace_name]命令查看该Pod的状态信息,检查容器的状态和事件信息,判断是否出现问题。 2、使用kubectl logs [pod_name]-n [
阅读全文
摘要:一、背景 假设我有2种类型的服务器,一种是本地电脑(每个指标名称都存在{nodename=‘mac-local’}),一种是阿里云服务器(每个指标名称都存在{nodename=‘aliyun’}),同时每个指标下都存在一个 {instance=‘具体的服务器的ip地址’}标签。 即我们采集的时间序列
阅读全文
摘要:前言:默认的K8S的证书年限为1年,如果按照时间迭代更新K8S版本则不用考虑证书年限的问题 修改可用年限 cd /etc/kubernetes cp -r pki/ pki.old 生成新证书 kubeadm alpha certs renew all --config=/usr/local/ins
阅读全文
摘要:StatefulSet是为了解决有状态服务的容器问题而设计的,对应的Deployment和ReplicaSet是为了无状态服务而设计的。 StatefulSet应用场景包括: 稳定的持久化存储,即Pod重新调度后还是能访问到相同的持久化数据,基于PVC来实现 有序部署,有序扩展,(即从0到N-1),
阅读全文
摘要:一、Kubernetets API总览 REST API 是 Kubernetes 的基础架构。组件之间的所有操作和通信,以及外部用户命令都是 API Server 处理的 REST API 调用。因此,Kubernetes 平台中的所有资源被视为 API 对象,并且在 API 中都有对应的定义项。
阅读全文
摘要:1、schema的定义 而 kubernetes 中资源对象即 Group Version Kind 这些被定义在 staging/src/k8s.io/api/type.go 中,即平时所操作的 yaml 文件,例如 apiVersion: apps/v1 kind: Deployment met
阅读全文
摘要:一、CNI 1、介绍: CNI(Container Network Interface)是kubernetets中标准的调用网络实现的接口 kubelet通过这个标准的接口来调用不同的网络插件以实现不同的网络配置方式Kubelet调用CNI构建容器网络步骤: 1、kubelet先通过CRI创建pau
阅读全文
摘要:pod生命周期示意图 容器生命周期的几种行为: 初始化容器 初始化容器即 pod 内主容器启动之前要运行的容器,主要是做一些前置工作,初始化容器具有以下特征: 初始化容器必须首先执行,若初始化容器运行失败,集群会一直重启初始化容器直至完成,注意,如果 pod 的重启策略为 Never,那初始化容器启
阅读全文
摘要:一、SSL认证 1、生成一个证书 (1)生成一个私钥 cd /etc/kubernetes/pki/ (umask 077; openssl genrsa -out lucky.key 2048) (2)生成一个证书请求 openssl req -new -key lucky.key -out lu
阅读全文
摘要:1、kubernetes集群认证文件目录:/root/.kube/config 2、calico网络认证文件目录:/etc/cni/net.d/calico-kubeconfig 3、cni插件目录:/etc/cni/net.d 4、kubelet配置文件目录:/usr/lib/systemd/sy
阅读全文
摘要:一、iptables类型的kube-proxy proxy配置通过配置iptables规则,将流量直接转发至pod,基于概率的随机转发,当转发至未就绪的pod时,将返回请求失败的响应 二、Ipvs类型的kube-proxy proxy配置通过配置ipvs规则,将流量转发至pod,有rr,lc,dh,
阅读全文
摘要:一、证书结构图 kubernetes提供一个CA根证书平台 apiserver、kubelet等服务等证书均由kubernetes的CA根证书机构颁发 由于是同一CA机构颁发的证书,apiserver和kubelet之间也能自由进行访问 etcd在集群外,etcd相关的证书均由etcd的CA机构颁发
阅读全文
摘要:一、flannel Flannel.1是一个overlay网络的设备,用来进行vxlan报文的处理(封包和解包),不同node之间的pod数据流量就是从overlay设备以隧道的形式发送到对端 ->:pod中产生数据,根据pod的路由信息,将数据发送到cni0 ->:Cni0根据节点的路由表,将数据
阅读全文
摘要:一、简介 要使用 StorageClass,就得安装对应的自动配置程序,比如这里存储后端使用的是 nfs,那么就需要使用到一个 nfs-client 的自动配置程序,也叫它 Provisioner,这个程序使用我们已经配置好的 nfs 服务器,来自动创建持久卷,也就是自动创建 PV。 自动创建的 P
阅读全文
摘要:一、headless和ClusterIP的区别 CoreDNS的作用:在K8S里,我们想要通过name来访问服务的方式就是在Deployment上面添加一层Service,这样我们就可以通过Service name来访问服务了,那其中的原理就是和CoreDNS有关,它将Service name解析成
阅读全文
摘要:1,Service 介绍 (1)Kubernetes Service 从逻辑上代表了一组 Pod,具体是哪些 Pod 则是由 label 来挑选。 (2)Service 有自己 IP,而且这个 IP 是不变的。 客户端只需要访问 Service 的 IP,Kubernetes 则负责建立和维护 Se
阅读全文
摘要:1、Pod 一直处于 Pending 状态 Pending 说明 Pod 还没有调度到某个 Node 上面。可以通过 kubectl describe pod <pod-name> 命令查看到当前 Pod 的事件,进而判断为什么没有调度。如 $ kubectl describe pod mypod
阅读全文
摘要:一、概念 简介:Pause容器 全称infrastucture container(又叫infra)基础容器,作为init pod存在,其他pod都会从pause 容器中fork出来 1、每个Pod里运行着一个特殊的被称之为Pause的容器,其他容器则为业务容器,这些业务容器共享Pause容器的网络
阅读全文