简介: 经过仔细研究,我们发现秘籍中提到许多帮助解决交付问题的招式,而其中一个让我们印象很深,是关于在原有社区版容器底座 Kubernetes(以下简称 K8s)的基础上,对容器底座进行改进,可更好的服务于应用交付的招式。下面,请随我一起来看看您是否是那天选之人吧! 大家好,我是专注于交
QoS(Quality of Service) 简介 QoS(Quality of Service),大部分译为 “服务质量等级”,又译作 “服务质量保证”,是作用在 Pod 上的一个配置,当 Kubernetes 创建一个 Pod 时,它就会给这个 Pod 分配一个 QoS 等级,可以是以下等级之一: Guaranteed:Pod 里的每个容器都必须有内存/CPU
添加语法: kubectl label nodes kube-node label_name=label_value 样例: # 先查看node列表 [root@k8s-test01 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-test01 Ready,SchedulingDisabled control-plane
01常见的业务场景 假设有两个服务A和B,他们之间相互调用,且同时对外提供,如下图所示 服务A和B之间必须互通 服务A和B都需要访问各种需要的基础设施,如数据库、消息队列等 服务A和B都对外暴露API 服务需要高可用,自动扩缩容 我们暂且不讨论这个架构设计是否合理,假设场景就是如此,正常
Backgroud 前一章中,对kubernetes的选举原理进行了深度剖析,下面就通过一个example来实现一个,利用kubernetes提供的选举机制完成的高可用应用。 对于此章需要提前对一些概念有所了解后才可以继续看下去 leader election mechanism RBCA Pod runtime mechanism Implementation 代码
上一篇,我们学习了各种工作负载的使用,工作负载它会自动帮我们完成Pod的调度和部署,但有时我们需要自己定义Pod的调度策略,这个时候该怎么办呢?今天我们就来看一下如何定义Pod调度策略。 一、NodeSelector:节点定向调度 Kubernetes的Scheduler服务在调度Pod的时候会通过一系列复杂的
在实际生产环境中,有些容器内应用(比如编码器)需要用到物理层面的网络资源(比如组播流)。这就要求Kubernetes中的该Pod以HOST模式来启动。以下实验了Kubernetes-HOST网络模式,并给出了一些运维建议。 1、Pod的网络 每个Pod都会默认启动一个pod-infrastructure(或pause)的容器,作为共享网络
原因: 因为ingress controller的镜像 pull 失败,一直在 retry ,所以我就把 ingress-controller delete 掉,但是一直卡住在删除 namespace 强制结束以后发现 pod 已经被删掉,导入容器以后重新 create 报错,报错内容就是 ingress-nginx 名称空间 处于 Terminating 状态 解决方法: 导出
Metrics Server 部署 先拉取yaml文件 wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml 修改yaml文件 containers: - name: metrics-server image: yanxinjiang/metrics-server:v0.3.7 #修改成国内镜像 imagePullPolicy:
1、删除node 先在master节点删除掉node kubectl delete nodes nodename 在需要删除的node上执行 kubeadm reset -f 2、添加node 在master节点查看集群的token值 kubeadm token create --print-join-command 将node节点重新添加到k8s集群中 复制上一步输出的内容执行
StatefulSet控制器 应用程序存在 "有状态" 和 "无状态" 两种类别。Kubernetes 系统中,Deployment、ReplicaSet 和 DaemonSet 等常用于管理无状态应用,但实际情况,应用本身是分布式的集群,也有不少有状态的应用,下面我们聊聊 "有状态" 应用的管理。 一、StatefulSet概述 无状态应
1 环境说明 主机名 系统版本 IP地址 cpu/内存/磁盘 用途 软件版本 k8s_nfs CentOS7.5 172.16.1.60 2核/2GB/60GB nfs存储 nfs-utils-1.3.0-0.68 k8s-master1 CentOS7.5 172.16.1.81 2核/4GB/60GB kubernetes master1节点 k8s v1.20.0 k8s-master2 CentOS7.5 172.16.1.82 2
新买的树莓派4b到货后就迫不及待的烧录上raspberrypi系统,将新派加入我的k8s集群,期间遇到了点小挫折,好歹也一个一个解决了; 一、kubelet版本不对导致无法加入k8s集群 在执行kubeadm join时,提示无法连接127.0.0.1:10248;去master节点上看了下这个端口对应的服
一、Operator简介 在Kubernetes中我们经常使用Deployment、DaemonSet、Service、ConfigMap等资源,这些资源都是Kubernetes的内置资源,他们的创建、更新、删除等均有Controller Manager负责管理。 二、Operator组成 Operator(Controller+CRD),Operator是由Kuberne
我们前面讲了很多关于Pod的使用,但是在实际应用中,我们不会去直接创建Pod,我们一般通过Kubernetes提供的工作负载(Deployment、DeamonSet、StatefulSet、Job等)完成对一组Pod全生命周期的控制,本节开始我们来看看这些工作负载是如何使用的。 一、Deployments Deployments可以自动部署
概述 为什么要有k8s informer 我们都知道可以使用k8s的Clientset来获取所有的原生资源对象,那么怎么能持续的获取集群的所有资源对象,或监听集群的资源对象数据的变化呢?这里不需要轮询去不断执行List操作,而是调用Watch接口,即可监听资源对象的变化,当资源对象发生变化,客户端即可通过Wa
目录1. NodePort2. Loadbalancer2.1 确认 strictARP 模式2.2 安装 metalLB2.3 配置 IP 池2.4 测试效果3. Ingress 1. NodePort kubectl run 创建 pod [root@master ~]#kubectl run nginx --image=nginx:1.14 --port=80 --replicas=3 kubectl run --generator=deployment/apps.v1
Secret资源 Secret 资源的功能类似于 ConfigMap,但它专用于存放敏感数据,例如密码、数字证书、私钥、令牌 和 SSH key 等。 一、Secret概述 Secret 对象存储数据的方式及使用方式类似于 ConfigMap 对象,相同的是,都以键值方式存储数据,在 Pod 资源中通过环境变量或存储卷进行数据
log_format fat-s-k8s '{"@timestamp":"$time_iso8601",' '"@source":"$server_addr",' '"app":"nginx",'
安装 kuberspere管理集群工具会自带安装k8s 第1步:export KKZONE=cn 第2步:curl -sfL https://get-kk.kubesphere.io | VERSION=v2.0.0 sh – 第3步:chmod +x kk 第4步:./kk create cluster --with-kubernetes v1.21.5 --with-kubesphere v3.2.1 第5步:先把命令复制下来: yum ins
在近期的工作中,我们发现 K8s 集群中有些节点资源使用率很高,有些节点资源使用率很低,我们尝试重新部署应用和驱逐 Pod,发现并不能有效解决负载不均衡问题。在学习了 Kubernetes 调度原理之后,重新调整了 Request 配置,引入了调度插件,才最终解决问题。这篇就来跟大家分享 Kubernetes 资
1、 当出现crashloopbackoff的时候,请检查你在配置资源的yaml文件是否有错误 2、当出现ImagePullBackOff的时候,请检查镜像的同时也请检查磁盘,当出现这种现象的时候一般是磁盘使用率达到了k8s的告警阈值,触发了k8s的自动清理机制,k8s的自动清理机制有两种,一种是磁盘达到百分之多少,一种
Swap memory management FEATURE STATE: Kubernetes v1.22 [alpha] Prior to Kubernetes 1.22, nodes did not support the use of swap memory, and a kubelet would by default fail to start if swap was detected on a node. In 1.22 onwards, swap memory support can be
k8s的三种探针 启动探针 因为k8s中采用大量的异步机制、以及多种对象关系设计上的解耦,当应用实例数 增加/删除、或者应用版本发生变化触发滚动升级时,系统并不能保证应用相关的service、ingress配置总是及时能完成刷新。在一些情况下,往往只是新的Pod完成自身初始化,系统尚未完成EndP
大家好,我是专注于交付的王小锤,看过交付铁三角系列故事(专注交付的我小锤,开发老哥铁子和售前大佬强哥)的同学想必都知道,我们三人服务于一家提供大数据分析服务的 ISV 企业,在应用交付过程中时常面临各种挑战。 那日,就在我们为一个交付难题发愁时,有人兴奋的冲过来说找到了解法。就这样,