陈志军

物来顺应,未来不迎,当时不杂,既过不恋


  • 首页

  • 分类

  • 归档

  • 标签

  • 搜索

Envoy 介绍与用法

发表于 2023-07-03 | 分类于 Kubernetes | 阅读次数

Envoy 使用

Envoy的介绍

Envoy诞生于云原生流行之时,当微服务开发架构成为主流,需要管理和维护的应用越来越多,服务与服务之间的相互通信越来越复杂。Envoy的出现,提供了一个通用的代理层,处理不同服务之间的网络通信,并且通过强大的控制平台来管理这些通信。

Envoy是一个面向大规模现代服务架构而设计的7层负载和消息总线。主要信念是认为网络对应用程序应该是透明的。当出现网络和应用问题时,应该能够轻松找到问题的原因。其实Envoy的本质是网络代理,它可以代理你的应用服务。它主要的功能涵盖:L3/L4/L7代理、HTTP/2的支持、HTTP/3目前处于alpha阶段、GRPC支持、服务发现和动态配置、健康检查、负载均衡、流量管理、边缘代理支持、可观测性。

阅读全文 »

容器网络 - 三层网络解决方案

发表于 2023-06-29 | 分类于 Kubernetes | 阅读次数

容器网络 - 三层网络解决方案

前面两篇了解了kubernetes容器网络和CNI插件的主要工作原理。除了这种模式外,还有一种纯三层的网络方案,如Flannel的host-gw和Calico项目。

先看一下flannel的host-gw 示意图:

image-20230629173437200

你在主机上用ip route可以看到一个规则:

1
10.244.1.0/24 via 10.168.0.3 dev eth0

这个规则的含义就是,ip地址属于10.244.1.0/24网段的ip包,应该通过本机的eth0设备发出去(dev eth0),并且它的下一跳地址是10.168.0.3(via 10.168.0.3)。

阅读全文 »

容器网络 - CNI网络插件

发表于 2023-04-15 | 分类于 Kubernetes | 阅读次数

容器网络 - CNI网络插件

上一篇里面,我们讲了容器网络,跨主机网络通信(flannel的udp和vxlan);这里我们再了解一下cni它是怎么实现的,然后再说一下另一种网络模型HostGW。

跨主机通信中,不管是udp模式,还是vxlan模式,他们都有一个相同点,用户的容器连在了docker0网桥上。网络插件在主机上创建一个特殊的设备(UDP模式创建的TUN设备,VXLAN模式创建VTEP设备);docker0与这个设备配合,通过ip转发(路由表)协作。

网络插件真正要做的事情,是把不同主机上的特殊设备通过某种方法连通,达到容器跨主机网络通信的目的。kubernetes 通过 CNI 的接口,单独维护了一个网桥代替docker0,名字叫CNI网络,宿主机上的设备默认名称为cni0。

阅读全文 »

容器的网络基础

发表于 2023-02-11 | 分类于 Kubernetes | 阅读次数

容器的网络基础

容器的网络基础是主机的网络,在理解容器的网络前我们先来看一下主机的网络。

想象一个场景,你在湖南,你的爱人在湖北,有一天,你们两觉得恋爱的时间差不多了,该结婚了。结婚之前是不是要先见一下家长。但是湖南和湖北之间隔着长江。那你现在要去湖北的话,怎么办呢?你会想,我有车,只需要开车过“长江大桥”去对方父母家就行。

