K8s---网络通信 Configmap secrer volumesk8s

2023-05-16

k8s网络通信简介

k8s通过CNI接口接入其他插件来实现网络通讯。目前比较流行的插件有flannel,calico等。CNI插件存放位置:# cat /etc/cni/net.d/10-flannel.conflist

插件使用的解决方案如下:

虚拟网桥,虚拟网卡,多个容器共用一个虚拟网卡进行通信。
多路复用:MacVLAN,多个容器共用一个物理网卡进行通信。
硬件交换:SR-LOV,一个物理网卡可以虚拟出多个接口,这个性能最好。 
容器间通信:同一个pod内的多个容器间的通信,通过lo即可实现;
pod之间的通信: 同一节点的pod之间通过cni网桥转发数据包。 不同节点的pod之间的通信需要网络插件支持。
pod和service通信:
通过iptables或ipvs实现通信,ipvs取代不了iptables,因为ipvs只能做负载均衡,而做不了nat转换。
pod和外网通信:iptables的MASQUERADE。
Service与集群外部客户端的通信;(ingress、nodeport、loadbalancer)

flannel网络 

flannel网络简介
Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。

在默认的Docker配置中,每个节点上的Docker服务会分别负责所在节点容器的IP分配。这样导致的一个问题是,不同节点上容器可能获得相同的内外IP地址。并使这些容器之间能够之间通过IP地址相互找到,也就是相互ping通。

Flannel的设计目的就是为集群中的所有节点重新规划IP地址的使用规则,从而使得不同节点上的容器能够获得“同属一个内网”且”不重复的”IP地址,并让属于不同节点上的容器能够直接通过内网IP通信。

VXLAN,即Virtual Extensible LAN(虚拟可扩展局域网),是Linux本身支持的一网种网络虚拟化技术。VXLAN可以完全在内核态实现封装和解封装工作,从而通过“隧道”机制,构建出覆盖网络(OverlayNetwork)。
VTEP:VXLAN Tunnel End Point(虚拟隧道端点),在Flannel中VNI的默认值是1,这也是为什么宿主机的VTEP设备都叫flannel.1的原因。
Cni0: 网桥设备,每创建一个pod都会创建一对 vethpair。其中一端是pod中的eth0,另一端是Cni0网桥中的端口(网卡)。
Flannel.1:TUN设备(虚拟网卡),用来进行 vxlan报文的处理(封包和解包)。不同node之间的pod数据流量都从overlay设备以隧道的形式发送到对端。
Flanneld:flannel在每个主机中运行flanneld作为agent,它会为所在主机从集群的网络地址空间中,获取一个小的网段subnet,本主机内所有容器的IP地址都将从中分配。同时Flanneld监听K8s集群数据库,为flannel.1设备提供封装数据时必要的mac、ip等网络数据信息。

 

当容器发送IP包,通过veth pair发往cni网桥,再路由到本机的flannel.1设备进行处理。
VTEP设备之间通过二层数据帧进行通信,源VTEP设备收到原始IP包后,在上面加上一个目的MAC地址,封装成一个内部数据帧,发送给目的VTEP设备。
内部数据桢,并不能在宿主机的二层网络传输,Linux内核还需要把它进一步封装成为宿主机的一个普通的数据帧,承载着内部数据帧通过宿主机的eth0进行传输。
Linux会在内部数据帧前面,加上一个VXLAN头,VXLAN头里有一个重要的标志叫VNI,它是VTEP识别某个数据桢是不是应该归自己处理的重要标识。
flannel.1设备只知道另一端flannel.1设备的MAC地址,却不知道对应的宿主机地址是什么。在linux内核里面,网络设备进行转发的依据,来自FDB的转发数据库,这个flannel.1网桥对应的FDB信息,是由flanneld进程维护的。
linux内核在IP包前面再加上二层数据帧头,把目标节点的MAC地址填进去,MAC地址从宿主机的ARP表获取。
此时flannel.1设备就可以把这个数据帧从eth0发出去,再经过宿主机网络来到目标节点的eth0设备。目标主机内核网络栈会发现这个数据帧有VXLAN Header,并且VNI为1,Linux内核会对它进行拆包,拿到内部数据帧,根据VNI的值,交给本机flannel.1设备处理,flannel.1拆包,根据路由表发往cni网桥,最后到达目标容器

