AlmaLinux上 (Rocky)基于kubevip+cri-o+Calico用kubeadm搭建1.24版本多master高可用集群

K8S LoadBalancer kube-vip 部署 阅读详情

前言:本文是k8s搭建系列的第四篇,前三篇分别为
1.Centos7.9 + haproxy + keepalived + docker + flannel + kubeadm +1.23.6
https://blog.youkuaiyun.com/lic95/article/details/124903648?spm=1001.2014.3001.5501

2.AlmaLinux + haproxy + keepalived + containd + Calico + kubeadm +1.24
https://blog.youkuaiyun.com/lic95/article/details/125018220?spm=1001.2014.3001.5501

3.AlmaLinux + haproxy + keepalived + cri-o + Calico + kubeadm +1.24
https://blog.youkuaiyun.com/lic95/article/details/125025782?spm=1001.2014.3001.5501

基本涵盖了k8s搭建的所有情况,有其它需求请参考以上文档

一、部署节点说明

系统主机名IP地址节点软件
虚拟负载master192.168.3.30
AlmaLinux release 8.6master01192.168.3.31kube-vip、etcd、apiserver、scheduler、-controller-manager、calico
AlmaLinux release 8.6master02192.168.3.32kube-vip、etcd、apiserver、scheduler、-controller-manager、calico
AlmaLinux release 8.6master03192.168.3.33kube-vip、etcd、apiserver、scheduler、-controller-manager、calico
AlmaLinux release 8.6node01192.168.3.41kube-proxy、calico、kubelet
AlmaLinux release 8.6node02192.168.3.42kube-proxy、calico、kubelet
AlmaLinux release 8.6node03192.168.3.43kube-proxy、calico、kubelet
AlmaLinux release 8.6node04192.168.3.44kube-proxy、calico、kubelet
AlmaLinux release 8.6node05192.168.3.45kube-proxy、calico、kubelet

二、初始化各个节点为模板机
1.配置模板机基本配置、主机地址、时间同步、ipvsadm、内核参数

#安装工具软件
yum install vim net-tools wget lsof ipset telnet iproute-tc python3 -y

#关闭防火墙和selinux
systemctl stop firewalld && systemctl disable firewalld
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
setenforce 0

#关闭swap
swapoff -a
sed -i 's/^.*almalinux-swap/#&/g' /etc/fstab

#配置主机地址解析
if [ -z "`cat /etc/hosts | grep \`ip route ls | grep 192.168.3.0/24 | awk '{print $9}'\` | awk '{print $2}'`" ]; then
cat << EOF >> /etc/hosts
192.168.3.30 master
192.168.3.31 master01
192.168.3.32 master02
192.168.3.33 master03
192.168.3.40 cephadm
192.168.3.41 node01
192.168.3.42 node02
192.168.3.43 node03
192.168.3.44 node04
192.168.3.45 node05
EOF
fi

#根据IP地址获取主机名并写入hostname
echo `cat /etc/hosts | grep \`ip route ls | grep 192.168.3.0/24 | awk '{print $9}'\` | awk '{print $2}'` >/etc/hostname

#重新登录终端立即生效
hostnamectl set-hostname `cat /etc/hosts | grep \`ip route ls | grep 192.168.3.0/24 | awk '{print $9}'\` | awk '{print $2}'`

# 立即生效
sysctl --system

#配置集群时间同步
yum install -y chrony

#master节点:
if [ ! -z "`cat /etc/hosts | grep \`ip route ls | grep 192.168.3.0/24 | awk '{print $9}'\` | grep master `" ]; then
cat > /etc/chrony.conf << EOF
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
server ntp1.aliyun.com iburst
local stratum 10
allow 192.168.3.0/24
EOF
systemctl restart chronyd
systemctl enable chronyd
fi

#node节点
if [ ! -z "`cat /etc/hosts | grep \`ip route ls | grep 192.168.3.0/24 | awk '{print $9}'\` | grep node `" ]; then
cat > /etc/chrony.conf << EOF
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
server 192.168.3.31 iburst
server 192.168.3.32 iburst
server 192.168.3.33 iburst
EOF
systemctl restart chronyd
systemctl enable chronyd
fi
#查看同步状态:
chronyc sources -v

