网站建设仟金手指六六14网站被备案能建设

web/2025/10/3 14:14:07/文章来源:
网站建设仟金手指六六14,网站被备案能建设,广东网站建设网,昌图网站1 K8S 简介 K8S是Kubernetes的简称#xff0c;是一个开源的容器编排平台#xff0c;用于自动部署、扩展和管理“容器化#xff08;containerized#xff09;应用程序”的系统。它可以跨多个主机聚集在一起#xff0c;控制和自动化应用的部署与更新。 K8S 架构 Kubernete…1 K8S 简介 K8S是Kubernetes的简称是一个开源的容器编排平台用于自动部署、扩展和管理“容器化containerized应用程序”的系统。它可以跨多个主机聚集在一起控制和自动化应用的部署与更新。 K8S 架构 Kubernetes 主要由以下几个核心组件组成 etcd 保存了整个集群的状态apiserver 提供了资源操作的唯一入口并提供认证、授权、访问控制、API 注册和发现等机制controller manager 负责维护集群的状态比如故障检测、自动扩展、滚动更新等scheduler 负责资源的调度按照预定的调度策略将 Pod 调度到相应的机器上kubelet 负责维护容器的生命周期同时也负责 VolumeCSI和网络CNI的管理Container runtime 负责镜像管理以及 Pod 和容器的真正运行CRIkube-proxy 负责为 Service 提供 cluster 内部的服务发现和负载均衡 除了核心组件还有一些推荐的插件其中有的已经成为 CNCF 中的托管项目 CoreDNS 负责为整个集群提供 DNS 服务 Ingress Controller 为服务提供外网入口 Prometheus 提供资源监控 Dashboard 提供 GUI Federation 提供跨可用区的集群 整体架构 下图清晰表明了 Kubernetes 的架构设计以及组件之间的通信协议。 下面是更抽象的一个视图 Master架构 Node架构 分层架构 Kubernetes 设计理念和功能其实就是一个类似 Linux 的分层架构如下图所示。 核心层Kubernetes 最核心的功能对外提供 API 构建高层的应用对内提供插件式应用执行环境应用层部署无状态应用、有状态应用、批处理任务、集群应用等和路由服务发现、DNS 解析等、Service Mesh部分位于应用层管理层系统度量如基础设施、容器和网络的度量自动化如自动扩展、动态 Provision 等以及策略管理RBAC、Quota、PSP、NetworkPolicy 等、Service Mesh部分位于管理层接口层kubectl 命令行工具、客户端 SDK 以及集群联邦生态系统在接口层之上的庞大容器集群管理调度的生态系统可以划分为两个范畴 Kubernetes 外部日志、监控、配置管理、CI/CD、Workflow、FaaS、OTS 应用、ChatOps、GitOps、SecOps 等Kubernetes 内部CRI、CNI、CSI、镜像仓库、Cloud Provider、集群自身的配置和管理等 2 CPU架构 ARM64和x86是指基于不同架构的处理器。 ARM64是指基于ARM架构的64位处理器而ARM是指基于ARM架构的32位处理器。ARM架构广泛应用于手机和移动设备领域具有低成本、高性能、低电耗的特点。 x86则是指基于x86架构的处理器它可以是32位或64位处理器架构具体取决于处理器型号。x86架构广泛应用于传统的PC和服务器领域。 因为ARM64与x86是不同的CPU架构两者的指令集不同因此在部署时需要考虑具体适配的软件安装包。 本文将基于arm64架构的国产操作系统统信UOS为例说明K8S部署流程仅供参考。 3 环境信息 环境版本说明操作系统UnionTech OS Server 20CPU架构aarch64docker17.09.0-ceOS/Arch: linux/arm64K8S1.20.11OS/Arch: linux/arm64rancherv2.5.16-linux-arm64OS/Arch: linux/arm64 4 部署Docker 如果当前环境已经部署完arm64的docker请忽略此章节。 下面的操作需要在规划K8S的所有机器上执行。 4.1 环境准备 4.1.1 磁盘挂载 如果磁盘已经挂载则省略该步骤。 docker推荐使用 xfs 磁盘格式。 磁盘挂载 $ mkfs.xfs -f /dev/vdb $ mkdir /demo $ mount /dev/vdb /demo查看磁盘id $ blkid 永久挂载 $ echo UUID94be2fa7-93aa-47a4-b661-45963b28fbb4 /demo xfs defaults 0 0 /etc/fstab$ mount -a备注这里磁盘格式化仅做参考具体的磁盘格式化以及挂载请自行参考其他文档。目的就是挂载xfs格式的磁盘到指定目录下(比如 /demo) 4.1.2 docker 根目录 磁盘挂载路径为/var/lib/docker时可忽略此步 磁盘挂载路径为其他路径时通过mount --bind方式挂载目录 1 创建挂载目录 $ mkdir -p /demo/data/docker2 将/demo/data/docker映射到/var/lib/docker $ mount --bind /demo/data/docker /var/lib/docker3 设置永久生效 $ echo /demo/data/docker /var/lib/docker none bind 0 0 /etc/fstab4 挂载 $ mount -a4.2 下载Docker安装包并且解压 进入 /demo/data/ 目录下下载 aarch64的docker安装包 执行如下命令 # wget https://download.docker.com/linux/static/stable/aarch64/docker-17.09.0-ce.tgz下载完成后在当前目录进行解压操作 $ tar -zxvf docker-17.09.0-ce.tgz 4.3 复制文件 在 /demo/data 目录下执行如下命令 $ cp docker/* /usr/bin/4.4 创建containerd的service文件 执行如下命令 $ touch /etc/systemd/system/docker.service # 给予可执行权限 $ chmod x /etc/systemd/system/docker.service编辑docker.service文件添加下面的内容 $ vim /etc/systemd/system/docker.service内容如下 [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target [Service] Typenotify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart/usr/bin/dockerd ExecReload/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILEinfinity LimitNPROCinfinity LimitCOREinfinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMaxinfinity TimeoutStartSec0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegateyes # kill only the docker process, not all processes in the cgroup KillModeprocess # restart the docker process if it exits prematurely Restarton-failure StartLimitBurst3 StartLimitInterval60s [Install] WantedBymulti-user.target4.5 启动docker 重新加载配置文件 $ systemctl daemon-reload启动docker $ systemctl start docker设置 docker 开机启动 $ systemctl enable docker.service5 部署K8S 5.1 关闭selinux selinux 是一个 Linux 内核模块同时也是 Linux 的一个安全子系统。 SELinux 的主要作用是最大限度地减小系统中的安全风险提高系统的安全性。 这个重要的安全工具由美国国家安全局开发并且已经被集成到了主流的 Linux 2.6 及以上版本的内核中。 #临时关闭 $ setenforce 0 #永久关闭 SELINUXdisabled $ vim /etc/sysconfig/selinux5.2 关闭swap分区 Swap分区也被称为交换分区或虚拟内存是Linux系统中用于当物理内存不足时将部分硬盘空间虚拟成内存使用的系统机制。它的作用在于释放物理内存中的一部分空间以供当前运行的程序使用。当系统的物理内存不够用的时候将其中一些暂时不需要的数据交换到交换空间。 but 有利有弊 在安装KubernetesK8S时建议关闭swap分区。因为K8S的各个组件和容器都需要足够的内存来运行而Swap的使用可能导致性能下降甚至是应用程序的奔溃。如果系统内存不足Kubernetes会将一部分数据交换到swap分区而这可能会降低系统的性能甚至导致Pod异常终止。 此外对于一些集群它们的swap位于机械硬盘阵列上大量动用swap基本可以等同于死机你甚至连root都登录不上不用提杀掉问题进程了。往往结局就是硬重启。 然而在关闭swap分区之前需要确保系统的内存容量足够满足所有Pod的内存需求以及不会因为关闭swap分区而导致系统崩溃或出现其他问题。因此如果系统内存充足或者有额外的物理内存可供使用建议保留swap分区。 #临时关闭 swapoff -a #永久关闭 注释 swap 行 vim /etc/fstab5.3 关闭防火墙 systemctl stop firewalld systemctl disable firewalld5.4 网络配置 iptables Linux桥接功能是一种虚拟交换机它是用纯软件实现的具有和物理交换机相同的功能例如二层交换MAC地址学习等。它是一个软件层面的网络设备用于在Linux系统中创建和管理网络桥接。 网桥的主要作用是将多个物理或虚拟网络接口连接在一起以创建一个共享相同网络段的网络。而将网络接口连接起来的结果就是一个网络接口接收到网络数据包后会复制到其他网络接口中。 此外如果你想把虚拟机当做一台完全独立的计算机看待并且允许它和其他终端一样的进行网络通信那么桥接模式通常是虚拟机访问网络的最简单途径。同时bridge技术还可以把一个linux设备上的两块网卡桥接在一起对外表现为一个大的网卡接口比如你有两台设备但是又没有路由器那么把他们桥接在一起可以共享其中一台的网络这样两台都可以上网。 在KubernetesK8S中打开桥接功能的主要目的是为了解决网络通信问题。首先每个Pod的网卡都是veth设备veth pair的另一端连上宿主机上的网桥。由于网桥是虚拟的二层设备同节点的Pod之间通信直接走二层转发跨节点通信才会经过宿主机eth0。 其次如果需要在K8S集群内部署一个VPN需要采用桥接VPN静态路由的双重策略才能实现互相都可以直接使用IP进行访问。此外开发人员在进行微服务开发的时候需要通过服务发现进行Pod级服务的直接访问现在的K8S网络没办法做到直接访问pod或者service的ip。这时可以通过Bridge to Kubernetes功能将应用程序的所有出站流量路由回Kubernetes群集。 总的来说K8S打开桥接功能主要是为了优化网络通信提高服务发现的效率和灵活性以及实现不同网络间的无缝连接。 net.bridge.bridge-nf-call-iptables 是一个 Linux 内核参数用于控制桥接设备是否调用 iptables 进行网络过滤。当设置为 1 时表示启用 iptables当设置为 0 时表示禁用 iptables。这个参数通常在 /etc/sysctl.conf 文件中进行配置。 net.bridge.bridge-nf-call-ip6tables1 是一个 Linux 内核参数用于控制桥接设备是否调用 ip6tables 进行网络过滤。当设置为 1 时表示启用 ip6tables当设置为 0 时表示禁用 ip6tables。这个参数通常在 /etc/sysctl.conf 文件中进行配置。 net.ipv4.ip_forward1 是一个 Linux 内核参数用于控制 IPv4 数据包转发功能是否开启。当设置为 1 时表示启用 IPv4 数据包转发当设置为 0 时表示禁用 IPv4 数据包转发。这个参数通常在 /etc/sysctl.conf 文件中进行配置。 m.swappiness0 是一个 Linux 内核参数用于控制虚拟机VM的交换空间使用情况。当设置为 0 时表示禁用交换空间当设置为 100 时表示启用交换空间并尽可能使用它。这个参数通常在 /etc/sysctl.conf 文件中进行配置。 对iptables内部的nf-call需要打开的内生的桥接功能 $ touch /etc/sysctl.d/k8s.conf$ vim /etc/sysctl.d/k8s.conf修改如下内容 net.bridge.bridge-nf-call-iptables1 net.bridge.bridge-nf-call-ip6tables1 net.ipv4.ip_forward1 vm.swappiness0修改完成后执行 $ modprobe br_netfilter $ sysctl -p /etc/sysctl.d/k8s.conf5.5 配置kubernetes源 yum源是一个在Linux下的软件包管理器它能够从指定的服务器自动下载RPM包并完成安装同时可以自动处理软件包之间的依赖关系。 根据存储位置的不同yum源可以被分为本地yum源和网络yum源两种类型。本地yum源是指yum仓库在本地通常是本地的镜像文件而网络yum源则是指yum仓库在远程也就是说我们需要联网才能使用。 yum.repos.d 目录是Linux系统中存放yum源配置文件的默认位置。在该目录下每个子目录都代表一个yum源子目录的名称通常以 .repo 结尾。 在 /etc/yum.repos.d/ 目录下系统会默认存在一些yum源配置文件例如 CentOS 官方源、epel源等。同时用户也可以自己创建新的yum源配置文件并放置在该目录下以便安装其他软件包或更新系统时使用。 需要注意的是当修改了 yum.repos.d 目录下的任何一个配置文件后都需要运行 yum clean all 命令清除缓存否则新添加的软件包可能无法被正确识别和安装。 创建/etc/yum.repos.d/kubernetes.repo文件 $ touch /etc/yum.repos.d/kubernetes.repo编辑 $ vim /etc/yum.repos.d/kubernetes.repo添加如下内容 [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64/ enabled1 gpgcheck1 repo_gpgcheck1 gpgkeyhttp://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg#清除缓存 yum clean all#把服务器的包信息下载到本地电脑缓存起来makecache建立一个缓存 yum makecache5.6 安装kubelet kubeadm kubectl kubelet运行在K8S cluster所有节点上负责启动POD和容器 kubeadm用于初始化K8S集群 kubectlkubectl是kubenetes命令行工具通过kubectl可以部署和管理应用查看各种资源创建删除和更新组件 当不指定具体版本时将下载当前yum源对应的最新版本 $ yum install -y kubelet kubeadm kubectl也可以指定版本建议指定如下版本 #安装指定版本的kubelet,kubeadm,kubectl $ yum install -y kubelet-1.20.11 kubeadm-1.20.11 kubectl-1.20.11安装时如果出现 403解决方案是多尝试几次。 安装完成后查看K8S版本 #查看kubelet版本 $ kubelet --version查看kubeadm版本 $ kubeadm version5.7 启动kubelet并设置开机启动服务 Systemctl是Systemd的主命令主要用于管理系统和服务。Systemd是Linux系统最新的初始化系统也就是init它的主要作用是提高系统的启动速度尽可能启动较少的进程并让更多的进程并发启动。 daemon-reload是一个systemd命令它的主要功能是重新加载systemd的守护进程。当服务文件service file发生变化时可以使用此命令来使这些变化立即生效而无需重启整个系统。 例如如果你新安装了一个服务并且这个服务被systemd管理那么为了让新服务的配置文件生效你需要运行systemctl daemon-reload命令。此外如果服务的程序配置文件发生了变化也需要重新加载以使新的配置生效。 需要注意的是使用此命令需要管理员权限通常可以通过在命令前添加sudo来获取。例如sudo systemctl daemon-reload。 重新加载配置文件 $ systemctl daemon-reload启动kubelet $ systemctl start kubelet查看kubelet启动状态 $ systemctl status kubelet没启动成功,报错先不管,后面的kubeadm init会拉起 设置开机自启动 $ systemctl enable kubelet查看kubelet开机启动状态 enabled:开启, disabled:关闭 $ systemctl is-enabled kubelet查看日志 journalctl -xefu 是一个常用的命令用于查看系统日志并显示错误信息。 其中各个选项的含义如下 -x: 显示系统启动后的所有日志包括正常和错误日志。-e: 只显示最近的错误日志。-f: 实时刷新日志输出即当有新的日志产生时会立即显示在屏幕上。-u: 显示内核日志。 通过运行这个命令可以快速定位系统中的问题并了解系统的运行状态。例如如果系统出现了崩溃或异常情况可以使用此命令来查找相关的错误日志以帮助解决问题。 $ journalctl -xefu kubeletarm64环境到此步后先看看 FAQ中的问题4. 5.8 初始化K8S集群Master 注意此操作只在规划的Master服务器上执行 #执行初始化命令 kubeadm init --image-repository registry.aliyuncs.com/google_containers --apiserver-advertise-address172.31.186.36 --kubernetes-versionv1.20.11 --pod-network-cidr10.244.0.0/16 --service-cidr10.96.0.0/12 可能比较耗时请耐心等待 待初始化完成后需要按照提示执行如下命令 mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configexport KUBECONFIG/etc/kubernetes/admin.conf这里需要注意要将最后一个命令复制出来并且保存用于后续添加节点使用 kubeadm join 172.31.186.36:6443 --token t4bhv5.xlbh5rivgx7w284m \--discovery-token-ca-cert-hash sha256:1bf639b1ff74ac39b72448cef64597f040a89840e20fb56e2358c9b7f8359a9f查看K8S集群节点 $ kubectl get nodeNAME STATUS ROLES AGE VERSION rancher-1 NotReady control-plane,master 13h v1.20.11 这里会发现状态是 NotReady 是因为没有安装网络插件。 查看kubelet的日志 $ journalctl -xef -u kubelet -n 205.9 安装flannel网络插件 创建文件夹 $ mkdir -p /demo/package_k8s/flannel $ cd /demo/package_k8s/flannel在/demo/package_k8s/flannel目录下载文件 curl -O https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml因为网络原因可能比较耗时如果下载失败了请耐心的多尝试几次。 kube-flannel.yml里需要下载镜像,我这里提前先下载 $ docker pull quay.io/coreos/flannel:v0.14.0-rc1创建flannel网络插件 $ kubectl apply -f kube-flannel.yml5.10 集群添加节点 在其他节点上执行5.1、5.2、5.3、5.4、5.5、5.6、5.7、5.9 执行完后在除Master之外的节点执行 5.8 生产的命令 kubeadm join 172.31.186.36:6443 --token t4bhv5.xlbh5rivgx7w284m \--discovery-token-ca-cert-hash sha256:1bf639b1ff74ac39b72448cef64597f040a89840e20fb56e2358c9b7f8359a9f在master节点执行 $ kubectl get node6 部署rancher Rancher是一个企业级容器管理平台可以帮助组织在生产环境中轻松快捷的部署和管理容器。Rancher支持多种云和本地生态系统提供一键部署、多种编排调度工具、多租户、多种基础架构等功能适用于混合云、多环境、多资源池、DevOps流水等场景 。 如果不需要用rancher来管理K8S集群请忽略此章节。 如果当前环境已经部署完arm64的rancher请忽略此章节。 部署rancher前请保证arm64架构的docker已经部署成功 6.1 pull 镜像 rancher需要pull第三方镜像为了节省时间我们可以提前下载好rancher相关的镜像 这里的 docker中央仓库地址 只是举例请根据实际情况填写 dockerpull 的镜像地址 执行如下pull docker pull docker中央仓库地址/fleet-agent:v0.3.10-security1 docker pull docker中央仓库地址/rancher-agent:v2.5.16 docker pull docker中央仓库地址/rancher:v2.5.16-linux-arm64 docker pull docker中央仓库地址/hyperkube:v1.20.15-rancher2 docker pull docker中央仓库地址/nginx-ingress-controller:nginx-1.2.1-rancher1 docker pull docker中央仓库地址/rke-tools:v0.1.80 docker pull docker中央仓库地址/mirrored-coreos-flannel:v0.15.1 docker pull docker中央仓库地址/mirrored-ingress-nginx-kube-webhook-certgen:v1.1.1 docker pull docker中央仓库地址/hyperkube:v1.20.11-rancher1 docker pull docker中央仓库地址/mirrored-pause:3.6 docker pull docker中央仓库地址/rke-tools:v0.1.78 docker pull docker中央仓库地址/mirrored-metrics-server:v0.5.0 docker pull docker中央仓库地址/nginx-ingress-controller:nginx-0.43.0-rancher3 docker pull docker中央仓库地址/mirrored-coreos-etcd:v3.4.15-rancher1 docker pull docker中央仓库地址/mirrored-coredns-coredns:1.8.0 docker pull docker中央仓库地址/mirrored-cluster-proportional-autoscaler:1.8.1 docker pull docker中央仓库地址/flannel-cni:v0.3.0-rancher6 docker pull docker中央仓库地址/kube-api-auth:v0.1.4 docker pull docker中央仓库地址/mirrored-pause:3.2注意执行到docker pull docker中央仓库地址/mirrored-pause:3.2时可能需要手动按一下回车键。 6.2 启动rancher 这里会先从仓库拉取rancher的镜像根据网络环境可能耗时较久请等待。 docker run -d --privileged --restartunless-stopped -p 8080:80 -p 8445:443 \ -v /demo/data/rancher/rancher:/var/lib/rancher \ -v /demo/data/rancher/auditlog:/var/log/auditlog \ --name rancher rancher/rancher:v2.5.16-linux-arm64稍等片刻浏览器输入https://ip:8445/g/clusters 部署完rancher后第一次打开页面需要进行免密设置 6.3 导入K8S集群 进入rancher页面点击右上角的 “添加集群” 操作 然后选择 “导入” 填写K8S集群名称 点击 “创建” 按钮后会出现三个命令行将第一个命令行的 [USER_ACCOUNT]替换为 admin。 依次在K8S Master机器上执行下面三个命令行。 执行命令1 在K8S master机器上执行 $ kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user admin执行命令2 $ kubectl apply -f https://172.31.186.36:8445/v3/import/kkksx4xvx4rld7nzh8b2mvwc8kvjrxbsj458ngw264kst9sshbvfr7_c-xqfgn.yaml如果执行命令2时x509错误则可以通过将对应的yaml文件下载到服务器本地然后执行apply 下载yaml文件 $ wget https://172.31.186.36:8445/v3/import/6w5jzw4wtc7pg7h8cjbhcnj4ptbhgkdrrsc8ftjgkhqkvm2qc557tv_c-9g9rs.yaml --no-check-certificate执行安装 $ kubectl apply -f 6w5jzw4wtc7pg7h8cjbhcnj4ptbhgkdrrsc8ftjgkhqkvm2qc557tv_c-9g9rs.yaml执行命令3 执行复制忽略证书检查命令 curl --insecure -sfL https://172.31.186.36:8445/v3/import/7d64lpx6gpl8mdz4tz9nzk6r2wb684fls7fs728ns2sbzvzfdw55j4_c-llx8j.yaml | kubectl apply -f -稍等片刻如果一切顺利则可看到如下 FAQ 1 问题节点状态为NotReady 如果安装了flannel网络插件后查看节点状态仍然是 NotReady 且日志显示 failed to find plugin “portmap” in path [/opt/cni/bin] 查看日志 解决方案 下载 cni-plugins-linux-arm64-v1.1.1.tgz 包然后解压将其中的文件copy到 /opt/cni/bin/ 目录下即可 tar -zxvf cni-plugins-linux-arm64-v1.1.1.tgz -C /opt/cni/bin2 问题在非master节点执行 kubectl get node kubectl命令需要使用kubernetes-admin来运行需要admin.conf文件conf文件是通过“ kubeadmin init”命令在主节点/etc/kubernetes 中创建但是从节点没有conf文件也没有设置 KUBECONFIG /root/admin.conf环境变量所以需要复制conf文件到从节点并设置环境变量就OK了。 其实这个问题也没必要解决不影响。 3 问题rancher面板中 Controller Manager与 Scheduler不健康 如果rancher面板中 Controller Manager与 Scheduler不健康 登录到master server机器修改如下文件 /etc/kubernetes/manifests/kube-controller-manager.yaml/etc/kubernetes/manifests/kube-scheduler.yaml 两个文件中删除 --port0 配置项 然后重启kubelete $ service kubelet restart稍等片刻如果一切顺利Controller Manager与 Scheduler将恢复健康。 4 问题failed to find plugin “portmap” in path [/opt/cni/bin] 如果kubelet服务异常且日志里有如下报错 failed to find plugin portmap in path [/opt/cni/bin]大概率是/opt/cni/bin目录下没有对应的 portmap 插件 解决方案 1、下载 cni-plugins-linux-arm64-v1.1.1.tgz 插件 $ wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-arm64-v1.1.1.tgz2、解压 cni-plugins-linux-arm64-v1.1.1.tgz 插件并且复制到 /opt/cni/bin/ $ tar -zxvf cni-plugins-linux-arm64-v1.1.1.tgz -C /opt/cni/bin//opt/cni/bin 是一个目录路径通常用于存放网络连接插件CNI的可执行文件。CNI是容器网络接口Container Network Interface的缩写它提供了一种标准化的方式来定义和实现容器运行时的网络连接。 在Kubernetes等容器编排系统中每个节点上的CNI插件负责为在该节点上运行的容器创建、配置和管理网络连接。这些插件可以提供不同的网络解决方案例如桥接、路由、隧道等。 具体来说/opt/cni/bin 目录通常包含以下内容 ip: IP地址管理工具用于分配IP地址给容器。bridge: 桥接网络插件用于在主机上创建一个虚拟网络桥接并将容器连接到该桥接上。flannel: Flannel是一种覆盖网络Overlay Network解决方案用于在主机之间建立虚拟网络连接。weave: Weave是一种基于IPv6的覆盖网络解决方案用于在主机之间自动创建虚拟网络连接。calico: Calico是一种高性能的容器网络解决方案支持多种网络模型和策略。 请注意具体的CNI插件可能因系统和部署环境而异。以上列出的插件只是一些常见的示例。 附录 K8S 运维技术点简介 删除POD 要删除 KubernetesK8S中的 Pod可以使用 kubectl delete pod 命令。下面是删除 Pod 的一般格式 # kubectl delete pod pod-name [-nnamespace] $ kubectl delete pod coredns-7f89b7bc75-46tlx -n kube-system按照创建时间升序查看POD 要按照创建时间升序查看 KubernetesK8S中的 Pod可以使用 kubectl get pods --sort-by.metadata.creationTimestamp 命令。 $ kubectl get pods -A --sort-by.metadata.creationTimestamp

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

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

