当前位置: 首页 > news >正文

物流网站建设方案权限管理长春百度推广排名

物流网站建设方案权限管理,长春百度推广排名,西安招商型网站建设,网站快速建设程序总结#xff1a;整理不易#xff0c;如果对你有帮助#xff0c;可否点赞关注一下#xff1f; 更多详细内容请参考#xff1a;企业级K8s集群运维实战 1、在当前实验环境中安装K8S1.25.14版本#xff0c;出现了一个问题#xff0c;就是在pod中访问百度网站#xff0c;大…总结整理不易如果对你有帮助可否点赞关注一下 更多详细内容请参考企业级K8s集群运维实战 1、在当前实验环境中安装K8S1.25.14版本出现了一个问题就是在pod中访问百度网站大概时间有10s多这个时间太长了尝试了各种办法都解决不了后面尝试安装了了1.26.15版本就没这个问题很神奇希望这个问题能帮到一些朋友如果你也有遇到这个问题并有解决方案可以告诉我本人不胜感激 2、此外在安装K8S1.26.15版本后安装完calico v3.26.4后测试dns无法ping通百度将control-plane节点和worker节点主机进行重启就可以ping通虽然重启解决了但是不明白为什么如果你能知道并告知我本人将非常感谢 一、架构图 如下图所示 二、环境信息 基于Kylin V10ARM架构CPU外部etcd使用containerd部署K8S 1.26.15集群资源合集 2、部署规划 主机名 K8S版本 系统版本 CPU架构 内核版本I IP地址 备注 k8s-master-28 1.26.15 Kylin Linux Advanced Server V10 aarch64 4.19.90-17.5.ky10.aarch64 172.18.1.28 control-plane节点etcd节点 k8s-worker-42 1.26.15 Kylin Linux Advanced Server V10 aarch64 4.19.90-17.5.ky10.aarch64 172.18.1.42 worker节点 k8s-worker-67 1.26.15 Kylin Linux Advanced Server V10 aarch64 4.19.90-17.5.ky10.aarch64 172.18.1.67 worker节点 3、集群网段 宿主机 集群Pod网段 集群Service网段 172.18.1.0/24 10.48.0.0/16 10.96.0.0/16 4、基础软件版本 软件 版本 安装方式 kube-apiserver、kube-controller-manager、kube-scheduler、kube-proxy 1.26.15 容器镜像 kubeadm、kubectl、kubelet 1.26.15 二进制 etcd v3.5.10 二进制 coredns v1.9.3 容器镜像 calico v3.26.4 容器镜像 pause 3.9 容器镜像 cri-containerd-cni 1.7.2 二进制 ipvsadm 1.29 yum ipset 7.3 yum conntrack 1.4.4 yum socat 1.7.3.2 yum ebtables 2.0.10 yum sysstat 12.1.6 yum cfssljson 1.6.5 二进制 cfssl 1.6.5 二进制 cfssl-certinfo 1.6.5 二进制 说明 1、cri-containerd-cni包包含containerd、runc、cni打工插件。安装containerd,需要同时安装runc及cni网络插件。 containerd不能直接操作容器需要通过runc来运行容器。默认Containerd管理的容器仅有lo网络(无法访问容器之外的网络) 如果需要访问容器之外的网络则需要安装CNI网络插件。CNI(Container Network Interface) 是一套容器网络接口规范用于为容器分配ip地址通过CNI插件Containerd管理的容器可以访问容器之外的网络。 2、ipvsadm这是一个用于管理Linux内核中的IP虚拟服务器IPVS的工具。它允许您配置和管理负载均衡、网络地址转换NAT和透明代理等功能。 3、ipset这是一个用于管理Linux内核中的IP集合的工具。它允许您创建和管理IP地址、IP地址范围和端口号的集合以便在防火墙规则中使用。 4、conntrack这是一个用于连接跟踪的内核模块和工具。它允许您跟踪网络连接的状态和信息如源IP地址、目标IP地址、端口号等。 5、socat网络工具这是一个用于在Linux系统中建立各种类型网络连接的工具。在Kubernetes网络中socat可以 用于创建端口转发、代理和转发等网络连接。 6、ebtables以太网桥规则管理工具这是一个用于在Linux系统中管理以太网桥规则的工具。在Kubernetes中ebtables 用于在网络分区中实现容器之间的隔离和通信。 7、sysstat这是一个用于系统性能监控和报告的工具集。它包括一些实用程序如sar、iostat和mpstat用于收集和显示系统资源使用情况的统计信息。 5、K8S镜像 K8S镜像 calico镜像 registry.k8s.io/kube-apiserver:v1.26.15 docker.io/calico/cni:v3.26.4 registry.k8s.io/kube-controller-manager:v1.26.15 docker.io/calico/kube-controllers:v3.26.4 registry.k8s.io/kube-scheduler:v1.26.15 docker.io/calico/node:v3.26.4 registry.k8s.io/kube-proxy:v1.26.15 - registry.k8s.io/pause:3.9 - registry.k8s.io/coredns/coredns:v1.9.3 - 6、k8s版本与calico版本对应关系 calico版本 calico yml文件下载 支持K8S版本 v3.24.x calico.yml v1.22、v1.23、v1.24、v1.25 v3.25.x calico.yml v1.23、v1.24、v1.25、v1.26、v1.27、v1.28 v3.26.x calico.yml v1.24、v1.25、v1.26、v1.27、v1.28 v3.27.x calico.yml v1.27、v1.28、v1.29 三、安装和配置先决条件 3.1、设置主机名 说明分别在对应的节点IP上设置主机名。 [rootecs-90c2-0001 ~]# hostnamectl set-hostname k8s-master-28 bash [rootecs-90c2-0002 ~]# hostnamectl set-hostname k8s-worker-42 bash [rootecs-90c2-0003 ~]# hostnamectl set-hostname k8s-worker-67 bash3.2、配置主机hosts 说明以下操作无论是control-plane节点和worker节点均需要执行。 [rootk8s-master-28 ~]# cat /etc/hosts EOF 172.18.1.28 k8s-master-28 172.18.1.42 k8s-worker-42 172.18.1.67 k8s-worker-67 EOF3.3、关闭防火墙 说明以下操作无论是control-plane节点和worker节点均需要执行。 [rootk8s-master-28 ~]# systemctl stop firewalld systemctl disable firewalld3.4、设置ulimit 说明以下操作无论是control-plane节点和worker节点均需要执行。 1、检查ulimit [rootk8s-master-28 ~]# ulimit -SHn 65535 [rootk8s-master-28 ~]# ulimit -a2、设置ulimit, 如果已经设置则忽略如果未设置请按照如下要求设置。 [rootk8s-master-28 ~]# vim /etc/security/limits.conf root soft nofile 65535 root hard nofile 65535 * soft nofile 65535 * hard nofile 65535 root soft nproc 65535 root hard nproc 65535 * soft nproc 65535 * hard nproc 655353.5、关闭selinux 说明以下操作无论是control-plane节点和worker节点均需要执行。 # 1、临时关闭 [rootk8s-master-28 ~]# setenforce 0 # 2、永久关闭需重启服务器 [rootk8s-master-28 ~]# sed -i s#SELINUXenforcing#SELINUXdisabled#g /etc/selinux/config [rootk8s-master-28 ~]# sed -i s#SELINUXenforcing#SELINUXdisabled#g /etc/sysconfig/selinux3.6、关闭swap分区 说明以下操作无论是control-plane节点和worker节点均需要执行。 [rootk8s-master-28 ~]# swapoff -a sed -i s/.*swap.*/#/ /etc/fstab3.7、时间时区同步 说明以下操作无论是control-plane节点和worker节点均需要执行。 1、设置时区为Asia/Shanghai如果已经是则请忽略 # 以 root 用户运行以下命令可以修改当前时区如修改为上海 [rootk8s-master-28 ~]# timedatectl set-timezone Asia/Shanghai # 显示当前时区 [rootk8s-master-28 ~]# timedatectl show TimezoneAsia/Shanghai2、设置时间与北京时间同步如果已经是则请忽略 3.8、修改内核参数 说明以下操作无论是control-plane节点和worker节点均需要执行。 1、创建名为/etc/modules-load.d/containerd.conf 的文件并且将 overlay和br_netfilter写入。这两个模块overlay 和br_netfilter是containerd运行所需的内核模块 [rootk8s-master-28 ~]# modprobe overlay [rootk8s-master-28 ~]# modprobe br_netfilter [rootk8s-master-28 ~]# cat EOF | tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF # 通过运行以下指令确认br_netfilter和overlay模块被加载 [rootk8s-master-28 ~]# lsmod | grep br_netfilter [rootk8s-master-28 ~]# lsmod | grep overlay2、设置 必须的内核参数包括网络转发、桥接网络 、IPv6 数据包的iptables过滤功能 [rootk8s-master-28 ~]# cat EOF /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 EOF # 开启ip_forward [rootk8s-master-28 ~]# sed -i s/net.ipv4.ip_forward0/net.ipv4.ip_forward1/g /etc/sysctl.conf # 应用sysctl参数而不重新启动 [rootk8s-master-28 ~]# sysctl --system3.9、启用IPVS模式 说明以下操作无论是control-plane节点和worker节点均需要执行。 1、安装IPVS工具及依赖 [rootk8s-master-28 ~]# yum install ipvsadm ipset sysstat socat conntrack ebtables -y2、确保安装了IPVS所需的内核模块注对于 Linux 内核 4.19 及更高版本请使用 nf_conntrack 代替 nf_conntrack_ipv4。 [rootk8s-master-28 ~]# uname -r 4.19.90-17.5.ky10.aarch64[rootk8s-master-28 ~]# cat /etc/profile.d/ipvs.modules EOF #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack EOF [rootk8s-master-28 ~]# chmod 755 /etc/profile.d/ipvs.modules bash /etc/profile.d/ipvs.modules [rootk8s-master-28 ~]# lsmod | grep -e ip_vs -e nf_conntrack四、安装etcd 说明以下操作无论只需在etcd节点执行即k8s-master-28节点。 4.1、生成etcd相关证书 说明手动创建证书比较麻烦这里采用了etcd证书一键生成工具来创建etcd相关证书。 1、编辑env.conf文件 [rootk8s-master-28 etcd_ssl]# cat env.conf # cfssl生成证书过程日志打印级别0:调试 1:信息 2:警告 3:错误 4:严重 export loglevel3# etcd集群所有主机ip地址和主机名,建议多写几个ip,方便后期扩容,ip地址之间必须使用逗号分隔 export etcd_hostname_list127.0.0.1,k8s-master-28,172.18.1.282、生成证书 [rootk8s-master-28 etcd_ssl]# ./op.sh build执行结果如下图所示 3、创建证书目录并拷贝证书 [rootk8s-master-28 etcd_ssl]# cd etcd [rootk8s-master-28 etcd]# mkdir -p /etc/kubernetes/pki/etcd [rootk8s-master-28 etcd]# cp apiserver-etcd-client-key.pem apiserver-etcd-client.pem /etc/kubernetes/pki/ [rootk8s-master-28 etcd]# cp ca-key.pem ca.pem /etc/kubernetes/pki/etcd/ [rootk8s-master-28 etcd]# cp healthcheck-client.pem healthcheck-client-key.pem /etc/kubernetes/pki/etcd/ [rootk8s-master-28 etcd]# cp server.pem server-key.pem /etc/kubernetes/pki/etcd/ [rootk8s-master-28 etcd]# cp peer.pem peer-key.pem /etc/kubernetes/pki/etcd/证书路径如下图所示 4.2、下载etcd二进制安装包 wget https://github.com/etcd-io/etcd/releases/download/v3.5.10/etcd-v3.5.10-linux-arm64.tar.gz tar axf etcd-v3.5.10-linux-arm64.tar.gz mv etcd-v3.5.10-linux-arm64/etcd* /usr/bin/4.3、创建Service文件 [rootk8s-master-28 ~]# vim /etc/systemd/system/etcd.service [Unit] DescriptionEtcd Server Afternetwork.target Afternetwork-online.target Wantsnetwork-online.target Documentationhttps://github.com/coreos[Service] Typenotify WorkingDirectory/var/lib/etcd ExecStart/usr/bin/etcd \--namek8s-master-28 \--cert-file/etc/kubernetes/pki/etcd/server.pem \--key-file/etc/kubernetes/pki/etcd/server-key.pem \--peer-cert-file/etc/kubernetes/pki/etcd/peer.pem \--peer-key-file/etc/kubernetes/pki/etcd/peer-key.pem \--trusted-ca-file/etc/kubernetes/pki/etcd/ca.pem \--peer-trusted-ca-file/etc/kubernetes/pki/etcd/ca.pem \--initial-advertise-peer-urlshttps://172.18.1.28:2380 \--listen-peer-urlshttps://172.18.1.28:2380 \--listen-client-urlshttps://172.18.1.28:2379,http://127.0.0.1:2379 \--advertise-client-urlshttps://172.18.1.28:2379 \--initial-cluster-tokenetcd-cluster \--initial-clusterk8s-master-28https://172.18.1.28:2380 \--initial-cluster-statenew \--data-dir/var/lib/etcd \--wal-dir \--snapshot-count50000 \--auto-compaction-retention1 \--auto-compaction-modeperiodic \--max-request-bytes10485760 \--quota-backend-bytes8589934592Restartalways RestartSec15 LimitNOFILE65536 OOMScoreAdjust-999[Install] WantedBymulti-user.target4.4、启动etcd服务 mkdir /var/lib/etcd chmod 700 /var/lib/etcd systemctl daemon-reload systemctl enable etcd systemctl restart etcd4.5、检查etcd状态 etcdctl --endpointshttps://172.18.1.28:2379 \ --cacert /etc/kubernetes/pki/etcd/ca.pem --cert /etc/kubernetes/pki/etcd/peer.pem \ --key /etc/kubernetes/pki/etcd/peer-key.pem endpoint healthetcdctl --endpointshttps://172.18.1.28:2379 \ --cacert /etc/kubernetes/pki/etcd/ca.pem --cert /etc/kubernetes/pki/etcd/peer.pem \ --key /etc/kubernetes/pki/etcd/peer-key.pem endpoint status --write-out table4.6、etcd集群备份 说明备份etcd集群可以通过两种方式完成etcd内置快照和卷快照。 参考《Kubernetes备份篇etcd集群数据备份与恢复》 五、安装containerd容器引擎 说明以下操作无论是control-plane节点和worker节点均需要执行。 1、升级libseccomp 说明经过多次试验安装k8s1.26.15版本时如果libseccomp版本为2.4.1则会报错unable to retrieve OCI runtime error。 [rootk8s-master-28 ~]# rpm -qa | grep libseccomp libseccomp-2.4.1-3.ky10.aarch64 [rootk8s-master-28 ~]# rpm -e rpm -qa | grep libseccomp --nodeps [rootk8s-master-28 ~]# yum install gperf -y [rootk8s-master-28 ~]# wget https://github.com/seccomp/libseccomp/releases/download/v2.5.4/libseccomp-2.5.4.tar.gz [rootk8s-master-28 ~]# tar axf libseccomp-2.5.4.tar.gz cd libseccomp-2.5.4 [rootk8s-master-28 ~]# ./configure make make install [rootk8s-master-28 libseccomp-2.5.4]# find / -name libseccomp.so.2 /usr/local/lib/libseccomp.so.2 /root/libseccomp-2.5.4/src/.libs/libseccomp.so.2 [rootk8s-master-28 ~]# ln -s /usr/local/lib/libseccomp.so.2 /usr/lib64/libseccomp.so.22、安装软件包 [rootk8s-master-28 ~]# wget https://github.com/containerd/containerd/releases/download/v1.7.2/cri-containerd-cni-1.7.2-linux-arm64.tar.gz [rootk8s-master-28 ~]# tar axf cri-containerd-cni-1.7.2-linux-arm64.tar.gz -C /3、修改配置文件 [rootk8s-master-28 ~]# mkdir -p /etc/containerd containerd config default /etc/containerd/config.toml [rootk8s-master-28 ~]# sed -i s#SystemdCgroup false#SystemdCgroup true#g /etc/containerd/config.toml [rootk8s-master-28 ~]# sed -i s#sandbox_image registry.k8s.io/pause:3.8#sandbox_image registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9#g /etc/containerd/config.toml4、网络插件CNI配置文件 [rootk8s-master-28 ~]# rm -f /etc/cni/net.d/10-containerd-net.conflist [rootk8s-master-28 ~]# cat EOF | sudo tee /etc/cni/net.d/cni-default.conf {name: mynet,cniVersion: 0.3.1,type: bridge,bridge: mynet0,isDefaultGateway: true,ipMasq: true,hairpinMode: true,ipam: {type: host-local,subnet: 10.48.0.0/16} } EOF5、重启containerd服务并设置开机自启 [rootk8s-master-28 ~]# systemctl daemon-reload systemctl restart containerd systemctl enable containerd如下图所示 六、安装kubelet、kubeadm和kubectl 说明以下操作无论是control-plane节点和worker节点均需要执行。 6.1、方法一yum源 1、编辑镜像源文件加入阿里云k8s镜像源配置 [rootk8s-master-28 ~]# cat EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64/ enabled1 gpgcheck0 repo_gpgcheck0 gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF2、安装指定版本 [rootk8s-master-28 ~]# yum --showduplicates list kubeadm kubectl kubelet [rootk8s-master-28 ~]# yum install -y kubelet-1.26.9 kubeadm-1.26.9 kubectl-1.26.93、设置kubectl开机自启 [rootk8s-master-28 ~]# systemctl enable kubelet注意由于在Kylin Linux Advanced Server V10系统的kubernetes源中使用yum最高只能安装1.26大版本中的1.26.9小版本但是我安装的是1.26.15版本所以当前环境中未采用此方法。 6.2、方法二二进制 说明以下操作无论是control-plane节点和worker节点均需要执行。 1、准备kubeadm、kubelet、kubectl二进制文件 # 方法一 wget -P /usr/bin/ https://dl.k8s.io/v1.26.15/bin/linux/arm64/kubeadm wget -P /usr/bin/ https://dl.k8s.io/v1.26.15/bin/linux/arm64/kubelet wget -P /usr/bin/ https://dl.k8s.io/v1.26.15/bin/linux/arm64/kubectl # 方法二 wget https://dl.k8s.io/v1.26.15/kubernetes-client-linux-arm64.tar.gz tar axf kubernetes-client-linux-arm64.tar.gz cp kubernetes/node/bin/{kubeadm,kubelet,kubectl} /usr/bin2、准备kubelet.service文件 wget https://raw.githubusercontent.com/kubernetes/release/v0.4.0/cmd/kubepkg/templates/latest/deb/kubelet/lib/systemd/system/kubelet.service cp kubelet.service /usr/lib/systemd/system/kubelet.service3、准备10-kubeadm.conf文件 wget https://raw.githubusercontent.com/kubernetes/release/v0.4.0/cmd/kubepkg/templates/latest/deb/kubeadm/10-kubeadm.conf mkdir -p /usr/lib/systemd/system/kubelet.service.d cp 10-kubeadm.conf /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf4、设置kubectl开机自启 systemctl enable kubelet七、k8s镜像下载 说明以下操作无论是control-plane节点和worker节点均需要执行。 1、查看镜像 [rootk8s-master-28 ~]# kubeadm config images list --kubernetes-versionv1.26.15 registry.k8s.io/kube-apiserver:v1.26.15 registry.k8s.io/kube-controller-manager:v1.26.15 registry.k8s.io/kube-scheduler:v1.26.15 registry.k8s.io/kube-proxy:v1.26.15 registry.k8s.io/pause:3.9 registry.k8s.io/etcd:3.5.10-0 registry.k8s.io/coredns/coredns:v1.9.32、下载镜像 #!/bin/bash k8s_versionv1.26.15 pause_version3.9 etcd_version3.5.10-0 coredns_versionv1.9.3 registry_addressregistry.cn-hangzhou.aliyuncs.com/google_containers ctr -n k8s.io image pull --platform linux/arm64 ${registry_address}/kube-apiserver:${k8s_version} ctr -n k8s.io image pull --platform linux/arm64 ${registry_address}/kube-controller-manager:${k8s_version} ctr -n k8s.io image pull --platform linux/arm64 ${registry_address}/kube-scheduler:${k8s_version} ctr -n k8s.io image pull --platform linux/arm64 ${registry_address}/kube-proxy:${k8s_version} ctr -n k8s.io image pull --platform linux/arm64 ${registry_address}/pause:${pause_version} ctr -n k8s.io image pull --platform linux/arm64 ${registry_address}/etcd:${etcd_version} ctr -n k8s.io image pull --platform linux/arm64 ${registry_address}/coredns:${coredns_version}3、导出镜像 #!/bin/bash k8s_versionv1.26.15 pause_version3.9 etcd_version3.5.10-0 coredns_versionv1.9.3 registry_addressregistry.cn-hangzhou.aliyuncs.com/google_containers ctr -n k8s.io image export --platform linux/arm64 \ kube-apiserver-${k8s_version}.tar.gz ${registry_address}/kube-apiserver:${k8s_version} ctr -n k8s.io image export --platform linux/arm64 \ kube-controller-manager-${k8s_version}.tar.gz ${registry_address}/kube-controller-manager:${k8s_version} ctr -n k8s.io image export --platform linux/arm64 \ kube-scheduler-${k8s_version}.tar.gz ${registry_address}/kube-scheduler:${k8s_version} ctr -n k8s.io image export --platform linux/arm64 \ kube-proxy-${k8s_version}.tar.gz ${registry_address}/kube-proxy:${k8s_version} ctr -n k8s.io image export --platform linux/arm64 \ pause-${pause_version}.tar.gz ${registry_address}/pause:${pause_version} ctr -n k8s.io image export --platform linux/arm64 \ etcd-${etcd_version}.tar.gz ${registry_address}/etcd:${etcd_version} ctr -n k8s.io image export --platform linux/arm64 \ coredns-${coredns_version}.tar.gz ${registry_address}/coredns:${coredns_version}4、导入镜像 #!/bin/bash k8s_versionv1.26.15 pause_version3.9 etcd_version3.5.10-0 coredns_versionv1.9.3 ctr -n k8s.io image import --platform linux/arm64 pause-${pause_version}.tar.gz ctr -n k8s.io image import --platform linux/arm64 kube-apiserver-${k8s_version}.tar.gz ctr -n k8s.io image import --platform linux/arm64 kube-controller-manager-${k8s_version}.tar.gz ctr -n k8s.io image import --platform linux/arm64 kube-scheduler-${k8s_version}.tar.gz ctr -n k8s.io image import --platform linux/arm64 kube-proxy-${k8s_version}.tar.gz ctr -n k8s.io image import --platform linux/arm64 etcd-${etcd_version}.tar.gz ctr -n k8s.io image import --platform linux/arm64 coredns-${coredns_version}.tar.gz说明由于网络问题国内服务器无法访问registry.k8s.io镜像仓库地址建议使用国内阿里云的镜像仓库下载k8s镜像。如果你的是专网环境请找一台能访问阿里云镜像仓库的服务器下载然后打包成tar.gz格式上传到要部署的专网服务器通过ctr image import命令导入镜像即可。 八、calico镜像及yaml文件下载 calico 3.26版本对应K8S版本如下图所示 # 支持系统 RedHat Linux 7 CentOS 7 Flatcar Container Linux Fedora CoreOS Ubuntu 18.04 Debian 8 # 支持k8s版本 v1.24 v1.25 v1.26 v1.27 v1.281、calico.yml文件下载 说明以下操作只需要在control-plane节点执行。 [rootk8s-master-28 ~]# wget https://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/calico.yaml [rootk8s-master-28 ~]# grep image: calico.yaml | uniq -c2 image: docker.io/calico/cni:v3.26.42 image: docker.io/calico/node:v3.26.41 image: docker.io/calico/kube-controllers:v3.26.42、镜像下载 说明以下操作无论是control-plane节点和worker节点均需要执行。 #!/bin/bash calico_versionv3.26.4 ctr -n k8s.io image pull --platform linux/arm64 docker.io/calico/cni:${calico_version} ctr -n k8s.io image pull --platform linux/arm64 docker.io/calico/node:${calico_version} ctr -n k8s.io image pull --platform linux/arm64 docker.io/calico/kube-controllers:${calico_version}3、镜像导出 #!/bin/bash calico_versionv3.26.4 ctr -n k8s.io image export --platform linux/arm64 \ calico-cni-${calico_version}.tar.gz docker.io/calico/cni:${calico_version} ctr -n k8s.io image export --platform linux/arm64 \ calico-node-${calico_version}.tar.gz docker.io/calico/node:${calico_version} ctr -n k8s.io image export --platform linux/arm64 \ calico-kube-controllers-${calico_version}.tar.gz docker.io/calico/kube-controllers:${calico_version}4、镜像导入 #!/bin/bash calico_versionv3.26.4 ctr -n k8s.io image import --platform linux/arm64 calico-cni-${calico_version}.tar.gz ctr -n k8s.io image import --platform linux/arm64 calico-node-${calico_version}.tar.gz ctr -n k8s.io image import --platform linux/arm64 calico-kube-controllers-${calico_version}.tar.gz九、安装control-plane节点 9.1、control-plane节点初始化集群 说明以下操作只需要在control-plane节点执行。 1、生成默认kubeadm初始化config文件 [rootk8s-master-28 ~]# kubeadm config print init-defaults kubeadm-config.yaml2、修改kubeadm默认config文件 [rootk8s-master-28 ~]# vim kubeadm-config.yaml apiVersion: kubeadm.k8s.io/v1beta3 kind: InitConfiguration localAPIEndpoint:advertiseAddress: 172.18.1.28bindPort: 6443 nodeRegistration:criSocket: unix:///run/containerd/containerd.sockimagePullPolicy: IfNotPresentname: k8s-master-28taints:- effect: NoSchedulekey: node-role.kubernetes.io/master- effect: NoSchedulekey: node-role.kubernetes.io/control-plane --- apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration kubernetesVersion: 1.26.15 controlPlaneEndpoint: 172.18.1.28:6443 networking:dnsDomain: cluster.localpodSubnet: 10.48.0.0/16serviceSubnet: 10.96.0.0/16 etcd:external:endpoints:- https://172.18.1.28:2379caFile: /etc/kubernetes/pki/etcd/ca.pem # 连接etcd所需证书certFile: /etc/kubernetes/pki/apiserver-etcd-client.pemkeyFile: /etc/kubernetes/pki/apiserver-etcd-client-key.pem imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers apiServer:extraArgs:service-node-port-range: 30000-36000 --- apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration mode: ipvs --- kind: KubeletConfiguration apiVersion: kubelet.config.k8s.io/v1beta1 cgroupDriver: systemd3、使用kubeadm init初始化集群 [rootk8s-master-28 ~]# kubeadm init --configkubeadm-config.yaml执行结果如下图所示 4、对kubectl进行授权这样kubectl命令可以使用这个证书对k8s集群进行管理 [rootk8s-master-28 ~]# mkdir -p $HOME/.kube [rootk8s-master-28 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config [rootk8s-master-28 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config [rootk8s-master-28 ~]# export KUBECONFIG/etc/kubernetes/admin.conf [rootk8s-master-28 ~]# echo export KUBECONFIG/etc/kubernetes/admin.conf /etc/profile [rootk8s-master-28 ~]# source /etc/profile9.2、启动kubectl自动补全功能 说明以下操作只需要在control-plane节点执行。 [rootk8s-master-28 ~]# yum install bash-completion -y [rootk8s-master-28 ~]# source /usr/share/bash-completion/bash_completion [rootk8s-master-28 ~]# echo source (kubectl completion bash) ~/.bashrc [rootk8s-master-28 ~]# source ~/.bashrc十、安装worker节点 10.1、方法一 说明以下操作在所有worker节点执行。 1、将worker节点加入k8s集群 #注意kubeamd join命令的token只有24h24h就过期需要执行kubeadm token create --print-join-command重新生成。 kubeadm join 172.18.1.28:6443 --token 10lcf0.sw61lxyrnhpqpa98 \--discovery-token-ca-cert-hash sha256:e00937963435faeb4e9cd9863c8298f499f20125ceca2bc345b6b3824be4d321 如下图所示 10.2、方法二 1、k8s-worker-42节点准备kubeadm-join-node.yml配置文件 说明以下操作仅在k8s-worker-42节点执行。 [rootk8s-worker-42 ~]# vim kubeadm-join-node.yml --- apiVersion: kubeadm.k8s.io/v1beta3 kind: JoinConfiguration caCertPath: /etc/kubernetes/pki/ca.crt discovery:bootstrapToken:apiServerEndpoint: 172.18.1.28:6443token: 10lcf0.sw61lxyrnhpqpa98 caCertHashes:- sha256:e00937963435faeb4e9cd9863c8298f499f20125ceca2bc345b6b3824be4d321unsafeSkipCAVerification: truetimeout: 4m0stlsBootstrapToken: 10lcf0.sw61lxyrnhpqpa98 nodeRegistration:criSocket: unix:///run/containerd/containerd.sockimagePullPolicy: IfNotPresentname: k8s-worker-42 # 如果有其它worker节点加入集群,只需将name字段的值修改为当前主机的主机名其它内容不变taints: []2、k8s-worker-67节点准备kubeadm-join-node.yml配置文件 说明以下操作仅在k8s-worker-67节点执行。 [rootk8s-worker-67 ~]# vim kubeadm-join-node.yml --- apiVersion: kubeadm.k8s.io/v1beta3 kind: JoinConfiguration caCertPath: /etc/kubernetes/pki/ca.crt discovery:bootstrapToken:apiServerEndpoint: 172.18.1.28:6443token: 10lcf0.sw61lxyrnhpqpa98 caCertHashes:- sha256:e00937963435faeb4e9cd9863c8298f499f20125ceca2bc345b6b3824be4d321unsafeSkipCAVerification: truetimeout: 4m0stlsBootstrapToken: 10lcf0.sw61lxyrnhpqpa98 nodeRegistration:criSocket: unix:///run/containerd/containerd.sockimagePullPolicy: IfNotPresentname: k8s-worker-67 # 如果有其它worker节点加入集群,只需将name字段的值修改为当前主机的主机名其它内容不变taints: []注意token、caCertHashes、tlsBootstrapToken的值在初始化k8s-master-28后就可以获取。 3、执行kubeadm-join-node.yml文件 说明以下操作在所有worker节点执行。 kubeadm join --configkubeadm-join-node.yml十一、部署calico网络插件 说明以下操作只需要在control-plane节点执行。 1、修改calico.yaml文件增加IP_AUTODETECTION_METHOD字段 - name: CALICO_NETWORKING_BACKENDvalueFrom:configMapKeyRef:name: calico-configkey: calico_backend- name: IP_AUTODETECTION_METHOD # 增加内容value: can-reach172.18.1.28 # 增加内容# Cluster type to identify the deployment type- name: CLUSTER_TYPEvalue: k8s,bgp说明官方提供的yaml文件中ip识别策略IPDETECTMETHOD没有配置即默认为first-found这会导致一个网络异常的ip作为nodeIP被注册从而影响node-to-node mesh 。我们可以修改成 can-reach 或者 interface 的策略尝试连接某一个Ready的node的IP以此选择出正确的IP。 2、修改calico.yaml文件修改CALICO_IPV4POOL_CIDR字段 # The default IPv4 pool to create on startup if none exists. Pod IPs will be# chosen from this range. Changing this value after installation will have# no effect. This should fall within --cluster-cidr.- name: CALICO_IPV4POOL_CIDRvalue: 10.48.0.0/163、执行calico.yaml文件 [rootk8s-master-28 ~]# kubectl apply -f calico.yaml 4、部署完成后等待一段时间重启服务器 说明以下操作无论是control-plane节点和worker节点均需要执行。 [rootk8s-master-28 ~]# reboot注意经测试部署完成后等待一段时间calico日志恢复正常然后需重启服务器否则会出现在pod中无法ping通百度。 十二、K8S集群测试 12.1、检查集群状态 说明以下操作只需要在control-plane节点执行。 kubectl get nodes -o wide kubectl get cs kubectl get pods -A -o wide kubectl get svc -A -o wide如下图所示 12.2、DNS测试 说明以下操作只需要在control-plane节点执行。 [rootk8s-master-28 ~]# kubectl run busybox --image busybox:1.34 --restartNever --rm -it busybox -- sh If you dont see a command prompt, try pressing enter./ # cat /etc/resolv.conf search default.svc.cluster.local svc.cluster.local cluster.local nameserver 10.96.0.10/ # nslookup default.svc.cluster.local Server: 10.96.0.10 Address: 10.96.0.10:53/ # ping www.baidu.com PING www.baidu.com (183.2.172.185): 56 data bytes 64 bytes from 183.2.172.185: seq0 ttl50 time4.510 ms 64 bytes from 183.2.172.185: seq1 ttl50 time4.346 ms注意如果部署完之后发现无法解析kubernetes.default和ping通百度网站可以尝试重启K8S集群节点所有节点主机。 12.3、功能性测试 说明以下操作只需要在control-plane节点执行。 1、部署一个简单的Nginx服务必须 vim nginx.yaml --- apiVersion: apps/v1 kind: Deployment metadata:name: nginxlabels:app: nginx spec:replicas: 2selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestimagePullPolicy: IfNotPresentports:- name: httpprotocol: TCPcontainerPort: 80resources:limits:cpu: 1.0memory: 512Mirequests:cpu: 0.5memory: 128Mi --- apiVersion: v1 kind: Service metadata:annotations:name: nginx-test-service spec:ports:- port: 80targetPort: 80nodePort: 32001protocol: TCPselector:app: nginxsessionAffinity: Nonetype: NodePort2、测试Nginx服务是否正常,如下所示 总结整理不易如果对你有帮助可否点赞关注一下 更多详细内容请参考企业级K8s集群运维实战
http://www.pierceye.com/news/188752/

