厦门个人网站建设软件平台公司

pingmian/2026/1/24 14:58:41/文章来源:
厦门个人网站建设,软件平台公司,衡阳市建设局网站,渭南网站建设公司文章目录 概述一、硬件系统二、基础配置设置主机名配置主机名与IP地址解析关闭防火墙与selinux时间同步(ntp)升级系统内核配置内核转发及网桥过滤*安装ipset及ipvsadm关闭SWAP分区 三、Containerd准备Containerd获取下载解压Containerd配置文件生成并修改Containerd启动及开机自… 文章目录 概述一、硬件系统二、基础配置设置主机名配置主机名与IP地址解析关闭防火墙与selinux时间同步(ntp)升级系统内核配置内核转发及网桥过滤*安装ipset及ipvsadm关闭SWAP分区 三、Containerd准备Containerd获取下载解压Containerd配置文件生成并修改Containerd启动及开机自启动runc获取ibseccomp获取ibseccomp编译安装runc安装 四、K8S集群部署K8S集群软件YUM源准备K8S集群软件安装配置kubelet 五、修改kubeadm证书时间获取kubernetes源码修改kubernetes源码安装go语言安装rsynckubernetes源码编译替换集群主机kubeadm证书为100年获取kubernetes 1.28组件容器镜像 六、 集群初始化master节点初始化工作节点加入集群验证k8s集群是否加入如kubectl get nodes执行如遇到报错验证证书有效期 七、安装网络插件calico获取calico安装calico查看pod运行信息 说明除集群初始化外与worker加入集群其余操作三台设备均都要执行。 概述 基于containerd容器运行时部署k8s 1.28集群。 一、硬件系统 CPU内存节点CPU 2u内存4Gk8s-master01CPU 1u内存4Gk8s-worker01CPU 1u内存4Gk8s-worker02///系统版本Centos7.9全部一致内核版本5.4.260-1.el7.elrepo.x86_64全部一致 二、基础配置 由于本次使用3台主机完成kubernetes集群部署其中1台为master节点,名称为k8s-master01;其中2台为worker节点名称分别为k8s-worker01及k8s-worker02 节点名称主机名IP地址master节点hostnamectl set-hostname k8s-master01192.168.31.150worker01节点hostnamectl set-hostname k8s-worker01192.168.31.151worker02节点hostnamectl set-hostname k8s-worker02192.168.31.152 设置主机名 hostnamectl set-hostname xxx,三台对应的设备分别执行: master节点 hostnamectl set-hostname k8s-master01worker01节点 hostnamectl set-hostname k8s-worker01worker02节点 hostnamectl set-hostname k8s-worker02配置主机名与IP地址解析 PS一些小细节 1、从此处开始以下大部分命令所有集群主机均需要配置如无需配置文档会说明。 2、使用SSH软件远程可以批量操作控制台如果使用的是crt可以参考我另一篇文章SecureCrt使用小技巧----发送交互到所有会话其他软件xshell等设置都很简单可以自行百度一下节省时间不用每条命令复制到三个终端分别执行。 设置系统主机名以及 Host 文件的相互解析小集群环境使用修改host大型环境使用dns方式使他们用户名和ip能相互解析 给每台虚拟机添加hosts cat /etc/hosts EOF 192.168.31.150 k8s-master01 192.168.31.151 k8s-worker01 192.168.31.152 k8s-worker02 EOF关闭防火墙与selinux #关闭防火墙 systemctl disable firewalld systemctl stop firewalld firewall-cmd --state#关闭selinux sed -ri s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config getenforce 0时间同步(ntp) 所有主机 #安装ntp yum install -y ntpdate #配置ntp自动更新时间 crontab -e #写入同步的计划任务 0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com升级系统内核 所有主机均需升级 #导入elrepo gpg key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org#安装elrepo YUM源仓库 yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm#安装kernel-ml版本ml为最新稳定版本lt为长期维护版本 yum --enablerepoelrepo-kernel -y install kernel-lt.x86_64#设置grub2默认引导为0 echo GRUB_DEFAULT0 | tee -a /etc/default/grub#重新生成grub2引导文件 grub2-mkconfig -o /boot/grub2/grub.cfg#重启系统 reboot重启后需要验证内核是否为更新对应的版本 uname -r 5.4.260-1.el7.elrepo.x86_64配置内核转发及网桥过滤* 所有主机均需要操作。 #添加网桥过滤及内核转发配置文件 cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 vm.swappiness 0 EOF#加载br_netfilter模块 modprobe br_netfilter 查看是否加载执行命令lsmod | grep br_netfilter lsmod | grep br_netfilterbr_netfilter 22256 0 bridge 151336 1 br_netfilter安装ipset及ipvsadm yum -y install ipset ipvsadm配置ipvsadm模块加载方式添加需要加载的模块 cat /etc/sysconfig/modules/ipvs.modules EOF #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack EOF授权、运行、检查是否加载 chmod 755 /etc/sysconfig/modules/ipvs.modules bash /etc/sysconfig/modules/ipvs.modules lsmod | grep -e ip_vs -e nf_conntrack关闭SWAP分区 修改完成后需要重启操作系统如不重启服务器可临时关闭命令为 swapoff -a永远关闭swap分区需要重启操作系统 sed -ri s/.*swap.*/#/ /etc/fstab重启系统 reboot三、Containerd准备 Containerd获取 Containerd获取部署文件访问 github搜索Containerd 选择历史版本本次安装版本1.7.3 下载解压 选择containerd对应版本复制链接使用wget进行下载 下载 wget https://github.com/containerd/containerd/releases/download/v1.7.3/cri-containerd-1.7.3-linux-amd64.tar.gz解压 tar zxvf cri-containerd-1.7.3-linux-amd64.tar.gz -C /Containerd配置文件生成并修改 mkdir /etc/containerdcontainerd config default /etc/containerd/config.tomlvim /etc/containerd/config.toml #编辑config.toml修改如下内容 sandbox_image registry.k8s.io/pause:3.9 由3.8修改为3.9Containerd启动及开机自启动 # 设置Containerd开机自启动 systemctl enable --now containerd# 验证其版本 containerd --version runc获取 本步骤可跳过底下有提供wget的链接命令 访问github.com搜索以获取runc 获取历史版本的runc本次安装使用runc1.1.5 鼠标右击选择对安装包复制下载链接 ibseccomp获取 本步骤可跳过底下有提供wget的链接命令 访问github搜索libseccomp下载安装包 ibseccomp编译安装 本步骤必须按照不安装 ibseccomp直接安装runc会报错缺少依赖 #安装 gcc,编译需要 yum install gcc -y#下载libseccomp-2.5.4.tar.gz wget https://github.com/opencontainers/runc/releases/download/v1.1.5/libseccomp-2.5.4.tar.gz#解压 tar xf libseccomp-2.5.4.tar.gz#进入解压文件夹 cd libseccomp-2.5.4/#安装gperf yum install gperf -y#编译 ./configure# 安装 make make install#查看该文件是否存在检查是否安装成功 find / -name libseccomp.sorunc安装 #下载runc安装包 wget https://github.com/opencontainers/runc/releases/download/v1.1.9/runc.amd64#赋权 chmod x runc.amd64#查找containerd安装时已安装的runc所在的位置然后替换 which runc#替换containerd安装已安装的runc mv runc.amd64 /usr/local/sbin/runc#执行runc命令如果有命令帮助则为正常 runc如果运行runc命令时提示runc: error while loading shared libraries:libseccomp.so.2: cannot open shared object file: No such file or directory 则表明runc没有找到libseccomp需要检查libseccomp是否安装本次安装默认就可以查询到。 四、K8S集群部署 K8S集群软件YUM源准备 使用google提供的YUM源 或者使用阿里云的都可以。 cat /etc/yum.repos.d/k8s.repo EOF [kubernetes] nameKubernetes baseurlhttps://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled1 gpgcheck1 repo_gpgcheck1 gpgkeyhttps://packages.cloud.google.com/yum/doc/yum-key.gpghttps://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOFK8S集群软件安装 #本次使用默认安装 yum -y install kubeadm kubelet kubectl#查看指定版本可忽略 # yum list kubeadm.x86_64 --showduplicates | sort -r # yum list kubelet.x86_64 --showduplicates | sort -r # yum list kubectl.x86_64 --showduplicates | sort -r#安装指定版本可忽略 # yum -y install kubeadm-1.28.X-0 kubelet-1.28.X-0 kubectl-1.28.X-0配置kubelet 为了实现docker使用的cgroupdriver与kubelet使用的cgroup的一致性建议修改如下文件内容。 #编辑/etc/sysconfig/kubelet文件 vim /etc/sysconfig/kubelet#写入如下配置 KUBELET_EXTRA_ARGS--cgroup-driversystemd# 设置kubelet为开机自启动即可由于没有生成配置文件集群初始化后自动启动 systemctl enable kubelet五、修改kubeadm证书时间 配置证书在实验环境中非必须步骤可以跳过 执行命令which kubeadm查看是否有kubeadm命令 which kubeadm #/usr/bin/kubeadm获取kubernetes源码 访问github搜索kubernetes 选择该项 根据需要选择版本此处使用v1.28.0.tar.gz 复制下载链接 # 下载 wget https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.28.0.tar.gz#ls查看该包 ls v1.28.0.tar.gz#剪切到目录 mv v1.28.0.tar.gz /usr/local/src/#进入目录 cd /usr/local/src/# 解压 tar zxvf v1.28.0.tar.gz#通过ls再查看解压后的包名kubernetes-1.28.0 kubernetes-1.28.0修改kubernetes源码 修改CA证书为100年有效期默认为10年 [rootk8s-master01 ~]# vim kubernetes-1.28.0/staging/src/k8s.io/client-go/util/cert/cert.go72 tmpl : x509.Certificate{73 SerialNumber: serial,74 Subject: pkix.Name{75 CommonName: cfg.CommonName,76 Organization: cfg.Organization,77 },78 DNSNames: []string{cfg.CommonName},79 NotBefore: notBefore,80 NotAfter: now.Add(duration365d * 100).UTC(),81 KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,82 BasicConstraintsValid: true,83 IsCA: true,84 }修改说明 把文件中80行10修改为100即可 。 修改kubeadm证书有效期为100年默认为1年 [rootk8s-master01 ~]# vim kubernetes-1.28.0/cmd/kubeadm/app/constants/constants.go......37 const (38 // KubernetesDir is the directory Kubernetes owns for storing various configuration files39 KubernetesDir /etc/kubernetes40 // ManifestsSubDirName defines directory name to store manifests41 ManifestsSubDirName manifests42 // TempDirForKubeadm defines temporary directory for kubeadm43 // should be joined with KubernetesDir.44 TempDirForKubeadm tmp4546 // CertificateBackdate defines the offset applied to notBefore for CA certificates generated by kubeadm47 CertificateBackdate time.Minute * 548 // CertificateValidity defines the validity for all the signed certificates generated by kubeadm49 CertificateValidity time.Hour * 24 * 365 * 100修改说明 把CertificateValidity time.Hour * 24 * 365 修改为CertificateValidity time.Hour * 24 * 365 * 100 安装go语言 因为kubernetes是go语言写的所以安装go语言环境用作编译 访问官网下载go 选择安装包复制链接进行下载 #下载 wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz#解压 tar zxvf go1.21.0.linux-amd64.tar.gz#移动文件夹 mv go /usr/local/go#添加全局变量export PATH$PATH:/usr/local/go/bin vim /etc/profile export PATH$PATH:/usr/local/go/bin#使变量生效 source /etc/profile#测试go是否安装成功 go version 安装rsync ,编译要用rsync安装rsync命令yum install rsync -y yum install rsync -y kubernetes源码编译 [rootk8s-master01 ~]# cd kubernetes-1.28.0/ [rootk8s-master01 kubernetes-1.28.0]# make all WHATcmd/kubeadm GOFLAGS-v[rootk8s-master01 kubernetes-1.28.0]# ls _output[rootk8s-master01 kubernetes-1.28.0]# ls _output/ bin local [rootk8s-master01 kubernetes-1.28.0]# ls _output/bin/ kubeadm ncpu替换集群主机kubeadm证书为100年 [rootk8s-master01 kubernetes-1.28.0]# which kubeadm /usr/bin/kubeadm [rootk8s-master01 kubernetes-1.28.0]# rm -rf which kubeadm [rootk8s-master01 kubernetes-1.28.0]# cp _output/bin/kubeadm /usr/bin/kubeadm [rootk8s-master01 kubernetes-1.28.0]# which kubeadm /usr/bin/kubeadmworker01和worker02删除 [rootk8s-worker01 ~]# rm -rf which kubeadm [rootk8s-worker02 ~]# rm -rf which kubeadm复制文件到worker01 和 worker02 [rootk8s-master01 kubernetes-1.28.0]# scp _output/bin/kubeadm 192.168.31.151:/usr/bin/kubeadm [rootk8s-master01 kubernetes-1.28.0]# scp _output/bin/kubeadm 192.168.31.152:/usr/bin/kubeadm获取kubernetes 1.28组件容器镜像 执行kubeadm config images list会列出所有镜像 kubeadm config images list#列出的镜像列表 registry.k8s.io/kube-apiserver:v1.28.0 registry.k8s.io/kube-controller-manager:v1.28.0 registry.k8s.io/kube-scheduler:v1.28.0 registry.k8s.io/kube-proxy:v1.28.0 registry.k8s.io/pause:3.9 registry.k8s.io/etcd:3.5.9-0 registry.k8s.io/coredns/coredns:v1.10.1拉取全部镜像kubeadm config images pull kubeadm config images pull#拉去完成的提示 [config/images] Pulled registry.k8s.io/kube-apiserver:v1.28.3 [config/images] Pulled registry.k8s.io/kube-controller-manager:v1.28.3 [config/images] Pulled registry.k8s.io/kube-scheduler:v1.28.3 [config/images] Pulled registry.k8s.io/kube-proxy:v1.28.3 [config/images] Pulled registry.k8s.io/pause:3.9 [config/images] Pulled registry.k8s.io/etcd:3.5.9-0 [config/images] Pulled registry.k8s.io/coredns/coredns:v1.10.1等待…可能会很长时间网速快好很多。 六、 集群初始化 镜像拉取完成后进行集群初始化初始化只有Master需要执行 master节点初始化 master节点执行初始化命令bash kubeadm init --kubernetes-versionv1.28.0 --pod-network-cidr10.244.0.0/16 --apiserver-advertise-address192.168.31.150 --cri-socket unix:///var/run/containerd/containerd.sock 如果只用Containerd不用docker可以不加–cri-socket unix:///var/run/containerd/containerd.sock 在Kubernetes通常简称为K8s中–cri-socket 参数用于指定容器运行时Container Runtime InterfaceCRI的套接字地址。CRI是Kubernetes与容器运行时之间的接口允许Kubernetes与不同的容器运行时进行通信如Docker、containerd等。 [rootk8s-master01 ~]# kubeadm init --kubernetes-versionv1.28.0 --pod-network-cidr10.244.0.0/16 --apiserver-advertise-address192.168.31.150 --cri-socket unix:///var/run/containerd/containerd.sock#初始化结果输出内容 [init] Using Kubernetes version: v1.28.0 [preflight] Running pre-flight checks [preflight] Pulling images required for setting up a Kubernetes cluster [preflight] This might take a minute or two, depending on the speed of your internet connection [preflight] You can also perform this action in beforehand using kubeadm config images pull [certs] Using certificateDir folder /etc/kubernetes/pki [certs] Generating ca certificate and key [certs] Generating apiserver certificate and key [certs] apiserver serving cert is signed for DNS names [k8s-master01 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 192.168.31.150] [certs] Generating apiserver-kubelet-client certificate and key [certs] Generating front-proxy-ca certificate and key [certs] Generating front-proxy-client certificate and key [certs] Generating etcd/ca certificate and key [certs] Generating etcd/server certificate and key [certs] etcd/server serving cert is signed for DNS names [k8s-master01 localhost] and IPs [192.168.31.150 127.0.0.1 ::1] [certs] Generating etcd/peer certificate and key [certs] etcd/peer serving cert is signed for DNS names [k8s-master01 localhost] and IPs [192.168.31.150 127.0.0.1 ::1] [certs] Generating etcd/healthcheck-client certificate and key [certs] Generating apiserver-etcd-client certificate and key [certs] Generating sa key and public key [kubeconfig] Using kubeconfig folder /etc/kubernetes [kubeconfig] Writing admin.conf kubeconfig file [kubeconfig] Writing kubelet.conf kubeconfig file [kubeconfig] Writing controller-manager.conf kubeconfig file [kubeconfig] Writing scheduler.conf kubeconfig file [etcd] Creating static Pod manifest for local etcd in /etc/kubernetes/manifests [control-plane] Using manifest folder /etc/kubernetes/manifests [control-plane] Creating static Pod manifest for kube-apiserver [control-plane] Creating static Pod manifest for kube-controller-manager [control-plane] Creating static Pod manifest for kube-scheduler [kubelet-start] Writing kubelet environment file with flags to file /var/lib/kubelet/kubeadm-flags.env [kubelet-start] Writing kubelet configuration to file /var/lib/kubelet/config.yaml [kubelet-start] Starting the kubelet [wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory /etc/kubernetes/manifests. This can take up to 4m0s [kubelet-check] Initial timeout of 40s passed. [apiclient] All control plane components are healthy after 103.502051 seconds [upload-config] Storing the configuration used in ConfigMap kubeadm-config in the kube-system Namespace [kubelet] Creating a ConfigMap kubelet-config in namespace kube-system with the configuration for the kubelets in the cluster [upload-certs] Skipping phase. Please see --upload-certs [mark-control-plane] Marking the node k8s-master01 as control-plane by adding the labels: [node-role.kubernetes.io/control-plane node.kubernetes.io/exclude-from-external-load-balancers] [mark-control-plane] Marking the node k8s-master01 as control-plane by adding the taints [node-role.kubernetes.io/control-plane:NoSchedule] [bootstrap-token] Using token: 2n0t62.gvuu8x3zui9o8xnc [bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles [bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to get nodes [bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials [bootstrap-token] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token [bootstrap-token] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster [bootstrap-token] Creating the cluster-info ConfigMap in the kube-public namespace [kubelet-finalize] Updating /etc/kubernetes/kubelet.conf to point to a rotatable kubelet client certificate and key [addons] Applied essential addon: CoreDNS [addons] Applied essential addon: kube-proxyYour Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:export KUBECONFIG/etc/kubernetes/admin.confYou should now deploy a pod network to the cluster. Run kubectl apply -f [podnetwork].yaml with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.31.150:6443 --token 2n0t62.gvuu8x3zui9o8xnc \--discovery-token-ca-cert-hash sha256:d294c082cc7e0d5f620fb10e527a8a7cb4cb6ccd8dc45ffaf2cddd9bd3016695工作节点加入集群 在master节点初始化完成后worker或node节点需要加入集群通过master初始化生成的token作为命令。 如上述master初始化完成最后两行复制到worker节点执行 kubeadm join 192.168.31.150:6443 --token 2n0t62.gvuu8x3zui9o8xnc \ --discovery-token-ca-cert-hash sha256:d294c082cc7e0d5f620fb10e527a8a7cb4cb6 验证k8s集群是否加入 worker工作节点加入集群后稍微等待可以在master节点通过kubectl get nodes获取worker节点是否加入如下可以看到master和worker都存在即为正常现象。 [rootk8s-master01 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master01 NotReady control-plane 30m v1.28.2 k8s-worker01 NotReady none 19m v1.28.2 k8s-worker02 NotReady none 18m v1.28.2如kubectl get nodes执行如遇到报错 master执行kubectl get nodes报错 master执行如下配置修正配置文件的路径 配置 Kubernetes 客户端使其能够连接到你的 Kubernetes 集群并使用相应的管理员权限进行操作 mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config完毕后再次执行kubectl get nodes验证 验证证书有效期 如有配置修改证书可以通过以下方式验证证书的有效期 [rootk8s-master01 ~]# openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep Not Not Before: Nov 14 08:10:42 2023 GMTNot After : Oct 21 08:15:42 2123 GMT[rootk8s-master01 ~]# kubeadm certs check-expiration [check-expiration] Reading configuration from the cluster... [check-expiration] FYI: You can look at this config file with kubectl -n kube-system get cm kubeadm-config -o yamlCERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY EXTERNALLY MANAGED admin.conf Oct 21, 2123 08:15 UTC 99y ca no apiserver Oct 21, 2123 08:15 UTC 99y ca no apiserver-etcd-client Oct 21, 2123 08:15 UTC 99y etcd-ca no apiserver-kubelet-client Oct 21, 2123 08:15 UTC 99y ca no controller-manager.conf Oct 21, 2123 08:15 UTC 99y ca no etcd-healthcheck-client Oct 21, 2123 08:15 UTC 99y etcd-ca no etcd-peer Oct 21, 2123 08:15 UTC 99y etcd-ca no etcd-server Oct 21, 2123 08:15 UTC 99y etcd-ca no front-proxy-client Oct 21, 2123 08:15 UTC 99y front-proxy-ca no scheduler.conf Oct 21, 2123 08:15 UTC 99y ca no CERTIFICATE AUTHORITY EXPIRES RESIDUAL TIME EXTERNALLY MANAGED ca Oct 21, 2123 08:15 UTC 99y no etcd-ca Oct 21, 2123 08:15 UTC 99y no front-proxy-ca Oct 21, 2123 08:15 UTC 99y no 七、安装网络插件calico 获取calico calico访问链接https://projectcalico.docs.tigera.io/about/about-calico 安装calico 下载安装和配置Calico使其能够为集群提供网络功能。 kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml下载Calico 安装的配置信息YAML 文件通常包含 例如网络CIDR、节点选择器、Encapsulation设置等 wget https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yamlvim custom-resources.yaml 修改Calico安装配置文件中的cidr字段将其更改为初始Pod网络CIDR。以下是修改后的YAML配置示例 # This section includes base Calico installation configuration. # For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.Installation apiVersion: operator.tigera.io/v1 kind: Installation metadata:name: default spec:# Configures Calico networking.calicoNetwork:# Note: The ipPools section cannot be modified post-install.ipPools:- blockSize: 26cidr: 10.244.0.0/16 修改此行内容为初始化时定义的pod network cidrencapsulation: VXLANCrossSubnetnatOutgoing: EnablednodeSelector: all() ---# This section configures the Calico API server. # For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.APIServer apiVersion: operator.tigera.io/v1 kind: APIServer metadata:name: default spec: {} 使用kubectl create -f custom-resources.yaml命令创建了两个Kubernetes自定义资源Custom ResourceCR的实例 kubectl create -f custom-resources.yamlinstallation.operator.tigera.io/default created apiserver.operator.tigera.io/default created查看pod运行信息 kubectl get pods -n calico-system查看calico-system 命名空间中运行的所有 Pod 的信息 所有 Pod 都处于 Running 状态表示它们都正常运行。如果有 Pod 处于 Pending 或 Error 状态可能需要进一步调查和解决问题。 [rootk8s-master01 ~]# kubectl get pods -n calico-system NAME READY STATUS RESTARTS AGE calico-kube-controllers-7dbdcfcfcb-gv74j 1/1 Running 0 120m calico-node-7k2dq 1/1 Running 7 (107m ago) 120m calico-node-bf8kk 1/1 Running 7 (108m ago) 120m calico-node-xbh6b 1/1 Running 7 (107m ago) 120m calico-typha-9477d4bb6-lcv9f 1/1 Running 0 120m calico-typha-9477d4bb6-wf4hn 1/1 Running 0 120m csi-node-driver-44vt4 2/2 Running 0 120m csi-node-driver-6867q 2/2 Running 0 120m csi-node-driver-x96sz 2/2 Running 0 120m 以下是calico-system 命名空间各个 Pod 的解释 calico-kube-controllers-7dbdcfcfcb-gv74j #Calico 的控制器 Pod负责处理网络策略和其他控制平面功能。calico-node-7k2dq, calico-node-bf8kk, calico-node-xbh6b #这些是 Calico 的节点 Pod负责在每个节点上运行的工作负载。 #在这里有三个节点 (calico-node-7k2dq, calico-node-bf8kk, calico-node-xbh6b)。calico-typha-9477d4bb6-lcv9f, calico-typha-9477d4bb6-wf4hn #这是 Typha Pod用于处理 Calico 网络中的数据平面流量。csi-node-driver-44vt4, csi-node-driver-6867q, csi-node-driver-x96sz #这些是 CSIContainer Storage Interface节点驱动程序的 Pods。它们可能与存储卷相关的功能有关。完结~emmm

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

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