flannel配置

flannel支持多种后端:

Vxlan:vxlan //报文封装,默认。Directrouting //直接路由,跨网段使用vxlan,同网段使用host-gw模式。
host-gw: //主机网关,性能好,但只能在二层网络中,不支持跨网络, 如果有成千上万的Pod,容易产生广播风暴,不推荐
UDP: //性能差,不推荐

配置过程

 

 

 

 

 

 

 

calico网络插件

calico简介
flannel实现的是网络通信,calico的特性是在pod之间的隔离。
通过BGP路由,但大规模端点的拓扑计算和收敛往往需要一定的时间和计算资源。
纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。
Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

网络架构:

Felix:监听ECTD中心的存储获取事件,用户创建pod后,Felix负责将其网卡、IP、MAC都设置好,然后在内核的路由表里面写一条,注明这个IP应该到这张网卡。同样如果用户制定了隔离策略,Felix同样会将该策略创建到ACL中,以实现隔离。
BIRD:一个标准的路由程序,它会从内核里面获取哪一些IP的路由发生了变化,然后通过标准BGP的路由协议扩散到整个其他的宿主机上,让外界都知道这个IP在这里,路由的时候到这里来。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NetworkPolicy策略模型:

控制某个namespace下的pod的网络出入站规则

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Configmap简介

 Configmap用于保存配置数据,以键值对形式存储。
configMap 资源提供了向 Pod 注入配置数据的方法。
旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。

典型的使用场景:

  1. 填充环境变量的值
  2. 设置容器内的命令行参数
  3. 填充卷的配置文件
     

创建ConfigMap的4种方式:

  • 使用字面值创建
  • 使用文件创建
  • 使用目录创建
  • 编写configmap的yaml文件创建

Configmap创建方式

使用字面值创建:

 

 

 使用文件创建:

 

 

 

使用目录创建:

 

 

 

 编写configmap的yaml文件创建

 

 

 

 

 

 

 

 

 

 

Secret简介

Secret对象类型用来保存敏感信息,例如密码、OAuth 令牌和 ssh key。
敏感信息放在secret 中比放在 Pod 的定义或者容器镜像中来说更加安全和灵活。

Pod 可以用两种方式使用secret:

作为volume 中的文件被挂载到 pod 中的一个或者多个容器里。
当kubelet 为 pod 拉取镜像时使用。
 
Secret的类型:

ServiceAccount:Kubernetes 自动创建包含访问 API 凭据的 secret,并自动修改 pod以使用此类型的secret。
Opaque:使用base64编码存储信息,可以通过base64 --decode解码获得原始数据,因此安全性弱。
kubernetes.io/dockerconfigjson:用于存储docker registry的认证信息。

ServiceAccount
Service account是为了方便Pod里面的进程调用Kubernetes API或其他外部服务而设计的。它与User account不同:

User account是为人设计的,而service account则是为Pod中的进程调用Kubernetes API而设计;
User account是跨namespace的,而service account则是仅局限它所在的namespace;
每个namespace都会自动创建一个default service account
Token controller检测service account的创建,并为它们创建secret
开启ServiceAccount Admission Controller后
        1、每个Pod在创建后都会自动设置spec.serviceAccount为default(除非指定了其他ServiceAccout)
       2、验证Pod引用的service account已经存在,否则拒绝创建
       3、如果Pod没有指定ImagePullSecrets,则把service account的ImagePullSecrets加到Pod中 
       4、每个container启动后都会挂载该service account的token和ca.c到/var/run/secrets/kubernetes.io/serviceaccount/
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Volumes简介

 容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失,因为容器会以干净的状态重建。其次,当在一个 Pod 中同时运行多个容器时,常常需要在这些容器之间共享文件。 Kubernetes 抽象出 Volume 对象来解决这两个问题。

