老 宋

人生最难是相逢,各位珍重!

0%

使用packer构建自定义镜像

虚拟化工具链介绍:

  • KVMLinux 内核态的虚拟化组件。

  • QEMULinux 用户态的虚拟化组件。QEMUKVM 结合提供完整的虚拟化技术支撑,属于架构的最底层。

  • Libvirt:介于架构底层和架构上层之间,它将底层的虚拟化特性抽象成统一的 API(应用程序编程接口),从而提供给上层调用。

  • PackerVagrant:虚拟化客户端工具,它们属于架构的最上层,直接跟终端用户交互。同时,在客户端之间也会产生相应联系,我们将 Packer 的输出物作为 Vagrant 的输入源。

阅读全文 »

multus cni 介绍

  • Kubernetes 缺乏支持VNF中多个网络接口的所需功能。传统上,网络功能使用多个网络接口分离控制,管理和控制用户/数据的网络平面。他们还用于支持不同的协议,满足不同的调整和配置要求。

  • 为了解决这个需求,英特尔实现了MULTUSCNI插件,其中提供了将多个接口添加到Pod的功能。这允许POD通过不同的接口连接到多个网络,并且每个接口都将使用其自己的CNI插件。

  • 有了MULTUS我们可以实现kubernetes高性能网络,例如sr-iov dpdk的方案。但这需要硬件网卡的支持。我们用multusmacvlan的方案实现pod多网卡的功能;

  • macvlanlinux内核实现的功能,实现通用pod多网卡解决方案。

阅读全文 »

  • 前不久线上的集群ingress的一个pod发生了驱逐:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@hy-master01 sjl]# check
    NAMESPACE NAME READY STATUS RESTARTS AGE
    ingress-nginx nginx-ingress-controller-6dc776b7bc-nvv8f 0/1 Evicted 0 20d
    ingress-nginx nginx-ingress-controller-6dc776b7bc-sc6t6 0/1 Evicted 0 20d
    ingress-nginx nginx-ingress-controller-6dc776b7bc-w85h9 0/1 Evicted 0 20d
    ingress-nginx nginx-ingress-controller-6dc776b7bc-z9djf 0/1 Evicted 0 20d
    ops delete-es-index-1634490000-szq5h 0/1 Completed 0 2d8h
    ops delete-es-index-1634576400-td5qc 0/1 Completed 0 32h
    ops delete-es-index-1634662800-nfj9j 0/1 Completed 0 8
阅读全文 »

  • 为了提高Kubernetes的安全性,您需要在您的环境中控制和限制资源创建。为此,Kubernetes提供了一个称为Pod安全策略(PSP)的beta功能,该功能很快将不被使用,并被称为Pod安全(PSS)的标准所取代。
  • OPA GatekeeperKubernetes的策略控制器。从技术上讲,这是一个可自定义的Kubernetes Admission Webhook,可帮助实施策略和加强治理。
  • 在之前的文章我们展示了如何通过go来开发webhook,而通过Gatekeeper则能轻松实现策略管理,而不用经过复杂的编码。
    阅读全文 »

  • kubernetes 的准入控制器的开发,通常情况下要么使用 gonet/http 开发http 服务端来实现逻辑,更简单的方法是使用 conntronl-runtime 实现。

  • 我们用 kubebuilder 来开发 k8s operator 的时候,可以生成自定义资源的 webhook ,同时也能方便的生成资源清单。但无论是 kubebuilder 还是 operator-sdk 框架都无法实现 core type 资源的 webhookkubebuiler 的官方文档提到了 core type webbook 的开发,但并未具体提供具体的开发指导。

  • 那么如何利用 kubebuiler 来简化核心资源准入控制器的开发?下面就探索了一种方式。

阅读全文 »