# 安装ipvsadm,开启 ipvs,不开启 ipvs 将会使用 iptables,但是效率低,所以官网推荐需要开通 ipvs 内核
yum install ipvsadm ipset sysstat conntrack libseccomp -y

cat > /etc/modules-load.d/ipvs.conf <<EOF 
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
ip_tables
ip_set
xt_set
ipt_set
ipt_rpfilter
ipt_REJECT
ipip
EOF
systemctl restart systemd-modules-load.service

# 激活 br_netfilter 模块
cat << EOF > /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
systemctl restart systemd-modules-load.service


# 内核参数设置:开启IP转发,允许iptables对bridge的数据进行处理
cat << EOF > /etc/sysctl.d/k8s.conf 
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

# 立即生效
sysctl --system

2.在所有节点安装配置cri-o

VERSION=1.24
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo \
    https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/CentOS_8/devel:kubic:libcontainers:stable.repo
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:${VERSION}.repo \
    https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:${VERSION}/CentOS_8/devel:kubic:libcontainers:stable:cri-o:${VERSION}.repo

yum install cri-o podman podman-docker -y
systemctl daemon-reload
systemctl start crio
systemctl enable crio

3.在所有节点安装安装 kubeadm 和相关工具

#由于官方源位于国外,这里配置centos7 kubernetes国内阿里源
cat << EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

#安装 kubeadm 工具
yum install -y kubelet-1.24.1 kubeadm-1.24.1 kubectl-1.24.1

#修改kubelet配置
cat <<EOF >/etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--container-runtime=remote --cgroup-driver=systemd --container-runtime-endpoint='unix:///var/run/crio/crio.sock' --runtime-request-timeout=5m"
EOF

systemctl daemon-reload 
systemctl enable kubelet
systemctl start kubelet

二、高可用,在master01、master02、master03部署master节点

1.生成kube-vip配置

#参考:https://github.com/kubernetes/kubeadm/blob/main/docs/ha-considerations.md#options-for-software-load-balancing

#在mast01上生成kube-vip配置,并修改网卡名、VIP地址及镜像地址和版本
cat > /etc/kubernetes/manifests/kube-vip.yaml <<EOF 
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  name: kube-vip
  namespace: kube-system
spec:
  containers:
  - args:
    - manager
    env:
    - name: vip_arp
      value: "true"
    - name: port
      value: "6443"
    - name: vip_interface
      value: ens160              #修改为实际网卡名称
    - name: vip_cidr
      value: "32"
    - name: cp_enable
      value: "true"
    - name: cp_namespace
      value: kube-system
    - name: vip_ddns
      value: "false"
    - name: vip_leaderelection
      value: "true"
    - name: vip_leaseduration
      value: "5"
    - name: vip_renewdeadline
      value: "3"
    - name: vip_retryperiod
      value: "1"
    - name: vip_address
      value: 192.168.3.30     #修改为VIP地址
    image: docker.io/plndr/kube-vip:v0.4.4  #修改为docker.io地址及最新稳定版本
    imagePullPolicy: Always
    name: kube-vip
    resources: {}
    securityContext:
      capabilities:
        add:
        - NET_ADMIN
        - NET_RAW
        - SYS_TIME
    volumeMounts:
    - mountPath: /etc/kubernetes/admin.conf
      name: kubeconfig
  hostAliases:
  - hostnames:
    - kubernetes
    ip: 127.0.0.1
  hostNetwork: true
  volumes:
  - hostPath:
      path: /etc/kubernetes/admin.conf
    name: kubeconfig
status: {}
EOF

2.修复cri-o问题,手动下载pause 3.6镜像并改名,修复下一步无法科学上网的问题,如果会科学上网,可以忽略这一步

podman pull registry.aliyuncs.com/google_containers/pause:3.6
podman tag registry.aliyuncs.com/google_containers/pause:3.6 registry.k8s.io/pause:3.6

3.初始化 kubernetes master01 节点

kubeadm init \
    --image-repository=registry.aliyuncs.com/google_containers  \
    --kubernetes-version v1.24.1 \
    --service-cidr=172.18.0.0/16      \
    --pod-network-cidr=10.244.0.0/16 \
    --control-plane-endpoint=192.168.3.30:6443 \
    --cri-socket=/var/run/crio/crio.sock \
    --upload-certs \
    --v=5

