首页
常用运维脚本汇总
电子书阅读
Search
1
安装docker时报错container-selinux >= 2:2.74
172 阅读
2
rsync命令(可替代rm删除巨量文件)
141 阅读
3
docker 镜像加速器配置,daemon.json文件详解
133 阅读
4
使用国内镜像地址拉取k8s安装需要的images
94 阅读
5
docker search命令提示i/o timeout的解决方案
93 阅读
运维
自动化运维
数据库
容器与k8s
环境
云计算
脚本
ai
登录
Search
标签搜索
命令
nginx
zabbix
Mingrui
累计撰写
92
篇文章
累计收到
8
条评论
首页
栏目
运维
自动化运维
数据库
容器与k8s
环境
云计算
脚本
ai
页面
常用运维脚本汇总
电子书阅读
搜索到
30
篇与
的结果
2025-04-08
二进制文件安装高可用k8s集群(七)集群优化
master主机安装containerd为方便主机与各node节点通信,安装containerd,kubelet与kube-proxy,以便于安装cni网络插件。具体安装方式详见 二进制文件安装高可用k8s集群(六)node部署服务 与 containerd安装与配置安装kubectl在master节点,主要通过kubectl命令行工具对k8s集群进行管理,因此需要将安装包中的kubectl可执行文件复制到/usr/bin目录下。cp /root/kubernetes/server/bin/kubelet /usr/bin/ 优化配置信息在集群的安装过程中,kubeconfig文件被存放在了/etc/kubernetes/目录下,这样就会导致每次使用kubectl命令时,需要搭配--kubeconfig参数指定kubeconfig的路径,比较麻烦。解决方案是把配置文件拷贝到k8s默认的配置目录下。mkdir -p $HOME/.kube cp -i /etc/kubernetes/kubeconfig $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config导入tab键方便使用tab键进行命令补全source <(kubectl completion bash|tee /etc/bash_completion.d/kubectl)安装网络插件calico插件的正常启用需要一些本地模块的支持,因此在安装calico插件前,需要先在本地安装一些calico可能会用到的模块#containerd需要的模块(安装containerd时已配置,此处仅展示) cat /etc/modules-load.d/containerd.conf overlay br_netfilter overlay br_netfilter nf_conntrack #配置calico需要用到的模块 vim /etc/modules-load.d/calico.conf #在文件中输入以下内容 ip_vs ip_vs_rr iptable_nat iptable_filter vxlan ipip tree /etc/modules-load.d/ /etc/modules-load.d/ ├── calico.conf └── containerd.conf #加载模块信息使生效 systemctl restart systemd-modules-load各模块作用说明ip_vs:IP 虚拟服务器(IP Virtual Server) 模块,用于实现传输层(L4)负载均衡,支持多种调度算法。ip_vs_rr:ip_vs 的调度算法之一,表示 轮询调度(Round Robin)。iptable_nat:支持 网络地址转换(NAT) 功能,用于实现 SNAT(源地址转换)和 DNAT(目标地址转换)。iptable_filter:支持 包过滤 功能,用于定义防火墙规则(如允许/拒绝特定流量)。vxlan:支持 VXLAN(Virtual Extensible LAN) 协议,用于在现有网络之上创建虚拟的 Overlay 网络,解决 VLAN ID 数量限制(支持 1600 万个虚拟网络)。ipip:支持 IP-in-IP 隧道协议,通过将原始 IP 数据包封装在另一个 IP 包中实现跨网络通信。模块在容器中的作用ip_vs/ip_vs_rr:Kubernetes Service 的负载均衡(IPVS 模式)。iptable_nat/iptable_filter:Service 流量转发和网络策略(iptables 模式)。vxlan/ipip:跨节点容器通信(Calico、Flannel 等插件的隧道封装)。calico模块依赖关系IPIP 模式:依赖 ipip 模块。VXLAN 模式:依赖 vxlan 模块。网络策略:依赖 iptable_filter 和 iptable_nat。kube-proxy IPVS 模式:依赖 ip_vs 和 ip_vs_rr安装calico插件calico插件官网: Calico Documentation calico插件安装教程: Calico Open Source 3.29 (latest) documentation calico官网提供了多种安装方式,简便起见这里选用Manifest(静态文件声明)模式进行安装。在这种模式下,calico根据k8s集群的规模提供了两个安装文件以供选择(以50个node节点规模为分界,)。本文选择选择小于50个节点规模的安装方式进行安装curl https://raw.githubusercontent.com/projectcalico/calico/v3.29.3/manifests/calico.yaml -O #因为集群指定的pod所使用的地址段为10.244.0.0/16,因此需要修改calico.yaml文件中pod地址段的默认值。 vim calico.yaml - name: CALICO_IPV4POOL_CIDR value: "10.244.0.0/16" #找到上面两行内容,大约在6291和6292行,去掉前面的#号和一个空格(yaml格式对缩进要求严格,缩进不对会报错),使得- name行的-号与上面一行的#号对齐,value行的value与name对齐。 kubectl apply -f calico.yaml #等待一段时间,待新生成的pod都是Running状态,即表示插件安装完成 kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE calico-kube-controllers-79949b87d-jn4mk 1/1 Running 0 3h11m calico-node-69plr 1/1 Running 0 3h11m calico-node-f6b5v 1/1 Running 0 3h11m calico-node-jsqt2 1/1 Running 0 3h11m calico-node-kwb46 1/1 Running 0 3h11m calico-node-m8ppg 1/1 Running 0 3h11m calico-node-z9rkj 1/1 Running 0 3h11m
2025年04月08日
53 阅读
1 评论
0 点赞
2025-04-03
二进制文件安装高可用k8s集群(六)node部署服务
{callout color="#f50000"}node上需要部署的服务有kubelet,kube-proxy,containerd三台node的hostname分别为node001,node002,node003IP地址分别为88.61,88.62,88.63{/callout}containerd的安装与配置详见文章 containerd安装与配置kubelet安装与配置{callout color="#f0ad4e"}在node001,002,003上操作{/callout}cd /root #下载客户端软件包并解压 wget https://dl.k8s.io/v1.29.0/kubernetes-node-linux-amd64.tar.gz #复制软件包到/usr/bin目录 tar xf kubernetes-node-linux-amd64.tar.gz cd kubernetes/node/bin/ cp kubelet kube-proxy /usr/bin/ mkdir -p /etc/kubernetes/pki{callout color="#f0ad4e"}在node001上操作{/callout}#修改配置文件 cd /etc/kubernetes/ vim /usr/lib/systemd/system/kubelet.service [Unit] Description=Kubernetes Kubelet Server Documentation=https://github.com/kubernetes/kubernetes After=containerd.service Requires=containerd.service [Service] EnvironmentFile=/etc/kubernetes/kubelet ExecStart=/usr/bin/kubelet $KUBELET_ARGS Restart=always [Install] WantedBy=multi-user.target vim /etc/kubernetes/kubelet KUBELET_ARGS="--kubeconfig=/etc/kubernetes/kubeconfig --config=/etc/kubernetes/kubelet.config \ --hostname-override=192.168.88.61" #--hostname-override=192.168.88.61 表明 kubelet 会使用 192.168.88.61 这个 IP 地址作为该节点在 Kubernetes 集群中的名称,而非操作系统默认的主机名。这样一来,在 Kubernetes 集群里,这个节点就会以 192.168.88.61 来进行标识和管理。 #注意事项 #要保证 --hostname-override 指定的名称在集群内是唯一的,不然会引发节点注册冲突。 #若使用 IP 地址作为主机名,要确保该 IP 地址在集群内是可访问的。 vim /etc/kubernetes/kubelet.config kind: KubeletConfiguration apiVersion: kubelet.config.k8s.io/v1beta1 address: 0.0.0.0 port: 10250 cgroupDriver: systemd clusterDNS: ["10.245.0.100"] clusterDomain: cluster.local authentication: anonymous: enabled: false webhook: enabled: true x509: clientCAFile: /etc/kubernetes/pki/ca.crtsystemctl start kubelet && systemctl enable kubelet#把各种配置文件拷贝到node002,003 scp /usr/lib/systemd/system/kubelet.service node002:/usr/lib/systemd/system/kubelet.service scp /usr/lib/systemd/system/kubelet.service node003:/usr/lib/systemd/system/kubelet.service scp /etc/kubernetes/kubelet node002:/etc/kubernetes/kubelet scp /etc/kubernetes/kubelet node003:/etc/kubernetes/kubelet scp /etc/kubernetes/kubelet.config node002:/etc/kubernetes/kubelet.config scp /etc/kubernetes/kubelet.config node003:/etc/kubernetes/kubelet.config kube-proxy安装与配置{callout color="#f0ad4e"}在node001,002,003上操作{/callout}#加载需要的内核模块,安装需要的软件包 for i in overlay br_netfilter nf_conntrack;do modprobe ${i} echo "${i}" >>/etc/modules-load.d/containerd.conf done cat >/etc/sysctl.d/99-kubernetes-cri.conf<<EOF net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF dnf -y install iptables ipvsadm ipset nfs-utils{callout color="#f0ad4e"}在node001上操作{/callout}#创建所需的配置文件 vim /usr/lib/systemd/system/kube-proxy.service [Unit] Description=Kubernetes Kube-Proxy Server Documentation=https://github.com/kubernetes/kubernetes After=network.target [Service] EnvironmentFile=/etc/kubernetes/proxy ExecStart=/usr/bin/kube-proxy $KUBE_PROXY_ARGS Restart=always [Install] WantedBy=multi-user.target vim /etc/kubernetes/proxy KUBE_PROXY_ARGS="--kubeconfig=/etc/kubernetes/kubeconfig \ --hostname-override=192.168.88.61 \ --proxy-mode=ipvs \ --ipvs-strict-arp=true \ --cluster-cidr=169.169.0.0/16"#把配置文件拷贝到node002,003 scp /usr/lib/systemd/system/kube-proxy.service node002:/usr/lib/systemd/system/kube-proxy.service scp /usr/lib/systemd/system/kube-proxy.service node003:/usr/lib/systemd/system/kube-proxy.service scp /etc/kubernetes/proxy node002:/etc/kubernetes/proxy scp /etc/kubernetes/proxy node003:/etc/kubernetes/proxy #启动服务 systemctl start kube-proxy && systemctl enable kube-proxy{callout color="#f0ad4e"}在node002,003上操作{/callout}#在/etc/kubernetes/目录中的kubelet和proxy文件中,有个hostname-override配置项,把它的值改为当前主机的IP地址 #node002::--hostname-override=192.168.88.62 \ sed -i "/override=/s/61/62/" /etc/kubernetes/proxy sed -i "/override=/s/61/62/" /etc/kubernetes/kubelet #node003:--hostname-override=192.168.88.63 \ sed -i "/override=/s/61/63/" /etc/kubernetes/proxy sed -i "/override=/s/61/63/" /etc/kubernetes/kubelet #开启服务 systemctl start kube-proxy && systemctl enable kube-proxy
2025年04月03日
36 阅读
1 评论
0 点赞
2025-04-01
二进制文件安装高可用k8s集群(五)HAProxy与keepalived部署
Keepalived 负责监控 HAProxy 服务器的状态,当主 HAProxy 服务器出现故障时,自动将备用 HAProxy 服务器切换为主服务器,保证负载均衡服务的连续性。而 HAProxy 则负责将客户端的请求合理地分配到后端的服务器集群上,实现负载均衡和故障转移的功能。这样可以构建一个高可用的负载均衡集群,为应用系统提供稳定、可靠的网络服务。
2025年04月01日
63 阅读
1 评论
0 点赞
2025-03-31
二进制文件安装高可用k8s集群(四)部署kube-scheduler服务
Kube-Scheduler主要负责将 Pod 调度到合适的节点上运行。
2025年03月31日
63 阅读
1 评论
0 点赞
2025-03-31
二进制文件安装高可用k8s集群(三)配置kubeconfig并安装kube-controller-manager
kube-controller-manager 是集群的核心控制组件之一(自动化控制中心),它由多个控制器组成,每个控制器负责监控集群中特定资源的状态,并根据集群的期望状态来调整实际状态,以确保集群的稳定性和可靠性。
2025年03月31日
51 阅读
1 评论
0 点赞
1
2
3
4
...
6