相关文章

网站设计主要内容seo视频

接前一篇文章:中移(苏州)软件技术有限公司面试问题与解答(4)—— virtio所创建的设备1 在上一篇文章中,对于面试所提出的问题“virtio会创建哪些设备?”,有了初步答案,即…

做特色菜的网站徐州市住房和城乡建设局网站

概述 前台服务是用户主动意识到的一种服务,因此在内存不足时,系统也不会考虑将其终止。前台服务必须为状态栏提供通知,将其放在运行中的标题下方。这意味着除非将服务停止或从前台移除,否则不能清除该通知。 在 Android 8.0&…

南海区住房和城乡建设部网站农业网站建设方案 ppt模板下载

中文大模型正在后来居上,也必须后来居上。 数科星球原创 作者丨苑晶 编辑丨大兔 从GPT3.5彻底出圈后,大模型的影响力开始蜚声国际。一段时间内,国内科技公司可谓被ChatGPT按在地上打,毫无还手之力。 彼时,很多企业…

淘宝网站开发多少金额php黄页系统

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼编写程序,登录幼儿园200个小朋友的数据:姓名、性别、年龄、身高、体重、出生日期,分别按年龄排序后输出。要求:(1)登录数据用函数input()(2)按身高排序用函数sort()(3)输出排序结果用…