相关文章

做网站群广州免费建站排行

RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available在使用rman duplicate复制standby数据库的时候,由于standby数据库实例必须处于非mount状态,所以主数据库直接连接是会报错的,需要在standby数据库服务上的监听器…

南京建设局网站首页什么是网络营销策划

场景:后端更新数据推送到客户端(Java部分使用Tomcat服务器)。后端推送数据的解决方案有很多,比如轮询、Comet、WebSocket。1. 轮询对于后端来说开发成本最低,就是按照传统的方式处理Ajax请求并返回数据,在学校的时候实验室的项目一…

黄页网站大全在线看免费榆林市横山县建设局官方网站

适用版本 Axure 8.1.0.3377 zdfans.com gP5uuK2gHiIVO3YFZwoKyxAdHpXRGNnZWN8Obntqv7FF3pAz7dTu8B61ySxli 转载于:https://www.cnblogs.com/mengjianzhou/p/11226260.html

常州做网站企业猎头公司怎么找

在使用AlarmManager实现闹钟需要注意的是,intent和pendingintend的context如果是activity,那么当activity回收之后,context对象则不能被AlarmManager用于发送广播打开service之类等等,即使是applicationContext也只是进程唯一&…

申请免费个人网站空间怎么做新网站上线通稿

使用Apache Kafka路由消息 本示例向您展示了如何使用LangChain的标准聊天功能,并通过Apache Kafka来回传递聊天消息。 目标是模拟一个架构,其中聊天前端和LLM作为需要通过内部网络相互通信的独立服务运行。 这是一种替代通过REST API请求模型响应的典…