换一下,现在你有两台电脑,你想让两台电脑能够互相传递文件或者文本信息,那该怎么做呢?我想刚刚的例子中,你会想到,只要建一个桥就行了。那两台电脑直接的桥怎么建?首先你是需要将两台电脑用线”连”起来。正常来说,有了这条传输的线,两台机器之间互相通信的基础条件就具备了。然后再进一步,你家里又买了几台电脑,这几台电脑互相之间也需要通信,那电脑只有一个插口,总不能与谁通信的时候,就插谁的网线吧,这要是都在同一时间通信,那不就的乱了?所以家里一般会有个路由设备,大家都在路由设备插入,然后要发的消息就先发个路由器,路由器再转发。那路由器怎么分清是哪台电脑?所以是不是大家要有个唯一标识符号(mac地址)。你看OSI七层模型就出来了。具体的化大家可以参考一下这个(https://www.lifewire.com/layers-of-the-osi-model-illustrated-818017),我们主要是谈容器网络。

前面这些铺垫,其实主要还是为了主题容器网络。

阅读全文 »

什么是云原生?

发表于 2023-02-10 | 分类于 Kubernetes | 阅读次数

什么是云原生?

云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。
云原生分为 3 种核心技术和 2 个核心理念:
3 种核心技术:分别是容器、微服务、服务网格;
2 个核心理念:分别指不可变基础设施和声明式 API。

阅读全文 »

PaaS 容器平台应当具备的能力

发表于 2023-01-16 | 分类于 PaaS | 阅读次数

PaaS 容器平台应当具备的能力

我们先来看一下 IaaS、PaaS、SaaS 的区别,一张图可以看懂:

图 2

一个完善的 PaaS 基础平台应该具备的能力:

Harbor 镜像仓库安装与 Helm Chart 管理

发表于 2022-12-26 | 分类于 Harbor | 阅读次数

Harbor 镜像仓库安装与 Helm Chart 管理

Harbor 是一款非常优秀的企业级开源镜像仓库管理器。Harbor 是基于 Docker Registry之上带有用户权限控制,镜像扫描,镜像签名的款工具。用起来很方便,我们公司目前在测试和生产都在使用。从去年 10 月到今天,除去一次 ceph 集群扩容,没有发生一次事故,一直运行很稳定;本文将记录一下我们的使用方式和遇到的一些问题解决方式。

Harbor 资源准备

1
2
3
4
5
6
7
8
9
10
Harbor 1.7.6 版本
Redis 4.0
Postgres 10.6
Docker 1.13.1
docker-compose 1.18.0
Ceph 12

haproxy 机器 2 台
VIP 1 个
Harbor 主机 2 台

公司目前的 harbor 是基于 1.76 搭建的高可用方案,证书的问题,我们是公网使用第三方证书。内网使用自签名的证书;在我这里,我在 harbor 的搭建中采用的是内部 http,外部挂 F5。架构图如下:

2020-04-26-21-15-43

生产上我们用 F5 替代 Haproxy。

我们在 Haproxy/F5 层将 https 转成 http 再转发给内部 harbor。

阅读全文 »

ETCD 主机恢复

发表于 2022-12-19 | 分类于 Kubernetes | 阅读次数

ETCD 主机恢复

背景:在没有master 备份的情况下, 集群中有一个master 节点被直接重装系统;该节点非 ETCD master 节点。所以集群还是处于可用状态。但是 master 由之前的三节点变为 2 节点;

阅读全文 »

kubernetes 基础 一(简介与核心组件介绍)

发表于 2022-11-07 | 分类于 Kubernetes | 阅读次数

kubernetes 基础 一(简介与核心组件介绍)

Kubernetes 是什么?

Kubernetes 是一个用于编排容器化服务的的开源平台。我们通常会将 Kubernetes 简称为 K8s。Kubernetes 通常也被大家当做容器编排引擎,可以这样说,目前市面上很多的 PaaS 平台基本都是使用 k8s 作为其底层支持。

阅读全文 »

SpringBoot&SpringCloud 组件容器化方案

发表于 2022-08-08 | 分类于 Kubernetes | 阅读次数

SpringBoot&SpringCloud 组件容器化方案

该方案为 Java 开发人员在使用 springboot 开发以及是用 springcloud 组件时,将 组件/服务 进行容器化部署运行的方案。

阅读全文 »
12…18

180 日志
41 分类
70 标签
RSS
GitHub GitEE
推荐阅读
  • 陈志军的个人站
© 2017 - 2023 陈志军
由 Hexo 强力驱动
主题 - NexT.Muse