小型公司网站建设知乎济南网站建设网站建设

news/2025/9/25 19:30:55/文章来源:
小型公司网站建设知乎,济南网站建设网站建设,宁波seo整站优化软件,深圳市做网站知名公司有哪些文章目录 1. Kubernetes的网络类别2. Kubernetes的接口类型3. CNI网络插件 ---- Flannel的介绍及部署3.1 简介3.2 flannel的三种模式3.3 flannel的UDP模式工作原理3.4 flannel的VXLAN模式工作原理3.5 Flannel CNI 网络插件部署3.5.1 上传flannel镜像文件和插件包到node节点3.5.… 文章目录 1. Kubernetes的网络类别2. Kubernetes的接口类型3. CNI网络插件 ---- Flannel的介绍及部署3.1 简介3.2 flannel的三种模式3.3 flannel的UDP模式工作原理3.4 flannel的VXLAN模式工作原理3.5 Flannel CNI 网络插件部署3.5.1 上传flannel镜像文件和插件包到node节点3.5.2 在master01节点部署 CNI 网络3.5.3 查看集群的节点状态 4.CoreDNS 的简单介绍与部署4.1 简介4.2 CoreDNS的部署4.2.1 构建coredns镜像 ---- 所有node节点4.2.2 编写CoreDNS配置文件4.2.3 部署 CoreDNS ---- master01节点 1. Kubernetes的网络类别 节点网络 : nodeIPPod网络: podIPService网络: clusterIP 2. Kubernetes的接口类型 CRI 容器运行时接口CNI 容器网络接口CSI 容器存储接口 3. CNI网络插件 ---- Flannel的介绍及部署 3.1 简介 Flannel 的功能是让集群中的不同节点主机创建的 Docker 容器都具有全集群唯一的虚拟 IP 地址。Flannel 是 Overlay 网络的一种也是将 TCP 源数据包封装在另一种网络包里面进行路由转发和通信 3.2 flannel的三种模式 UDP 出现最早的模式但是性能较差基于flanneld应用程序实现数据包的封装/解封装VXLAN 默认模式是推荐使用的模式性能比UDP模式更好基于内核实现数据帧的封装/解封装配置简单使用方便HOST-GW 性能最好的模式但是配置复杂且不能跨网段 3.3 flannel的UDP模式工作原理 原始数据包从源主机的Pod容器发出到cni0网桥接口再由cni0转发到flannel0虚拟接口flanneld服务进程会监听flannel0接口收到的数据flanneld进程会将原始数据包封装到UDP报文里flanneld进程会根据在etcd中维护的路由表查到目标Pod所在的nodeIP并在UDP报文外再封装nodeIP报文、MAC报文再通过物理网卡发送到目标node节点UDP报文通过8285号端口送到目标node节点的flanneld进程进行解封装再通过flannel0接口转发到cni0网桥再由cni0转发到目标Pod容器 3.4 flannel的VXLAN模式工作原理 原始数据帧从源主机的Pod容器发出到cni0网桥接口再由cni0转发到flannel.1虚拟接口flannel.1接口收到数据帧后添加VXLAN头部并在内核将原始数据帧封装到UDP报文里flanneld进程根据在etcd维护的路由表将UDP报文通过物理网卡发送到目标node节点UDP报文通过8472号端口送到目标node节点的flannel.1接口在内核进行解封装再通过flannel.1接口转发到cni0网桥再由cni0转发到目标Pod容器 3.5 Flannel CNI 网络插件部署 3.5.1 上传flannel镜像文件和插件包到node节点 node01节点cd /opt/##根据本地文件加载镜像 docker load -i flannel.tardocker load -i flannel-cni-plugin.tar#解压CNI 插件包 mkdir /opt/cni/bin -p tar zxvf cni-plugins-linux-amd64-v1.3.0.tgz -C /opt/cni/binscp *.tar *.tgz node02:pwdnode02for i in ls *.tardodocker load -i $idone #加载镜像#解压CNI 插件包 mkdir /opt/cni/bin -p tar zxvf cni-plugins-linux-amd64-v1.3.0.tgz -C /opt/cni/bin3.5.2 在master01节点部署 CNI 网络 #前往master01节点 #上传 kube-flannel.yml 文件到 /opt/k8s 目录中部署 CNI 网络 cd /opt/k8svim kube-flannel.ymlapiVersion: v1 kind: Namespace metadata:labels:k8s-app: flannelpod-security.kubernetes.io/enforce: privilegedname: kube-flannel --- apiVersion: v1 kind: ServiceAccount metadata:labels:k8s-app: flannelname: flannelnamespace: kube-flannel --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:labels:k8s-app: flannelname: flannel rules: - apiGroups:- resources:- podsverbs:- get - apiGroups:- resources:- nodesverbs:- get- list- watch - apiGroups:- resources:- nodes/statusverbs:- patch - apiGroups:- networking.k8s.ioresources:- clustercidrsverbs:- list- watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:labels:k8s-app: flannelname: flannel roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: flannel subjects: - kind: ServiceAccountname: flannelnamespace: kube-flannel --- apiVersion: v1 data:cni-conf.json: |{name: cbr0,cniVersion: 0.3.1,plugins: [{type: flannel,delegate: {hairpinMode: true,isDefaultGateway: true}},{type: portmap,capabilities: {portMappings: true}}]}net-conf.json: |{Network: 10.244.0.0/16,Backend: {Type: vxlan}} kind: ConfigMap metadata:labels:app: flannelk8s-app: flanneltier: nodename: kube-flannel-cfgnamespace: kube-flannel --- apiVersion: apps/v1 kind: DaemonSet metadata:labels:app: flannelk8s-app: flanneltier: nodename: kube-flannel-dsnamespace: kube-flannel spec:selector:matchLabels:app: flannelk8s-app: flanneltemplate:metadata:labels:app: flannelk8s-app: flanneltier: nodespec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/osoperator: Invalues:- linuxcontainers:- args:- --ip-masq- --kube-subnet-mgrcommand:- /opt/bin/flanneldenv:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: EVENT_QUEUE_DEPTHvalue: 5000image: docker.io/flannel/flannel:v0.21.5name: kube-flannelresources:requests:cpu: 100mmemory: 50MisecurityContext:capabilities:add:- NET_ADMIN- NET_RAWprivileged: falsevolumeMounts:- mountPath: /run/flannelname: run- mountPath: /etc/kube-flannel/name: flannel-cfg- mountPath: /run/xtables.lockname: xtables-lockhostNetwork: trueinitContainers:- args:- -f- /flannel- /opt/cni/bin/flannelcommand:- cpimage: docker.io/flannel/flannel-cni-plugin:v1.1.2name: install-cni-pluginvolumeMounts:- mountPath: /opt/cni/binname: cni-plugin- args:- -f- /etc/kube-flannel/cni-conf.json- /etc/cni/net.d/10-flannel.conflistcommand:- cpimage: docker.io/flannel/flannel:v0.21.5name: install-cnivolumeMounts:- mountPath: /etc/cni/net.dname: cni- mountPath: /etc/kube-flannel/name: flannel-cfgpriorityClassName: system-node-criticalserviceAccountName: flanneltolerations:- effect: NoScheduleoperator: Existsvolumes:- hostPath:path: /run/flannelname: run- hostPath:path: /opt/cni/binname: cni-plugin- hostPath:path: /etc/cni/net.dname: cni- configMap:name: kube-flannel-cfgname: flannel-cfg- hostPath:path: /run/xtables.locktype: FileOrCreatename: xtables-lock#将 kube-flannel.yml 文件中的配置应用到 Kubernetes 集群中 #创建或更新在 YAML 文件中定义的所有资源对象 kubectl apply -f kube-flannel.yml#这个 YAML 文件包含了创建 Flannel 网络插件所需的资源对象。以下是文件中包含的资源对象的简要说明#- namespace: kube-flannel创建一个名为 kube-flannel 的命名空间用于隔离 Flannel 插件的相关资源。 #- serviceaccount: flannel创建一个名为 flannel 的服务账户用于授权 Flannel 插件与 Kubernetes API 服务器进行通信。 #- clusterrole: flannel创建一个名为 flannel 的集群角色定义了 Flannel 插件所需的权限。 #- clusterrolebinding: flannel创建一个名为 flannel 的集群角色绑定将 flannel 服务账户与 flannel 集群角色绑定以授予 flannel 服务账户所需的权限。 #- configmap: kube-flannel-cfg创建一个名为 kube-flannel-cfg 的配置映射其中包含了 Flannel 插件的配置信息。 #- daemonset: kube-flannel-ds创建一个名为 kube-flannel-ds 的 DaemonSet用于在集群中的每个节点上部署和管理 Flannel 插件的 Pod。通过应用这个 YAML 文件,创建了 Flannel 网络插件所需的各种资源对象。 可以使用 kubectl get 命令来查看这些资源对象的状态和详细信息。#获取 kube-flannel 命名空间中的所有 Pod 的信息 kubectl get pods -n kube-flannel 或者 kubectl get pods -A#-A显示所有信息#补充卸载插件 kubectl delete -f kube-flannel.yml3.5.3 查看集群的节点状态 kubectl get nodes#切换到node节点 ifconfig4.CoreDNS 的简单介绍与部署 4.1 简介 CoreDNS 是 K8S 的默认 DNS 实现根据 service 资源名称 解析出对应的 clusterIP根据 statefulset 控制器创建的 Pod 资源名称 解析出对应的 podIP 4.2 CoreDNS的部署 4.2.1 构建coredns镜像 ---- 所有node节点 #上传 coredns.tar 到 /opt 目录中 cd /opt docker load -i coredns.tarscp coredns.tar node02:/optcd /opt docker load -i coredns.tar4.2.2 编写CoreDNS配置文件 vim coredns.yaml# __MACHINE_GENERATED_WARNING__apiVersion: v1 kind: ServiceAccount metadata:name: corednsnamespace: kube-systemlabels:kubernetes.io/cluster-service: trueaddonmanager.kubernetes.io/mode: Reconcile --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:labels:kubernetes.io/bootstrapping: rbac-defaultsaddonmanager.kubernetes.io/mode: Reconcilename: system:coredns rules: - apiGroups:- resources:- endpoints- services- pods- namespacesverbs:- list- watch - apiGroups:- resources:- nodesverbs:- get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:annotations:rbac.authorization.kubernetes.io/autoupdate: truelabels:kubernetes.io/bootstrapping: rbac-defaultsaddonmanager.kubernetes.io/mode: EnsureExistsname: system:coredns roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: system:coredns subjects: - kind: ServiceAccountname: corednsnamespace: kube-system --- apiVersion: v1 kind: ConfigMap metadata:name: corednsnamespace: kube-systemlabels:addonmanager.kubernetes.io/mode: EnsureExists data:Corefile: |.:53 {errorshealth {lameduck 5s}readykubernetes cluster.local in-addr.arpa ip6.arpa {pods insecurefallthrough in-addr.arpa ip6.arpattl 30}prometheus :9153forward . /etc/resolv.conf {max_concurrent 1000}cache 30loopreloadloadbalance} --- apiVersion: apps/v1 kind: Deployment metadata:name: corednsnamespace: kube-systemlabels:k8s-app: kube-dnskubernetes.io/cluster-service: trueaddonmanager.kubernetes.io/mode: Reconcilekubernetes.io/name: CoreDNS spec:# replicas: not specified here:# 1. In order to make Addon Manager do not reconcile this replicas parameter.# 2. Default is 1.# 3. Will be tuned in real time if DNS horizontal auto-scaling is turned on.strategy:type: RollingUpdaterollingUpdate:maxUnavailable: 1selector:matchLabels:k8s-app: kube-dnstemplate:metadata:labels:k8s-app: kube-dnsspec:securityContext:seccompProfile:type: RuntimeDefaultpriorityClassName: system-cluster-criticalserviceAccountName: corednsaffinity:podAntiAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 100podAffinityTerm:labelSelector:matchExpressions:- key: k8s-appoperator: Invalues: [kube-dns]topologyKey: kubernetes.io/hostnametolerations:- key: CriticalAddonsOnlyoperator: ExistsnodeSelector:kubernetes.io/os: linuxcontainers:- name: corednsimage: registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0imagePullPolicy: IfNotPresentresources:limits:memory: 170Mirequests:cpu: 100mmemory: 70Miargs: [ -conf, /etc/coredns/Corefile ]volumeMounts:- name: config-volumemountPath: /etc/corednsreadOnly: trueports:- containerPort: 53name: dnsprotocol: UDP- containerPort: 53name: dns-tcpprotocol: TCP- containerPort: 9153name: metricsprotocol: TCPlivenessProbe:httpGet:path: /healthport: 8080scheme: HTTPinitialDelaySeconds: 60timeoutSeconds: 5successThreshold: 1failureThreshold: 5readinessProbe:httpGet:path: /readyport: 8181scheme: HTTPsecurityContext:allowPrivilegeEscalation: falsecapabilities:add:- NET_BIND_SERVICEdrop:- allreadOnlyRootFilesystem: truednsPolicy: Defaultvolumes:- name: config-volumeconfigMap:name: corednsitems:- key: Corefilepath: Corefile --- apiVersion: v1 kind: Service metadata:name: kube-dnsnamespace: kube-systemannotations:prometheus.io/port: 9153prometheus.io/scrape: truelabels:k8s-app: kube-dnskubernetes.io/cluster-service: trueaddonmanager.kubernetes.io/mode: Reconcilekubernetes.io/name: CoreDNS spec:selector:k8s-app: kube-dnsclusterIP: 10.0.0.2ports:- name: dnsport: 53protocol: UDP- name: dns-tcpport: 53protocol: TCP- name: metricsport: 9153protocol: TCP4.2.3 部署 CoreDNS ---- master01节点 #上传 coredns.yaml 文件到 /opt/k8s 目录中部署 CoreDNS cd /opt/k8s#Kubernetes读取配置文件并更新 CoreDNS 的配置 kubectl apply -f coredns.yaml#查看运行在 kube-system 命名空间中的 Kubernetes Pod 列表 kubectl get pods -n kube-system #在Kubernetes 集群中启动一个临时的 Busybox 容器并进入其交互式终端 kubectl run -it --rm dns-test --imagebusybox:1.28.4 shIf you dont see a command prompt, try pressing enter. / # nslookup kubernetes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