Kubernetes 卷具有明确的生命周期,与包裹它的 Pod 相同。 因此,卷比 Pod 中运行的任何容器的存活期都长,在容器重新启动时数据也会得到保留。 当然,当一个 Pod 不再存在时,卷也将不再存在。也许更重要的是,Kubernetes 可以支持许多类型的卷,Pod 也能同时使用任意数量的卷。

卷不能挂载到其他卷,也不能与其他卷有硬链接。 Pod 中的每个容器必须独立地指定每个卷的挂载位置。

Kubernetes 支持下列类型的卷: • awsElasticBlockStore 、azureDisk、azureFile、cephfs、cinder、configMap、csi • downwardAPI、emptyDir、fc (fibre channel)、flexVolume、flocker • gcePersistentDisk、gitRepo (deprecated)、glusterfs、hostPath、iscsi、local、 • nfs、persistentVolumeClaim、projected、portworxVolume、quobyte、rbd • scaleIO、secret、storageos、vsphereVolume

• emptyDir卷 • 当 Pod 指定到某个节点上时,首先创建的是一个 emptyDir 卷,并且只要 Pod 在 该节点上运行,卷就一直存在。 就像它的名称表示的那样,卷最初是空的。 尽管 Pod 中的容器挂载 emptyDir 卷的路径可能相同也可能不同,但是这些容器都可 以读写 emptyDir 卷中相同的文件。 当 Pod 因为某些原因被从节点上删除时, emptyDir 卷中的数据也会永久删除。

• emptyDir 的使用场景: • 缓存空间,例如基于磁盘的归并排序。 • 为耗时较长的计算任务提供检查点,以便任务能方便地从崩溃前状态恢复执行。 • 在 Web 服务器容器服务数据时,保存内容管理器容器获取的文件。 • 默认情况下, emptyDir 卷存储在支持该节点所使用的介质上;这里的介质可以是磁盘 或 SSD 或网络存储,这取决于您的环境。 但是,您可以将 emptyDir.medium 字段设 置为 "Memory",以告诉 Kubernetes 为您安装 tmpfs(基于内存的文件系统)。 虽然 tmpfs 速度非常快,但是要注意它与磁盘不同。 tmpfs 在节点重启时会被清除,并且 您所写入的所有文件都会计入容器的内存消耗,受容器内存限制约束。

• hostPath 卷能将主机节点文件系统上的文件或目录挂载到您的 Pod 中。 虽然这不是大多数 Pod 需要的,但是它为一些应用程序提供了强大的逃生舱。 • hostPath 的一些用法有: • 运行一个需要访问 Docker 引擎内部机制的容器,挂载 /var/lib/docker 路径。 • 在容器中运行 cAdvisor 时,以 hostPath 方式挂载 /sys。 • 允许 Pod 指定给定的 hostPath 在运行 Pod 之前是否应该存在,是否应该创建以及应该以 什么方式存在。

• 当使用这种类型的卷时要小心,因为: • 具有相同配置(例如从 podTemplate 创建)的多个 Pod 会由于节点上文件的不同而在不同 节点上有不同的行为。 • 当 Kubernetes 按照计划添加资源感知的调度时,这类调度机制将无法考虑由 hostPath 使 用的资源。 • 基础主机上创建的文件或目录只能由 root 用户写入。您需要在 特权容器 中以 root 身份运 行进程,或者修改主机上的文件权限以便容器能够写入 hostPath 卷。