选项说明:
  --image-repository:选择用于拉取镜像的镜像仓库(默认为“k8s.gcr.io” )
  --kubernetes-version:选择特定的Kubernetes版本(默认为“stable-1”)
  --service-cidr:为服务的VIP指定使用的IP地址范围(默认为“10.96.0.0/12”)
  --pod-network-cidr:指定Pod网络的IP地址范围。如果设置,则将自动为每个节点分配CIDR。
  --cri-socket:指定cri为cri-o
 

3.输出内容,可以看到初始化成功的信息和一些提示

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You 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/

You can now join any number of the control-plane node running the following command on each as root:

  kubeadm join 192.168.3.30:6443 --token ke6jyo.7twag17c2kf9688x \
        --discovery-token-ca-cert-hash sha256:677ecf2a0bd6617daec5f292a962ce6de99275e29373b1cc158cef00329ec57d \
        --control-plane --certificate-key 72b3c0796cdf595bce9f060edfd3742830d3062f35c9f41166d91698bc29b260

Please note that the certificate-key gives access to cluster sensitive data, keep it secret!
As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use
"kubeadm init phase upload-certs --upload-certs" to reload certs afterward.

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.3.30:6443 --token ke6jyo.7twag17c2kf9688x \
        --discovery-token-ca-cert-hash sha256:677ecf2a0bd6617daec5f292a962ce6de99275e29373b1cc158cef00329ec57d 

4.根据上面提示内容执行如下操作

# 要开始使用集群,您需要以常规用户身份运行以下命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 或者,如果您是root用户,则可以运行允许命令
export KUBECONFIG=/etc/kubernetes/admin.conf

# 加入.bashrc,方便以后连接服务器自动执行
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >>/root/.bashrc

5.加入master02、master03节点到master

# 修复cri-o问题,手动下载pause 3.6镜像并改名,修复下一步无法科学上网的问题,如果会科学上网,可以忽略这一步
podman pull registry.aliyuncs.com/google_containers/pause:3.6
podman tag registry.aliyuncs.com/google_containers/pause:3.6 registry.k8s.io/pause:3.

# [root@master02 ~]# 
kubeadm join 192.168.3.30:6443 --token ke6jyo.7twag17c2kf9688x \
        --discovery-token-ca-cert-hash sha256:677ecf2a0bd6617daec5f292a962ce6de99275e29373b1cc158cef00329ec57d \
        --control-plane --certificate-key 72b3c0796cdf595bce9f060edfd3742830d3062f35c9f41166d91698bc29b260

# [root@master03 ~]# 
kubeadm join 192.168.3.30:6443 --token ke6jyo.7twag17c2kf9688x \
        --discovery-token-ca-cert-hash sha256:677ecf2a0bd6617daec5f292a962ce6de99275e29373b1cc158cef00329ec57d \
        --control-plane --certificate-key 72b3c0796cdf595bce9f060edfd3742830d3062f35c9f41166d91698bc29b260

# 在master02、master03上根据上面提示内容执行如下操作        
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >>/root/.bashrc

6.在master02和master03上静态部署kube-vip

[root@master01 ~]# scp /etc/kubernetes/manifests/kube-vip.yaml master02:/etc/kubernetes/manifests/
[root@master01 ~]# scp /etc/kubernetes/manifests/kube-vip.yaml master03:/etc/kubernetes/manifests/

#查看kube-vip启动情况
[root@master01 ~]# kubectl get pods -A | grep kube-vip
kube-system   kube-vip-master01                  1/1     Running   1 (4m53s ago)   6m55s
kube-system   kube-vip-master02                  1/1     Running   0               3m12s
kube-system   kube-vip-master03                  1/1     Running   0               11s
[root@master01 ~]# 

#三个节点均正常启动,高可用配置完毕

三、安装Calico网络插件

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