购物网站黑白如何创业开网店

影片剪辑脚本和按钮的脚本类似,它们都使用事件处理函数,与按钮的on关键字不同,影片剪辑使用 onClipEvent关键字。当某种影片剪辑事件发生时,就会触发相应的事件处理函数。影片剪辑最重要的两种事件是load和enterFrame,…

数字媒体应用 网站开发东莞网站建设十大品牌

JavaScript 只有一种数字类型。可以使用也可以不使用小数点来书写数字。 var pi3.14; // 使用小数点 var x34; // 不使用小数点 极大或极小的数字可通过科学(指数)计数法来写: var y123e5; // 12300000 var z123e-5; // 0.0…

静态网站素材威海建设局网站首页

超级无敌棒棒糖🖌 🌭功能介绍🍕 Demo准备一个数据类准备一个Excel导入Excel行数据转换导出到Excel 🍱新增映射字段类型 🌭功能介绍 💡.Excel 行数据转对象:把导入的Excel 每一行数据进行自动映…

互联网客户做网站wordpress首页显示vip标识

多主机网关仅能工作在TCP服务器模式下,可同时处理多台Modbus TCP的主机请求,串口服务器在一个主机请求未完成时又收到了其他的主机请求此时串口服务器会在RS485总线上进行仲裁输出(通俗地讲就是对后来的指令进行阻塞)。 仿真软件演…

