Hujin Blog

Stay hungry Stay foolish

5分钟快速部署Kubernetes集群

环境信息 操作系统:centos7.6 4C8G 节点个数:1master+2node 内核版本:3.10.0-1127.el7.x86_64 网络信息:1管理 1业务 准备(master+node) 每个节点修改hostname 1 hostnamectl set-hostname nodex 配置/etc/hosts 1 2 3 4 cat /etc/h...

Istio Bookinfo

架构图 在k8s中通过deployment安装一些微服务并通过service暴露出来,包括 productpage: python编写,服务主界面,或者叫index页面,页面中会访问其他微服务 reviews: java编写,书籍评价微服务 details: ruby编写,书籍详情信息微服务 ratings: nodejs编写,数据推荐指数微服务,rating serv...

Istio集成测试

简介 istio集成测试使用go test,会自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件。istio集成测试脚本中根据case定义一般会先部署istio集群,再部署对应的echo instance,最后执行具体的case。 准备 修改master节点apiserver参数 这里需要支持第三方token(third-party-token),默认k8s...

DockerCE20.10版本打包流程

背景 Docker-CE分支在v20.10版本之后将会停止更新,原先的docker-ce将拆分成docker/cli和moby/moby两个项目,其中docker/cli就是docker的客户端,也就是我们常用的docker命令行工具所属的项目;moby/moby项目就是原先docker engine的部分 环境准备 在编译docker源码之前,需要安装docker-ce 1 yum ...

Tungstenfabric CNI源码 -- NetworkPolicy

背景 tungstenfabric cni通过watch kubernetes apiserver中指定的资源,并在sdn中创建对应的网络设备来实现对应功能。本文重点介绍cni针对networkpolicy的处理,根据源码逐步分析。 架构&流程图 源码解析 在process方法中会处理networkpolicy的创建、更新和删除。这里我们先看下创建和更新 创建和更新方法中...

Istio初探

背景 网络上很多理论性的说明,包括istio的前世今生,这里就不赘述了,本文将通过安装和实际操作的方式来简单了解下istio的特性. 准备 下载最新版本istio 1 2 3 yum install -y socat curl -L https://istio.io/downloadIstio | sh - cd istio-1.11.2 安装istioctl 1 cp bin/i...

Docker Containerd CRI-O Runc等概念的区别[译]

cri oci

背景 从Docker引发这场热潮以来,越来越多的工具和标准涌现,来帮助用户使用“容器”这个技术 大型的技术公司由于相互之间的竞争,引入越来越多的技术概念和实现,使得普通用户很容易困惑和不理解。 本文将详细介绍所有相关的概念名称,并尝试解释具体术语,解释容器生态系统如何在2021年协同工作。 你不是唯一一个不理解这些概念的人,也不是最后一个… 理解Docker 区别Docker这个公司...

Multus CNI

背景 当前社区支持多个cni插件,当前集群底层网络实现变化后存在切换CNI插件的需求。由于cni插件主要在pod网卡创建和删除流程中使用,切换CNI插件后,要求pod重建,服务和网络都会中断 这里需要一种更加平滑的切换方式,在保证页面和网络不中断的情况下切换CNI 架构 上图可以看到,一个pod可以同时有多个网卡,其中eth0是默认网卡,也就是默认路由指向的网卡 net0和net...

KubeOVN - VPCNatGateway

vpc nat gateway

功能 用来给k8s中pod/service/ingress等网络资源访问外部网络 支持功能 指定外部网络出口物理网卡 指定多子网以及子网的网关 浮动IP功能 端口转发功能 静态路由规则 SNAT功能 原理 创建一个nat gateway deployment,副本数是1 通过configmap获取pod对应的镜像文件路径,创建nat gatew...

Kuryr CNI

cni

背景 当k8s部署在openstack节点或者虚拟机中时,可以使用openstack提供的网络功能实现k8s cni,这里主要对接的是neutron和lbaas模块,社区提供了kuryr的实现方案。 Kuryr 是 OpenStack Neutron 的子项目,其主要目标是透过该项目来集成 OpenStack 与 Kubernetes 的网络。该项目在 Kubernetes 中实作了原生 ...