在线a视频网站一级a做爰片织梦图片自适应网站源码

1. 题目 在给定的二维二进制数组 A 中,存在两座岛。(岛是由四面相连的 1 形成的一个最大组。) 现在,我们可以将 0 变为 1,以使两座岛连接起来,变成一座岛。 返回必须翻转的 0 的最小数目。(可…

.net手机网站源码下载做现货去哪些网站营销好呢

家政预约服务管理系统,轻松搭建专属家政小程序app; 家政服务app开发架构包括: 1. 后台管理端:全面管理家政服务、门店、员工、阿姨信息、订单及优惠促销等数据,并进行统计分析。 2. 门店端:助力各门店及员工…

网站左侧漂浮导航网站建设的卷子

旧版本 新版本 没有与操作系统一起打包的ISO文件了,要么先安装系统,再安装Centreon,要么用pve导入OVF文件

网站模板一样侵权吗设计师常用的设计论坛

文章目录 造成OOM的原因1.一次性申请的太多2. 内存资源耗尽未释放3.本身资源不够 如何快速定位OOM?1.系统已经OOM了2.系统运行中还未OOM2.1导出dump文件:2.2.结合jvisualvm进行调试2.3 利用ArthasArthas可以做什么?如何使用Arthas小结 造成OO…

国税网站页面申报撤销怎么做中国品牌装修公司排名

给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。 注意这里是找连续子串。 算法:动态规划。f[i][j]表示第一个字符串前i个字符中与第二个字符串前j个中的最长连续子串长度 那么状态转移为:当s1(i)s2(j)时&a…

中职电子商务网站建设与维护考试题网站建设与推广的区别

要理解GNU C和标准C的区别,我们需要先了解C语言的标准化过程以及GNU项目。 标准C: C语言最初由Dennis Ritchie在1973年设计并实现。随着其流行度的增加,为了保证不同编译器之间的可移植性和一致性,美国国家标准局(Ame…

哪家建设公司网站威县建设局网站

一、安装httpd服务器Apache网站服务 1、准备工作 为了避免发送端口冲突,程序冲突等现象,卸载使用rpm方式安装的httpd #使用命令检查是否下载了httpd [rootserver ~]# rpm -qa httpd #如果有则使用 [rootserver ~]# rpm -e httpd --nodeps Apache的配置…

网站群发推广软件接私活做网站要不要签合同

文章目录 一、完整代码二、过程实现2.1 导包2.2 数据准备2.3 字符分词2.4 构建数据集2.5 定义模型2.6 模型训练2.7 模型推理 三、整体总结 采用RNN和unicode分词进行文本生成 一、完整代码 作者在文章开头地址中使用C实现了这一过程,为了便于理解,这里我…

创手机网站哪里找专业做网站的公司

由于Bi<7&#xff0c;考虑状压。 如果考虑前i个位置的话&#xff0c;状态里需要压入前7个人后7个人&#xff0c;显然是跑不动的。 那么改成考虑前i个人。于是设f[i][j][k]表示前i个人都已吃完饭&#xff0c;i1后面7个人的吃饭状态为j&#xff0c;最后一个吃饭的人是k的答案。…

网站的宣传与推广个人工商户做网站要上税吗

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 【实验描述】本实验讲述在ArcGIS软件中进行日常影像(栅格)数据的拼接与提取(裁剪)的工具与方法。影像的拼接常用到的工具是Mosaic和Mosaic To New Raster;影像提取分为按属性提取、形状或位置提…

门户网站建设构架赣州人才网赣州九一人才

深度解析 Java 的包机制 深度解析 Java 的包机制摘要引言一、什么是包机制1.1 包的定义1.2 包的命名规范1.3 包的声明1.4 包的导入1.5 包的访问权限1.6 包的层次结构1.7 包的目录结构 二、包的命名冲突问题三、总结参考资料 博主 默语带您 Go to New World. ✍ 个人主页—— 默…

兰州网站建设价格crm在线观看

/*----------------------------------------------- 内容&#xff1a;切换到独立按键模式&#xff0c;通过按键在数码管显示对应的数字 ------------------------------------------------*/ #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0…

增城建设局网站智冠宝企业网站管理系统

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

重庆做网站做得好的公司网站建设提案ppt

c#统计字符串中数字字符的个数 题目描述 假设有一个GetNumber方法&#xff08;参数为字符串strSource&#xff09;&#xff0c;编写一个静态方法可以用来统计字符串strSource中数字字符的个数。 输入 输入一个字符串strSource输出 strSource字符串中数字字符的个数样例输入 s…