#安装完毕后新pod状态
[root@master01 ~]# kubectl get pods -A 
NAMESPACE     NAME                                       READY   STATUS    RESTARTS      AGE
kube-system   calico-kube-controllers-56cdb7c587-m6jnd   1/1     Running   0             17m
kube-system   calico-node-29r8k                          1/1     Running   0             17m
kube-system   calico-node-n66mx                          1/1     Running   1             17m
kube-system   calico-node-srxq6                          1/1     Running   0             17m
kube-system   coredns-74586cf9b6-gz6bb                   1/1     Running   0             26m
kube-system   coredns-74586cf9b6-r4v49                   1/1     Running   0             26m
kube-system   etcd-master01                              1/1     Running   0             26m
kube-system   etcd-master02                              1/1     Running   0             24m
kube-system   etcd-master03                              1/1     Running   1             20m
kube-system   kube-apiserver-master01                    1/1     Running   0             26m
kube-system   kube-apiserver-master02                    1/1     Running   0             24m
kube-system   kube-apiserver-master03                    1/1     Running   1             20m
kube-system   kube-controller-manager-master01           1/1     Running   1 (24m ago)   26m
kube-system   kube-controller-manager-master02           1/1     Running   0             24m
kube-system   kube-controller-manager-master03           1/1     Running   1             20m
kube-system   kube-proxy-45lz4                           1/1     Running   1             20m
kube-system   kube-proxy-77pzh                           1/1     Running   0             24m
kube-system   kube-proxy-zg89b                           1/1     Running   0             26m
kube-system   kube-scheduler-master01                    1/1     Running   1 (24m ago)   26m
kube-system   kube-scheduler-master02                    1/1     Running   0             24m
kube-system   kube-scheduler-master03                    1/1     Running   1             20m
kube-system   kube-vip-master01                          1/1     Running   1 (24m ago)   26m
kube-system   kube-vip-master02                          1/1     Running   0             22m
kube-system   kube-vip-master03                          1/1     Running   1             19m

四、添加 5个Node节点到集群

# 在master01上获取添加方式
[root@master01 ~]# kubeadm token create --print-join-command
kubeadm join 192.168.3.30:6443 --token ke6jyo.7twag17c2kf9688x \
        --discovery-token-ca-cert-hash sha256:677ecf2a0bd6617daec5f292a962ce6de99275e29373b1cc158cef00329ec57d 
[root@master01 ~]# 

# 在node01、node02、node03、node04、node05上分别执行添加命令

#在任一台master上验证
kubectl get nodes
kubectl get nodes -o wide
kubectl get pods --all-namespaces

#直到全部变为Ready
[root@master01 ~]# kubectl get nodes
NAME       STATUS   ROLES           AGE   VERSION
master01   Ready    control-plane   20m   v1.24.1
master02   Ready    control-plane   17m   v1.24.1
master03   Ready    control-plane   17m   v1.24.1
node01     Ready    <none>          71s   v1.24.1
node02     Ready    <none>          67s   v1.24.1
node03     Ready    <none>          64s   v1.24.1
node04     Ready    <none>          62s   v1.24.1
node05     Ready    <none>          59s   v1.24.1
[root@master01 ~]# 