• PersistentVolume(持久卷,简称PV)是集群内,由管理员提供的网络存储的一部分。就像集群 中的节点一样,PV也是集群中的一种资源。它也像Volume一样,是一种volume插件,但是它的 生命周期却是和使用它的Pod相互独立的。PV这个API对象,捕获了诸如NFS、ISCSI、或其他 云存储系统的实现细节。 • PersistentVolumeClaim(持久卷声明,简称PVC)是用户的一种存储请求。它和Pod类似,Pod 消耗Node资源,而PVC消耗PV资源。Pod能够请求特定的资源(如CPU和内存)。PVC能够请 求指定的大小和访问的模式(可以被映射为一次读写或者多次只读)。 • 有两种PV提供的方式:静态和动态。 • 静态PV:集群管理员创建多个PV,它们携带着真实存储的详细信息,这些存储对于集群用 户是可用的。它们存在于Kubernetes API中,并可用于存储使用。 • 动态PV:当管理员创建的静态PV都不匹配用户的PVC时,集群可能会尝试专门地供给 volume给PVC。这种供给基于StorageClass。 • PVC与PV的绑定是一对一的映射。没找到匹配的PV,那么PVC会无限期得处于unbound未绑定 状态。

• 使用 • Pod使用PVC就像使用volume一样。集群检查PVC,查找绑定的PV,并映射PV给Pod。对 于支持多种访问模式的PV,用户可以指定想用的模式。一旦用户拥有了一个PVC,并且 PVC被绑定,那么只要用户还需要,PV就一直属于这个用户。用户调度Pod,通过在Pod的 volume块中包含PVC来访问PV。

• 释放 • 当用户使用PV完毕后,他们可以通过API来删除PVC对象。当PVC被删除后,对应的PV就 被认为是已经是“released”了,但还不能再给另外一个PVC使用。前一个PVC的属于还存 在于该PV中,必须根据策略来处理掉。

• 回收 • PV的回收策略告诉集群,在PV被释放之后集群应该如何处理该PV。当前,PV可以被 Retained(保留)、 Recycled(再利用)或者Deleted(删除)。保留允许手动地再次声明 资源。对于支持删除操作的PV卷,删除操作会从Kubernetes中移除PV对象,还有对应的外 部存储(如AWS EBS,GCE PD,Azure Disk,或者Cinder volume)。动态供给的卷总是 会被删除。

 

 

 

 

 

 

 

 

 

 

 

 

 

• StorageClass提供了一种描述存储类(class)的方法,不同的class可能会映射到不同的服务质 量等级和备份策略或其他策略等。

• 每个 StorageClass 都包含 provisioner、parameters 和 reclaimPolicy 字段, 这些字段会在 StorageClass需要动态分配 PersistentVolume 时会使用到。

• StorageClass的属性 • Provisioner(存储分配器):用来决定使用哪个卷插件分配 PV,该字段必须指定。可以指 定内部分配器,也可以指定外部分配器。外部分配器的代码地址为: kubernetesincubator/external-storage,其中包括NFS和Ceph等。

• Reclaim Policy(回收策略):通过reclaimPolicy字段指定创建的Persistent Volume的回收 策略,回收策略包括:Delete 或者 Retain,没有指定默认为Delete。

• 更多属性查看:https://kubernetes.io/zh/docs/concepts/storage/storage-classes/

 

 

 

 

 

 

 

 

 

 

NFS Client Provisioner是一个automatic provisioner,使用NFS作为存储,自动创建PV和对应的 PVC,本身不提供NFS存储,需要外部先有一套NFS存储服务。 • PV以 ${namespace}-${pvcName}-${pvName}的命名格式提供(在NFS服务器上) • PV回收的时候以 archieved-${namespace}-${pvcName}-${pvName} 的命名格式(在NFS 服务器上) • nfs-client-provisioner源码地址:https://github.com/kubernetes-incubator/externalstorage/tree/master/nfs-client

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

• 默认的 StorageClass 将被用于动态的为没有特定 storage class 需求的 PersistentVolumeClaims 配置存储:(只能有一个默认StorageClass) • 如果没有默认StorageClass,PVC 也没有指定storageClassName 的值,那么意 味着它只能够跟 storageClassName 也是“”的 PV 进行绑定。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

