使用CNI为Containerd创建网络接口 Mar 09, 2021

上一篇讲到如何创建一个redis-server的容器服务,但该服务现在没有网络接口,所以我们在外面还没法访问这个服务,今天就来讲下如何通过CNI创建网络接口来访问Containerd服务

CNI是什么

CNI(Container Network Interface) 是一套容器网络接口规范,通过插件的形式支持各种各样的网络类型,而标准化的好处就是你只需一套标准json配置就可以为一个容器创建网络接口

...
containerd介绍 Mar 08, 2021

containerd是什么

在这里我用自己的理解总结一下,containerd是一个容器相关功能的管理工具,它上层能对接cridocker,下层对接容器执行器,比如runc或者 Microsoft的hcsshim,中间层支持各种插件扩展,或者说containerd是一个插件集合,它的各个功能都是插件化的,你也可以加载自己的插件来增强containerd的功能

...
实现一个k8s的节点本地服务 May 21, 2020 通过k8s的crd实现一个节点本地服务 ...
当在k8s创建一个实体时会发生什么 Apr 15, 2020

前置条件

容器: docker

kubernetes: 1.14.2

当在k8s中创建一个deployments,注意kubeapi会通知到每一个controller,多个controll同时对一个deployment增加replicaSet只有一个会成功

sequenceDiagram
  kubectl->kubeapi: 创建一个deployment
  kubeapi->etcd: 持久化这次修改
  kubeapi->kubectl: 告知客户端创建成功
  deploymentController->kubeapi: 获取该deployment,创建对应的replicationSet并绑定该deployment
  replicationSetController->kubeapi: 获取该replicationSet,根据实例数创建pod
  kube_schedule->kubeapi: 获取新的pod,通过权重为它分配节点信息
  kubelet->kubeapi: 获取pod信息,通过cri发送给本地docker,创建container
  kubelet->container: 通知docker创建pod中的container
  kubelet->kubeapi: 收集container状态,更新pod状态
...