五、部署dashboard
  Dashboard 是基于网页的 Kubernetes 用户界面。您可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群本身及其附属资源。您可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源(如 Deployment,Job,DaemonSet 等等)。例如,您可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。
   安装dashboard:(https://github.com/kubernetes/dashboard)

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml

#耐心等待状态变为Running
kubectl get pods -n kubernetes-dashboard


# 修改对外暴露端口
[root@master01 ~]# kubectl edit svc -n kubernetes-dashboard kubernetes-dashboard
将 type: ClusterIP 修改为 type: NodePort 即可


# 获取对外暴露端口
[root@master01 ~]# kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   172.18.175.186   <none>        8000/TCP        82s
kubernetes-dashboard        NodePort    172.18.218.143   <none>        443:30681/TCP   82s
[root@master01 ~]# 

使用浏览器访问:
https://192.168.3.30:30681/#/login

六、整个机器配置完毕

部署nginx服务验证集群
[root@master01 ~]# kubectl create deployment nginx --image=nginx
deployment.apps/nginx created
[root@master01 ~]#

[root@master01 ~]# kubectl expose deployment nginx --port=80 --type=NodePort
service/nginx exposed
[root@master01 ~]# 

[root@master01 ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   172.18.0.1      <none>        443/TCP        24m
nginx        NodePort    172.18.76.241   <none>        80:30111/TCP   23s
[root@master01 ~]# 

[root@master01 ~]#  curl http://192.168.3.30:30111
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
......
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@master01 ~]# 

Kubernetes kube-vip Kube-VIP 是一个轻量级、功能强大的 Kubernetes 虚拟 IP 管理工具,通过管理虚拟 IP 地址,提供了高可用性和负载均衡功能。它支持多种部署方式和网络协议,适用于多种场景,能够显著提高 Kubernetes 集群的可靠性和稳定性。 阅读详情

相关推荐

如何通过kube-vip实现K8S集群高可用及Service LB

与传统高可用+负载均衡机制相比较(如nginx/haproxy+keepalived) ,它属于云原生的高可用以及负载均衡机制,运行在群集之内,配置也更简单。当 kube-vip 启动后,将在所有匹配类型为 loadBalancer 的服务上启用一个名为 watcher 的监听器。此时可验证,群集master中的leader故障时(如关机),集群地址vip漂移到其他master节点,群集仍可用。注:如果有节点未加入群集,可修改如下参数,重新启动(以master03为例),

weixin_64274932的博客 1496

基于 kube-vip 部署 kubernetes 高可用集群

kube-vip 是一个开源项目,旨在简化为 Kubernetes 集群提供负载均衡服务。kube-vip 为 Kubernetes 集群提供虚拟 IP 和负载均衡器,用于控制平面(用于构建高可用集群)和 Kubernetes 服务类型,而无需依赖LoadBalancer任何外部硬件或软件。kube-vip 的最初目的是简化高可用(HA)Kubernetes 集群的构建,当时该集群涉及一些需要管理的组件和配置。

IT 7493

Kube-VIP:Kubernetes高可用与负载均衡实战指南

虚拟IP(VIP)是构建高可用系统的核心技术,通过地址漂移实现服务不间断访问。在Kubernetes生态中,kube-vip创新性地将VIP管理与负载均衡功能融合,基于ARP/BGP协议实现秒级故障转移,并利用Linux内核的IPVS子系统支撑高性能流量分发。该方案特别适用于控制平面高可用和服务暴露场景,相比传统Keepalived方案具有更轻量、更易集成云原生体系的优势。通过leader选举机制和IPVS负载均衡算法,kube-vip能在裸金属、边缘计算等环境中实现10Gbps级流量处理,是构建生产级K8

weixin_30899023的博客 236

kube-vip实践

kube-vip 是一款专为 Kubernetes 设计的轻量级高可用(HA)和负载均衡工具,通过虚拟 IP(VIP)机制实现控制平面和服务的高可用性。kube-vip 通过简化高可用集群的部署和管理,成为 Kubernetes 生态中重要的轻量级工具。:利用 ARP 协议在局域网内广播 VIP 的 MAC 地址,通过领导者选举(Leader Election)动态绑定 VIP 到健康节点。:通过 BGP 协议将 VIP 路由信息广播到网络设备(如路由器),实现跨子网的高可用。

sre救赎之路 2030

kube-vip:Kubernetes 控制平面虚拟 IP 和负载均衡器

kube-vip 高可用性和负载平衡 概述 用于控制平面和 Kubernetes 服务的 Kubernetes 虚拟 IP 和负载均衡器 kube-vip背后的想法是一个适用于所有环境的小型独立的高可用性选项,尤其是: 裸机 边缘(手臂/树莓派) 虚拟化 几乎在其他任何地方:) 注意:所有使用和架构的文档现在都可以在。 特征 Kube-Vip 最初是为 Kubernetes 控制平面提供 HA 解决方案而创建的,随着时间的推移,它已经发展为将相同的功能合并到 Kubernetes 服务类型。 VIP 地址可以是 IPv4 或 IPv6 带有 ARP(第 2 层)或 BGP(第 3 层)的控制平面 使用或控制平面 带有 kubeadm(静态 Pod)的控制平面 HA 带有 K3s/和其他(守护进程)的控制平面 HA 使用 ARP服务负载均衡器(第 2 层) 通过 BGP 使

LLM - windows下的Dify离线部署:从镜像打包到无网环境部署(亲测,包含插件部署)

LLM - windows下的Dify离线部署:从镜像打包到无网环境部署(亲测,包含插件部署)

ocean00008899的博客 1289