织梦网站图片一直转圈品质好物推荐

AOP(Aspect Oriented Programming),面向切面编程,他是一种编程范式。 作用: 在不改变原始设计的的基础上对其进行功能增强。 几个基本概念: 连接点:所有的方法 切入点:追加功能的方法 通知:追加…

LangChain:LLMs和ChatModels介绍、LangChain 集成大模型的本地部署与 API 调用实践、提示词prompt、输出解析器、链 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

卓伊凡的第一款独立游戏-unity安装运行设置以及熟悉整体unity游戏开发和unity editor【02】-优雅草卓伊凡

卓伊凡的第一款独立游戏-unity安装运行设置以及熟悉整体unity游戏开发和unity editor【02】-优雅草卓伊凡2025-09-25 19:26 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: no…

学习敏捷课程PSM,自考证书分享

PSM课程自考体会心得​ 一直以来,我都对Scrum比较感兴趣,但真正检验自己对Scrum框架的掌握程度,是从准备 PSM(Professional Scrum Master)认证考试 开始的。相比参加培训班,我选择了自考的方式,这段学习过程对我…

详细介绍:基于卷积神经网络的人车识别技术:从原理突破到场景重构的深度探索

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

长春 万网 网站建设中国咨询公司排名50强

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、Wlan应用实战1.1、拓扑图详解1.2、LSW11.3、AC11.4、抓包1.5、Tunnel隧道模式解析1.6、AP、…