山东网站建设运营煤棚球形网架公司

大家千万不要着急,不要慌张,即使自己并不了解多少汇编代码的知识,即使自己计基课上的基础知识学的并不扎实,也都不要紧,因为这次计基实验考察的重点并不是基础知识,而是对gdb工具的掌握,以及心细…

腾讯云网站备案不能用阿里云品牌推广案例

引言 链表(Linked List)是数据结构中最基础且最重要的线性存储结构之一。与数组的连续内存分配不同,链表通过指针将分散的内存块串联起来,具有动态扩展和高效插入/删除的特性。本文将以C/C++语言为例,从底层原理到代码实现,手把手教你构建完整的链表结构,并深入探讨其应…

广东制作公司网站怎么做外贸网站

Git简介Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方…

个人免费域名空间建站dns设置 看国外网站

一、母版页简介 使用 ASP.NET 母版页可以为应用程序中的页创建一致的布局。单个母版页可以为应用程序中的所有页(或一组页)定义所需的外观和标准行为。 母版之所以称为母版,就是将大部分网页上固定内容,比如导航栏,版…

爱电影网站做律师网站公司

(int)faultsGroup是0或1但我总是得到这个错误:列’FaultGroup’不能为null有人告诉我为什么吗?语法看起来不错.MySqlCommand cmdAdd new MySqlCommand("INSERT INTO Faults (" " FaultGroup, Text, Date, IP" ") VALUES (&quo…

长春百度网站优化百度网盘登录入口

前言 公司新需求需要导出ppt给业务用,查阅资料后发现也挺简单的,记录一下。 如有不懂的可以留言!!! 1.安装包 npm install pptxgenjs --save2.引入包 在需要使用的文件中引入 import Pptxgenfrom "pptxgenjs&…

做网站接广告南宁seo按天收费

前几天在玩 FFmpeg 的时后,突然发现 Ubuntu 上多了 php5-ffmpeg 这个扩充套件,就想来玩玩看,看好不好用,有两个结论:读取影片取决于 FFmpeg 的支援性,如果想要什么格式都支援的话,建议自己重新编…

湖南网站开发 岚鸿qq空间登录入口

1、按下win R键,在其中输入:hdwwiz,然后点击“确定”或者按回车键,打开“添加硬件”对话框。2、看到如下界面时,选择“网络适配器”(如下图所示), 在接着出现的界面中,左方“厂商”一栏里选择“…

网站流量作用网站风格总结

SpeechRecognition可以支持多种模型语音转文字,感觉vosk还不错,使用起来也简单一些;百度也有PaddleSpeech,但是安装起来太麻烦,不是这个库版本不对就是那个库有问题,用起来不方便; 安装SpeechR…

海口网站建设是什么意思wordpress文章格式

目录 51.1 输入元素 input 51.1.1 文本域 51.1.2 密码输入框 51.1.3 单选框 51.1.4 复选框 51.1.5 提交按钮 51.1.6 重置按钮 51.1.7 普通按钮 51.1.8 图片按钮 51.1.9 隐藏域 51.1.10 文件域 51.2 多行文本框 51.3 下拉列表框 51.4 表单的综合示例 表单是网页中…

专门做尿不湿的网站最好的app制作公司

环境: 飞凌OK6410A开发板, Windows CE6.0系统 最近在做GPRS通信,可是手头上的GPRS模块(Q2403A)是五线串口的(RXD、TXD、GND、RCS、CTS),老板又不愿买新的模块。所以考虑将调试串口CO…

网站开发步骤规划建筑贴图素材网站

题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的…