相关文章:

  • 做DJ网站违法吗汕头seo网站推广
  • 上海网站建设网站宁波网站模板哪家性价比高
  • 珠海专业做网站制作做网站网站的代理算网站罪吗
  • 建设局网站简介通信建设网站
  • php做网站用什么开发工具大专软件技术工资一般多少
  • 网站建设服务承诺wordpress 博客园
  • seo综合查询站长工具关键词全网营销案例
  • 深圳专业做网站设计政务服务网站建设性建议
  • 做暧免费观看网站哪个网站可以给图片做链接
  • wordpress最好的主题东莞债务优化
  • 全国网站建设大赛网店网站设计
  • 学网站建设需要学多久wordpress火车头插件
  • wordpress 网站实例中国纪检监察报app下载
  • 网站链接dw怎么做营销推广方法
  • 觅知网 大而全的高质量素材站开发手机网站用什么好
  • 建设一个广告联盟的网站医院网站设计与实现
  • 公司网站备案必须是企业信息么网站搭建好有什么内容可以修改
  • 弄网站赚钱吗电影网站怎么做要多少钱
  • 做优化网站能以量取胜么好素材网站
  • wordpress主题网站江苏建设工程教育网
  • 网站制作 客户刁难做宠物网站赚钱吗
  • 网站突然不收录了如何形容一个网站做的好
  • 怎么建网站教程视频做网站跟推广哪家公司好
  • 怎么做网站报告四平网站公司
  • 飞扬动力网站建设支付网站建设要求
  • 达美网站建设廊坊seo扣费
  • 好享购物官方网站购物网页制作与网站开发从入门到精通
  • 坪山网站建设哪家便宜系部网站建设研究方案
  • 如何备份网站上海的招聘网站有哪些
  • 企业门户网站建设流程蝶恋花直播app下载安装