专题定制网站建设工信部网站原来是

创建测试用例和测试结果集文件夹: excel编写的接口测试用例如下: 1 encoding 响应的编码格式。所测项目大部分是utf-8,有一个特殊项目是utf-8-sig 2 params 对应requests的params 3 data,对应requests的data 有些参数是动态的&a…

Rust/C/C++ 混合构建 - 用Bazel构建Rust与C

Bazel是什么 Bazel 是一个类似于 Make、Maven 和 Gradle 的开源构建和测试工具。 它使用人类可读的高级 build 语言。Bazel 支持 并针对多个平台构建输出。Bazel 支持 多个代码库和大量用户的大型代码库。 优势 Bazel …

9.24(补)

上午离散数学学的有点意思,下课后看了一眼,马哲的老师讲的也挺有意思的,重点讲了会生产力和生产资料,下午到没干什么,躺了。

9月25号

上午进行了程序语言和数据结构。 然后进行了篮球课。 下午进行了乒乓课。

有什么好的设计网站自己怎做网站后台

所谓关联式容器,观念上类似关联式数据库(实际上则简单许多):每笔数据(每个元素)都有一个键值(key)和一个实值(value) 2。当元素被插入到关联式 容器中时,容器内部结构(可能是RB-tree,也可能是hash-table)便依照其键 值大小,以某种…