使用kube-vip的方式部署高可用的K8S集群

是一个轻量级、高性能的 Kubernetes主要用于在 Kubernetes 集群中实现或。👉 简单理解:kube-vip = 在 Kubernetes 里运行的 “VIP 浮动工具” + “内置的负载均衡器”。

ldl1116的博客 2245

ROS应用之如何配置RTOS满足机器人系统中的实时要求

实时操作系统(RTOS)基本概念实时操作系统(RTOS)是设计用于实时应用的操作系统,其主要目标是在确定的时间内完成任务。RTOS的任务调度算法和优先级控制机制能够确保高优先级任务按时完成。精确的传感器数据采集:传感器数据需要在规定时间内采集并传输给控制系统。快速响应外部事件:对于控制系统,需要确保指令在最短的时间内得到响应。任务的调度周期:任务的周期可以通过公式计算,其中 ftask 是任务的调度频率。优先级分配。

weixin_68094467的博客 1008

利用 kube-vip 实现 K3s 高可用部署

K3s 本身可以自动实现控制平面的高可用,但缺少一个具有高可用的访问控制平面入口;毕竟,用户不想依靠一个单一的节点来访问 Kubernetes 集群的 API。对此,用户可以借助 kube-vip 工具来实现 K3s 控制平面的高可用,从而确保 K3s 集群在面临故障时仍能提供稳定可靠的服务。本文将对此进行详细介绍。

Rancher 1571

Ubuntu 24.04 新增用户并禁用 root 账户操作指南

Ubuntu 24.04 新增用户并禁用 root 账户操作指南

深山技术宅的博客 1859

python提取图片中的文字写入excel文件,并打包为exe可执行文件

python提取图片中的文字写入excel文件,并打包为exe可执行文件

liqiang12689的博客 989

kube-vip使用说明

kube-vip是一个专为Kubernetes设计的轻量级开源工具,通过在集群节点间进行领导者选举来管理虚拟IP(VIP),为LoadBalancer类型服务提供高可用访问入口。它特别适用于裸金属、边缘或混合云等缺乏云供应商负载均衡器的环境。

zishen的专栏 571

Plant Simulation 快速建模与布局(3)——自动生成的对象 代码“安全”删除管理

《PlantSimulation快速布局建模课程》教授利用SimTalk语言实现高效建模的技术要点,包括批量对象创建、阵列布局、属性管理及自动连接功能。重点讲解对象安全删除机制,通过existsObject检查对象存在性后使用deleteObject方法删除,避免程序报错。课程提供完整代码示例,展示如何通过循环结构实现矩阵布局对象的创建与安全删除,确保代码健壮性,显著提升建模效率。

qq_31964455的博客 119

手把手教你使用 Kube-Vip 部署一个生产级别的高可用 Kubernetes 集群

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !kube-vip 可以在你的控制平面节点上提供一个 Kubernetes 原生的 HA 负载均衡,我们不需...

easylife206的专栏 6379

YOLO26涨点改进 | NeurIPS2025最佳论文!注意力改进篇| 引入Gated Attention门控注意力模块、太牛了!直接拯救了大模型的发展,助力目标检测、图像分割、图像分类有效涨点

本文提出了一种基于门控注意力机制(GatedAttention)的YOLO26模型改进方法。该方法在标准softmax注意力机制中引入头部特定的sigmoid门控,通过增强注意力机制使模型更聚焦于关键信息。实验表明,该模块能显著提升模型性能,特别是在复杂背景和密集目标场景中,同时减少无关区域关注并提高检测精度。门控机制引入的非线性和稀疏性不仅提升了推理效率,还改善了训练稳定性,使模型能采用更大学习率并增强扩展性。此外,该方法有效缓解了"注意力下沉"现象,增强了模型对长距离目标的感知能力。

Ai缝合怪、助力小伙伴高效发论文 656

FM20S用户手册-PL端案例开发手册

为便于演示,本次操作直接将led_flash案例中的 "led_flash_fm20s\constraints\constrs_1Ved_flash_fm20s.fdc"文件全部代码拷贝至编辑 界面,并点击保存按钮。引脚约束请查看案例工程"led_flash\project\led_flash_fm20s\constraints\constrs_1\"目 录下的led_flash_fm20sfdc。(4)弹出如下界面,在界面配置Select device forthe project"内容,如下图。