K8s---网络通信 Configmap secrer volumesk8s 的相关文章

  • windows中为cmd设置代理

    在CMD环境下设置代理可能不是很常用 xff0c 但是某些情况下还是可能会用到 xff0c 比如有些资源网站被墙了 xff0c 此时你如果想访问这些资源时 xff0c 只能通过代理来访问相应的资源 xff0c 而你需要在CMD环境下下载墙外
  • version `GLIBCXX_3.4.21' not found 解决办法

    在安装cmake3 5 1运行 bootstrap的时候出现如下提示 xff1a gmake cmake 是最新的 span class hljs header usr soft cmake 3 5 1 Bootstrap cmk cmak
  • Oracle死锁查询及处理

    一 数据库死锁的现象 程序在执行的过程中 xff0c 点击确定或保存按钮 xff0c 程序没有响应 xff0c 也没有出现报错 二 死锁的原理 当对于数据库某个表的某一列做更新或删除等操作 xff0c 执行完毕后该条语句不提 交 xff0c
  • Ubuntu 18.04添加中文输入法

    找到设置 xff1a 点击 Manager Installed Languages 出现下图提示 xff1a Keyboard input method system 里面有Ibus XIM fcitx none 三种输入架构 xff0c
  • KEIL问题【打开文件太多造成任何按钮都不可点】【Keil4 编译时出现RL-ARM is not allowed with this license 】【 局部变量仿真显示not in scope】

    SYD8801是一款低功耗高性能蓝牙低功耗SOC xff0c 集成了高性能2 4GHz射频收发机 32位ARM Cortex M0处理器 128kB Flash存储器 以及丰富的数字接口 SYD8801片上集成了Balun无需阻抗匹配网络
  • Django(2)模板、标签

    文章目录 一 使用Django模板修改页面二 Django模板标签 变量 列表 字典 过滤器1 default2 length3 filesizeformat4 date5 truncatechars6 safe if else标签 for
  • Django(3)模型

    文章目录 一 Django 模型 ORM二 数据库配置三 定义模型 xff08 创建数据表 xff09 四 数据库基本操作 插入数据 获取数据 xff08 1 xff09 查询所有的数据行 xff08 2 xff09 where条件查询 x
  • Django(4)表单

    文章目录 一 概述二 GET方法三 POST方法四 Request对象五 QueryDict对象 此文章参考菜鸟教程 xff1a Django 表单 菜鸟教程 runoob com Django版本 xff1a span class tok
  • Django(5)视图

    文章目录 一 视图概述二 请求对象HttpRequest xff08 1 xff09 GET xff08 2 xff09 POST xff08 3 xff09 body xff08 4 xff09 path xff08 5 xff09 me
  • Django(6)路由

    文章目录 一 路由概述二 正则路径中的分组 xff08 1 xff09 正则路径中的无名分组 xff08 2 xff09 正则路径中的有名分组 xff08 3 xff09 路由分发 三 反向解析 xff08 使用reverse xff09
  • Django(7)Admin管理工具

    文章目录 一 概述二 使用管理工具 xff08 1 xff09 激活管理工具 xff08 2 xff09 使用管理工具 xff08 3 xff09 复杂模型 xff08 4 xff09 自定义表单 xff08 5 xff09 内联 xff0
  • Django(8)ORM单表实例

    文章目录 一 Django ORM 单表实例创建新模型 二 数据库操作 xff08 1 xff09 添加数据 xff08 2 xff09 查找数据 filter exclude get order by reverse count firs
  • Django(9)ORM多表实例

    文章目录 一 Django ORM 多表实例创建模型插入数据 二 ORM 插入数据一对多 外键 ForeignKey多对多 xff08 Many ToManyField xff09 xff1a 在第三张表添加数据 三 关联管理器 对象调用1
  • Django(10)ORM聚合查询

    文章目录 一 聚合查询 aggregate 二 分组查询 annotate 三 F 查询四 Q 查询 此文章参考菜鸟教程 xff1a Django ORM 多表实例 xff08 聚合与分组查询 xff09 菜鸟教程 runoob com D
  • Python类的常用魔法方法

    文章目录 一 96 init 96 二 96 str 96 三 96 del 96 四 96 repr 96 五 使用案例 一 init span class token comment 在Python类中 有一类方法 这类方法以 两个下划
  • ubuntu 升级内核实战

    ubuntu 12 04内核是linux 3 2 0 24 xff0c 其实升级到最新版本3 3 4也没什么很大意义 xff0c 主要是集成了一些新的驱动和一些普通用户用不到的功能 xff0c 所以基本上本文纯属折腾 xff0c 但不要随便
  • centos7安装python3不影响python2

    文章目录 一 前言二 安装python3 一 前言 Centos7中很多软件命令依赖于系统自带的python2 比如yum 卸载python2会造成yum不可用 所以没必要卸载python2 如果要使用python3 可以通过软链接的方式安
  • Python异常的传递以及完整结构

    文章目录 异常的传递 异常的完整结构 异常的传递 span class token triple quoted string string 34 34 34 异常的传递是异常处理的底层机制 是原理层面 异常传递 当一行代码发生异常后 会向外
  • Python互斥锁小技巧

    span class token triple quoted string string 34 34 34 需求 创建两个线程 其中一个输出 1 52 另一个输出 A Z 输出格式要求 12A 13B 56C 5151Z 34 34 34
  • Python-TCP服务端程序开发

    文章目录 一 TCP服务端程序开发二 端口复用三 判断客户端程序是否断开四 多任务版本 一 TCP服务端程序开发 span class token triple quoted string string 34 34 34 主动套接字 可以收

随机推荐

  • Python-TCP网络编程基础以及客户端程序开发

    文章目录 一 网络编程基础 什么是IP地址 什么是端口和端口号 TCP介绍 socket介绍 二 TCP客户端程序开发三 扩展 一 网络编程基础 什么是IP地址 IP地址就是标识网络中设备的一个地址 IP地址分为 IPv4 和 IPv6 I
  • HTML介绍

    文章目录 一 HTML介绍二 创建三 HTML结构四 常见的标签五 链接标签六 图片标签七 资源路径八 列表标签九 表格标签十 表单标签十一 表单提交 一 HTML介绍 HTML 超文本标记语言作用 书写前端页面前端三大技术 三大标准 HT
  • CSS介绍

    文章目录 一 CSS介绍二 CSS的引入方式三 CSS选择器 一 CSS介绍 定义 层叠样式表作用 美化界面 设置标签文字大小 颜色 字体加粗等样式控制页面布局 设置浮动 定位等样式 基本语法 选择器 样式规则 样式规则 属性名1 属性值1
  • JavaScript介绍

    文章目录 一 JavaScript介绍二 JavaScript的引入方式三 JavaScript的变量与数据类型四 JavaScript中的函数五 JavaScript变量的作用域六 JavaScript运算符七 JavaScript判断语
  • JQuery介绍

    文章目录 一 JQuery介绍二 JQuery使用三 JQuery选择器四 JQuery选择集过滤五 JQuery选择集转移六 JQuery获取和操作标签内容七 JQuery获取和设置元素属性八 JQuery事件九 JQuery事件代理 事
  • 树莓派操作系统烧录

    准备 硬件 xff1a 树莓派4BMicroSD卡 xff08 16GB xff09 SD卡读卡器 软件 xff1a SD卡格式化软件 xff08 SDFormatter xff09 系统烧录软件 xff08 balenaEtcher xf
  • 嵌入式系统开发必读经典书目

    读本科的时候就对嵌入式系统感兴趣 xff0c 虽然在校的时候积累了大量材料 xff0c 但是在较长的时间里都没有机会细读 xff0c 这学期终于静下心来 xff0c 系统学习一遍 xff0c 期间把以前积累的各类教材或粗粗浏览或仔细揣摩 x
  • 百度笔试题2018

    题外话 首先我要吐槽一下 xff0c csdn简直是在作死啊 xff0c 复制博文底下的那个引用太恶心了 xff0c 我复制自己的博客 xff0c 还有引用 xff0c 啥玩意啊 所以我决定换地方了 xff0c 以后github xff08
  • 统计计算——基于R语言的随机数生成

    统计计算 基于R语言的随机数生成 R中常见一元分布函数 代码展示 xff1a set seed 191206 设置随机数种子 xff0c 为了保证多次生成的随机数一致 xff0c 需要保证数据一样情况下进行再次实验时可用到 N 61 100
  • 第九章 Linux下的虚拟化部署

    第一步 查看CPU信息 打开虚拟机安装程序在四种方式中选择第一种 找到对应镜像 走安装流程 等待安装完成 点击协议 点击我同意 即可打开虚拟机
  • 第二本书 第一章 linux中的网络配置

    配置新网络 ifconfig ping ip 指令的使用 无图形模式生成新网络 nmcil指令的使用 dhcp服务配置 块网卡上配置多个IP 设定dns
  • 阿里云培训-负载均衡(CLB/ALB)

    什么是传统型负载均衡CLB 传统型负载均衡CLB xff08 Classic Load Balancer xff09 是将访问流量根据转发策略分发到后端多台云服务器 xff08 ECS实例 xff09 的流量分发控制服务 CLB扩展了应用的
  • 阿里云培训-AS(弹性伸缩)

    什么是弹性伸缩Auto Scaling 弹性伸缩 xff08 Auto Scaling xff09 是根据业务需求和策略自动调整计算能力 xff08 即实例数量 xff09 的服务 您可以指定实例的类型 xff0c 即ECS实例或ECI实例
  • php源码安装

    php源码安装 下载php的rpm包并解压 在解压之后的目录中 xff0c 查看是否有configure xff0c 如果有此文件 xff0c 使用 configure gt make gt make install方式进行源码安装 roo
  • K8S集群部署

    环境准备 由于k8s 集群比较吃配置 xff0c 使用 按量计费 来进行学习 xff0c 三台 4核8G 的费用大概再 1 6元 小时 三台云服务器 配置 xff1a 2核2G 三台服务器内网互通 xff08 内网可以互相访问 VPC xf
  • K8S Pod

    Pod管理 Pod是可以创建和管理Kubernetes计算的最小可部署单元 xff0c 一个Pod代表着集群中运行的一个进程 xff0c 每个pod都有一个唯一的ip 一个pod类似一个豌豆荚 xff0c 包含一个或多个容器 xff08 通
  • 物联网之嵌入式设备

    物联网自提出以来 xff0c 业界对其定义也不断的加深优化 xff0c 使其更具体 更容易与现实结合 xff0c 不再只停留在概念上 xff0c 这其中离不开从业者的探索与发现 物联网按字面理解分三个部分 xff1a 一 物 xff0c 与
  • WIFI模块接入ONENET步骤

    文章目录 前言思维导图一 onenet c文件1 产品IDONENET程序 2 鉴权信息ONENET程序 3 设备IDONENET程序 二 esp8266 c文件1 WIFI名称及密码程序 2 IP及端口 三 打包数据函数 在onenet
  • K8S 控制器 service ingress

    控制器 Pod 的分类 自主式 Pod xff1a Pod 退出后不会被创建 控制器管理的 Pod xff1a 在控制器的生命周期里 xff0c 始终要维持 Pod 的副本数目 控制器类型 Replication Controller和Re
  • K8s---网络通信 Configmap secrer volumesk8s

    k8s网络通信简介 k8s通过CNI接口接入其他插件来实现网络通讯 目前比较流行的插件有flannel xff0c calico等 CNI插件存放位置 xff1a cat etc cni net d 10 flannel conflist