南昌市新农村建设网站聊城专业网站设计公司

小A是一名刚刚毕业的算法工程师,有一天,他被老板安排了一个活,要对一批合同扫描件进行自动化信息抽取,输出结构化的分析报表。OCR问题不大,但是怎么进行批量的结构化信息抽取呢?小A陷入了苦苦思索… 小B是…

CCF CSP-J 2025_from_黄老师_d

2025 CCF CSP-J 入门级(C++)第一轮试题解析 一、单项选择题(每题2分,共30分) 1. 32位无符号整数最大值问题答案:A 分析:32位无符号整数的取值范围是0到(2{32}-1)。计算可得(2=4294967296),则(2^{32}-1 = 42949…

亚马逊与AWS如何通过漏洞赏金计划构建深度安全防御

本文介绍亚马逊和AWS如何通过HackerOne平台的漏洞赏金计划,与全球安全研究人员合作持续测试平台安全性,保护客户数据并促进知识共享,展现企业级安全防御的最佳实践。HackerOne客户案例:亚马逊与AWS 对于亚马逊和AW…

GEO技术详解:从基础到实践的生成式引擎优化指南 - 指南

GEO技术详解:从基础到实践的生成式引擎优化指南 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

详细介绍:锚定效应(解释+类型区分+商业及生活应用+如何避免)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站开发招聘 领英电子商务考研最佳方向

搭建: canal部署与实例运行 数据库读log同步用 详见下面

sync.pool 面试题

什么是sync.Pool?它的主要设计目的是什么? sync.Pool 是 Go 语言标准库 sync 包中提供的一个对象池工具,用于缓存临时对象,减少内存分配和垃圾回收(GC)的压力。 它的核心设计目的是:复用对象:通过缓存暂时不用…

【JavaEE】SpringIoC与SpringDI - 详解

【JavaEE】SpringIoC与SpringDI - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

24.Linux硬盘分区管理 - 详解

24.Linux硬盘分区管理 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…