创龙,嵌入式一体化解决方案商 401

k8s 之 kube-vip

如题,vip 顾名思义 虚拟 IP,从应用场景上来讲,kube-vip 实现的最终结果就是我们常说的 Keepalived 高可用方案。 kube-vip 部署 一、参数配置 export VIP=192.168.1.213 export INTERFACE=lo export KVVERSION=v0.4.0 VIP是虚拟IP地址,和主机同一个网段,且未被占用 INTERFACE是主机的网络接口名称,例如 lo、ens192、eth0 等 KVVERSION是你需要部署的kube-vip的版本号,可

小单的博客专栏 5613

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

搭建高可用k8s集群

注意:标题中 没有标记()的都是全部机器执行主机名称操作系统Centos 7Centos 7Centos 7Centos 7Centos 7内核版本IPNginx1.22.01.22.01.22.0————keepalived主从从————虚拟IP————

菜鸟一枚,对云原生感兴趣 1743

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

kube-vip构建高可用k8s集群

部署目的 目前k8s发展太快,版本迭代和更新等,导致现在有很多冲突、不适用的解决方案,故搭建一套各个软件版本都较新的集群。 物理机器和网络准备 一台5600x+32G+有外网的电脑。 VMWARE虚拟机。 centos7最新的dvd版镜像。 高可用方案选择 以前做法:多个master服务器,然后使用keepalived监控master节点的可用性和故障转移,使用haproxy对master进行均衡负载。 新的解决方案:利用K8S原生的kube-vip实现master高可用。 建议使用kube-vip解决方案

weixin_42773635的博客 3388

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

kube-vip 完全指南:架构、核心机制与关键特性解析(上)

kube-vip 完全指南:架构、核心机制与关键特性解析(上)

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 849

收藏网址

It will be read and overwritten.      DO NOT EDIT! --> Bookmarks Bookmarks     书签栏             桌面支持中心         从 IE 中导入                     桌面支持中心             入职                    

u011569805的专栏 96万+

kubeadm+kube-vip搭建高可用k8s集群

通用 安装基本软件包 yum install bash‐comp* vim net‐tools wget ‐y 设置主机名,管理节点设置主机名为node1(node2的设置为node2) hostnamectl set-hostname node102 设置Host解析,编辑/etc/hosts文件,添加域名解析 [root@node1 ~]# vim /etc/hosts 10.168.1.101 node101 10.168.1.102 node102 10.168.1.103

cbmljs的博客 2236

超简单,使用Kube-Vip实现K8s高可用VIP详细教程

镜像,所以建议先将该镜像传到自己的私有镜像仓库上,然后修改 kube-vip-ds.yaml 中的镜像地址,再去 apply 该yaml文件会好一点。:执行yaml文件过程中,会在各个 master 节点上拉取。执行以上的其中一种方式时,会去拉取镜像,这个过程会很慢。3、测试 Vip 是否可用。

一位菜鸡的博客 2239

Kube-VIP 常见问题解决方案

**项目名称**:Kube-VIP **项目简介**:Kube-VIP 是一个为 Kubernetes 控制平面和 Kubernetes 服务提供高可用性和负载均衡的开源项目。它的设计理念是为各种环境提供一个小型、自包含的高可用选项,尤其适用于物理机、边缘计算(如 Raspberry PI)、虚拟化环境等。 **主要编程语言**:Go ## 二、新手常见问题及解决步骤 ### 问题1:如何...

gitblog_00536的博客 711

在CentOS7.3下yum安装Kubernetes1.4傻瓜教程

“在CentOS7.3下yum安装Kubernetes1.4傻瓜教程(原创)一、前言   Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件,目前centos yum源上最新版本为1.4。本文介绍如何基于Centos7.3构建Kubernetes平台,在正式介绍之前,大家有必要先理解Kubern

极客海哥 1万+
上一篇: AlmaLinux基于cri-o+Calico用kubeadm搭建1.24版本多master高可用Kubernetes集群
下一篇: AlmaLinux(rocky、centos)用kubeadm搭建1.24版本多master高可用Kubernetes集群
极客海哥
博客等级 码龄15年 223粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值