00:00 / 05:25
连播
清屏
智能
倍速
点赞4073
两项k8s最重要的设计思想 在传统的软件开发中,我们常见的编程范式有: 面向过程 面向对象 面向数据库 面向服务 面向事件等 kubernetes则有所不同,有其独特之处 面向 API 编程 Kubernetes是一个面向 API 编程的软件系统 这一理念转变源于Kubernetes作为 现代云原生平台的核心定位 它必须具备强大的灵活性和可扩展性 在Kubernetes中 API Server是一个关键组件 负责管理所有资源 每种资源类型都有对应的API 例如: Namespace、Pod、Deployment 新增一种资源类型 本质上就是新增一个API 比如 当你使用kube control命令创建一个Pod 时 其实是通过kube control命令调用了API Server的Pod创建接口 随后将相关信息存储到ETCD数据库中 声明式编程 kubernetes还是一个声明式的软件系统 用户定义资源时 只是提供了一份yaml格式的声明 声明了用户对该资源的期望状态 而资源的实际状态会因为某些原因而偏离期望状态 所以需要有一个角色来持续监控这些资源的状态 当资源的实际状态与期望状态不一致时 采取相应的措施让资源重新回到用户的期望状态 这个角色就是控制器 Controller 例如,当你创建了一个副本数为2的Deployment资源时: 对应工作节点的kubelet会创建pod ReplicaSet Controller会持续监控其对应的Pod数量 如果发现副本数少于2,如某个 Pod 崩溃 Controller会创建一个新的Pod 并由节点上的kubelet启动该pod 以确保副本数恢复到设定值 此机制也适用于大部分其他资源类型 #程序员 #每天学习一点点 #编程 #干货分享 #云原生
00:00 / 01:42
连播
清屏
智能
倍速
点赞173
00:00 / 01:25
连播
清屏
智能
倍速
点赞355
00:00 / 00:16
连播
清屏
智能
倍速
点赞60
00:00 / 06:14
连播
清屏
智能
倍速
点赞1
00:00 / 07:22
连播
清屏
智能
倍速
点赞1
00:00 / 05:41
连播
清屏
智能
倍速
点赞NaN
00:00 / 07:37
连播
清屏
智能
倍速
点赞4
00:00 / 01:48
连播
清屏
智能
倍速
点赞284
00:00 / 23:09
连播
清屏
智能
倍速
点赞490
00:00 / 11:52
连播
清屏
智能
倍速
点赞0
启用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
连播
清屏
智能
倍速
点赞287
00:00 / 08:04
连播
清屏
智能
倍速
点赞5