00:00 / 01:14
连播
清屏
智能
倍速
点赞7
揭秘k8s pod创建全过程 当你使用 kubectl create 命令 创建一个Deployment资源时 kubectl向 API Server 发送Deployment创建请求 API server 创建Deployment资源 并将其存入ETCD 由于 Deployment 控制器 在监控 Deployment 资源 所以在Deployment资源被创建后 API Server 会通知Deployment 控制器 有Deployment 资源被创建了 随后Deployment 控制器就会 向API Server发送ReplicaSet创建请求 创建一个ReplicaSet 资源并将其存入ETCD 由于ReplicaSet控制器 在监控ReplicaSet资源 所以在ReplicaSet资源被创建后 API Server 会通知ReplicaSet控制器 有ReplicaSet资源被创建了 随后ReplicaSet 控制器就会 向API Server发送 pod 创建请求 创建指定副本数量的 pod并将其存入ETCD 此时被创建出来的pod 只是在 API Server和ETCD中存在 并没有在工作节点运行 因为pod处于 Pending 状态 由于调度器在监控 Pod 资源 当有 Pod资源被创建时 API Server 会通知调度器 有 Pod资源被创建了 当调度器发现有未设置nodeName属性的pod时 调度器会选择一个最合适的节点 调用API Server的pod patch API 设置 pod的nodeName属性为工作节点名称 并保存至ETCD 由于kubelet也在监控 Pod资源 当Pod资源发生变化时 API Server 会通知 kubelet 当指定工作节点的 kubelet 发现 有新 pod 被调度到本节点 就会调用容器运行时的CRI接口 容器运行时会调用 CNI 网络插件 为 pod 建立网络 这样pod中的所有容器就创建好了 然后 kubelet 会调用 CRI 接口 获取 pod 状态信息 随后向API server发送pod状态更新请求 并将其存入ETCD 此时,pod变为Running状态 #程序员 #每天学习一点点 #干货分享 #编程 #知识分享
00:00 / 02:41
连播
清屏
智能
倍速
点赞594
启用k8s监控指标 90%的人都会遇到的K8S问题 现在我们想执行 kubectl top 命令 以查看节点和pod资源使用情况 可以看到 K8S提示我们没有安装 metrics server K8S默认是不安装metrics server的 这样K8S就无法获取集群监控指标 而kubectl top 命令就是通过读取集群监控指标实现的 自然也就不无正常工作了 别外 像HPA、VPA这样依赖集群监控指标的功能也无法工作 接下来我们来安装metrics server 从 K8S metrics server github 发布页面下载最新helm chart 然后使用 helm install 命令进行安装 安装完后你很有可能会发现镜像拉取失败 因为默认镜像在k8s.io.registry这个仓库 在国内即使使用了镜像加速也无法拉取 解决的办法是使用 docker hub上的镜像代替 现在我们编辑 metrics server Deployment image 然后保存 可以看到镜像拉取成功 但一直不能 Ready 我们查看下日志 通过错误日志可以看到 是因为kubelet的服务端证书SAN 没有包含节点IP地址而验证失败 这时我们可以再次编辑metrics server Deployment 往启动参数中新增一个配置项 --kubelet-insecure-tls 这样证书验证成功 metrics server pod进入 ready状态 这时 我们再次执行 kubectl top node 命令 可以看到命令工常工作 增加 --kubelet-insecure-tls 配置项不适用于生产环境 另一种办法是修改kubelet配置文件 具体修改方式我已写在metrics server详细安装手册中 需要的小伙伴可以评论区回复 #程序员 #每天学习一点点 #k8s #干货分享 #编程
00:00 / 01:49
连播
清屏
智能
倍速
点赞289
00:00 / 01:45
连播
清屏
智能
倍速
点赞6
00:00 / 00:50
连播
清屏
智能
倍速
点赞160
如何选择云原生环境? 最近几期视频相继介绍了 如何使用docker podman minikube kind kubekey sealos 搭建云原生环境 以及在线k8s环境和手工安装k8s集群 我把这些视频做成了一个环境搭建合集 方便大家查找及日后使用 那么这么多环境搭建的方式 我们到底应该如何选择呢? 🔴docker 非常适合没有云原生基础的初学者 原因是 Docker 涵盖了容器和镜像的所有基础操作 而且很重要的一点是 即使是其它 云原生环境 很多仍然使用 Dockerfile 来打包成 Docker 镜像 通过系统地学习 Docker 可以为云原生技术打下坚实的基础 🔴podman 适用于已经掌握了 Docker 但希望尝试其它容器管理工具的小伙伴 Podman 与 Docker 兼容性很好 学习成本低 特别适用于不能使用 root 用户的场景 以及需要生成 Kubernetes yaml清单文件的场景 是从容器管理工具向 Kubernetes 过渡的理想选择 🔴minikube和kind 适用于具备了较为扎实的容器基础 想进一步学习 Kubernetes的小伙伴 它们的工作原理类似 都是通过运行容器模拟 Kubernetes 集群节点 在本机组成一个小型 Kubernetes 集群 这两者所需资源较少 安装快速且简单 特别适合入门学习 Kubernetes 🔴kubekey和sealos 适用于具备一定的 Kubernetes 基础 并且想深入学习 Kubernetes的小伙伴 尤其是 Kubernetes 网络相关知识 那么这时务必使用多节点的 Kubernetes 集群 因为通过 Minikube 和 Kind 搭建的单节点集群 在网络实现上与多节点集群差异较大 使用 Kubekey 或 Sealos 基本上一条命令就能快速搭建多节点集群 🔴手工安装k8s环境 适用于具备良好的 Kubernetes 基础的小伙伴 并希望进一步了解 Kubernetes 集群是如何一步步搭建的 这种方式能够帮助你了解更多集群安装细节 🔴在线 k8s 环境 适用于不想或没有条件安装 Kubernetes的小伙伴 只要能够联网 就可以使用一套免费的k8s环境 #每天学习一点点 #程序员 #编程 #干货分享 #知识分享
00:00 / 02:18
连播
清屏
智能
倍速
点赞221
00:00 / 01:28
连播
清屏
智能
倍速
点赞31
00:00 / 03:58
连播
清屏
智能
倍速
点赞138
00:00 / 23:45
连播
清屏
智能
倍速
点赞2
00:00 / 02:13
连播
清屏
智能
倍速
点赞3
00:00 / 00:46
连播
清屏
智能
倍速
点赞25
00:00 / 06:23
连播
清屏
智能
倍速
点赞2