- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在添加了 --pod-network-cidr 的情况下部署了我的集群,并使用 calicoctl 创建了新的 ip 池以将 pod 更改为该范围。我遇到的问题正是我需要在 kubernetes 端更改以更改 pod cidr 范围的内容?我是在 API 服务器、 Controller 管理器和调度程序中进行更改,还是只需要更改特定部分。我尝试只更改 Controller 管理器,并且在更改 yaml 中的 --cluster-cidr 后,那些控制平面 pod 会进入崩溃循环。
Controller 管理器日志中的输出如下?
controllermanager.go:235] 启动 Controller 时出错:无法将 idx [0] 处的 cidr[192.168.0.0/24] 标记为已被节点占用::cidr 192.168.0.0/24 超出集群 cidr 10.0.0.0/16 的范围
最佳答案
更改集群 CIDR 并不是一项简单的任务。我设法重现了您的场景,并设法使用以下步骤对其进行了更改。
更换IP池
过程如下:
podCIDR
参数 ( Source ) --cluster-cidr
在 kube-controller-manager.yaml
在主节点上。 (归功于 OP) 192.168.0.0/16
至
10.0.0.0/8
.
$ kubectl apply -f https://docs.projectcalico.org/manifests/calicoctl.yaml
$ alias calicoctl="kubectl exec -i -n kube-system calicoctl -- /calicoctl "
calicoctl create -f -<<EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
name: new-pool
spec:
cidr: 10.0.0.0/8
ipipMode: Always
natOutgoing: true
EOF
calicoctl get ippool -o wide
:NAME CIDR NAT IPIPMODE DISABLED
default-ipv4-ippool 192.168.0.0/16 true Always false
new-pool 10.0.0.0/8 true Always false
calicoctl get ippool -o yaml > pool.yaml
pool.yaml
应该是这样的:apiVersion: projectcalico.org/v3
items:
- apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
name: default-ipv4-ippool
spec:
cidr: 192.168.0.0/16
ipipMode: Always
natOutgoing: true
- apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
name: new-pool
spec:
cidr: 10.0.0.0/8
ipipMode: Always
natOutgoing: true
Note: Some extra cluster-specific information has been redacted to improve readibility.
disabled: true
到 default-ipv4-ippool
IP池:apiVersion: projectcalico.org/v3
kind: IPPool
metadata:5
name: default-ipv4-ippool
spec:
cidr: 192.168.0.0/16
ipipMode: Always
natOutgoing: true
disabled: true
calicoctl apply -f pool.yaml
calicoctl get ippool -o wide
的输出中反射(reflect)的变化:NAME CIDR NAT IPIPMODE DISABLED
default-ipv4-ippool 192.168.0.0/16 true Always true
new-pool 10.0.0.0/8 true Always false
podCIDR
范围:podCIDR
具有新 IP 源范围的特定 k8s 节点资源上的参数,使用以下命令的理想方式:$ kubectl get no kubeadm-0 -o yaml > file.yaml; sed -i "s~192.168.0.0/24~10.0.0.0/16~" file.yaml; kubectl delete no kubeadm-0 && kubectl create -f file.yaml
$ kubectl get no kubeadm-1 -o yaml > file.yaml; sed -i "s~192.168.1.0/24~10.1.0.0/16~" file.yaml; kubectl delete no kubeadm-1 && kubectl create -f file.yaml
$ kubectl get no kubeadm-2 -o yaml > file.yaml; sed -i "s~192.168.2.0/24~10.2.0.0/16~" file.yaml; kubectl delete no kubeadm-2 && kubectl create -f file.yaml
kubectl -n kube-system edit cm kubeadm-config
--cluster-cidr
在位于主节点的/etc/kubernetes/manifests/kube-controller-manager.yaml 上。
$ sudo cat /etc/kubernetes/manifests/kube-controller-manager.yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
component: kube-controller-manager
tier: control-plane
name: kube-controller-manager
namespace: kube-system
spec:
containers:
- command:
- kube-controller-manager
- --allocate-node-cidrs=true
- --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf
- --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf
- --bind-address=127.0.0.1
- --client-ca-file=/etc/kubernetes/pki/ca.crt
- --cluster-cidr=10.0.0.0/8
- --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt
- --cluster-signing-key-file=/etc/kubernetes/pki/ca.key
- --controllers=*,bootstrapsigner,tokencleaner
- --kubeconfig=/etc/kubernetes/controller-manager.conf
- --leader-elect=true
- --node-cidr-mask-size=24
- --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
- --root-ca-file=/etc/kubernetes/pki/ca.crt
- --service-account-private-key-file=/etc/kubernetes/pki/sa.key
- --service-cluster-ip-range=10.96.0.0/12
- --use-service-account-credentials=true
kubectl delete pod -n kube-system kube-dns-6f4fd4bdf-8q7zp
calicoctl get wep --all-namespaces
检查新工作负载现在在新 IP 池中是否有地址。 :NAMESPACE WORKLOAD NODE NETWORKS INTERFACE
kube-system kube-dns-6f4fd4bdf-8q7zp vagrant 10.0.24.8/32 cali800a63073ed
calicoctl delete pool default-ipv4-ippool
--pod-network-cidr=192.168.0.0/24
初始化集群(其中
192.168.0.0/24
是您想要的范围)并且您需要在将 Calico list 应用到新集群之前对其进行调整。
$ curl https://docs.projectcalico.org/manifests/calico.yaml -O
192.168.0.0/24
,跳到下一步。如果您使用不同的 pod CIDR,请使用以下命令设置名为 POD_CIDR
的环境变量。包含您的 pod CIDR 并替换 192.168.0.0/24
在带有您的 pod CIDR 的 list 中。$ POD_CIDR="<your-pod-cidr>" \
sed -i -e "s?192.168.0.0/16?$POD_CIDR?g" calico.yaml
$ kubectl apply -f calico.yaml
关于kubernetes - 如何在使用 kubeadm 部署的 kubernetes 集群中使 pod CIDR 范围更大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60176343/
由于 PostgreSQL 人员选择的术语不当,这会让一些人感到困惑,但请耐心等待... 我们需要能够支持多个 PostgreSQL (PG) 集群,并将它们集群在多个服务器上,例如使用repmgr.
Hadoop会跑很多jobs,从Hbase读取数据,写数据到数据库。假设我有 100 个节点,那么有两种方法可以构建我的 Hadoop/Hbase集群: 100节点hadoop&hbase集群(1个b
在kafka中,我们能创建多种类型的集群,一般如下: 单节点——单个broker集群 单节点——多broker集群 多结点——多broker集群 kafka集群中主要有五个组件: Topic:主题主要
我想在两台机器上运行我的 MPI 程序,一台是 ubuntu 18.04,另一台是 Windows 10。是否可以使用不同的操作系统组成一个集群? (我正在使用 MPICH) 如果可能,怎么做?我在网
简介: 更新负载平衡集群中的节点的最佳实践是什么? 我们在 ha 代理负载均衡器后面使用 RabbitMQ 集群来支持我们的客户端轻松集群,as suggested in the RabbitMQ d
我正在尝试创建一个图表,我明确指定了许多节点的等级并指定了集群。以下代码生成我想要的图形类型: digraph { rankdir=LR subgraph cluster0 {
我正在尝试在 RABBITMQ 上进行集群。我添加了 2 个节点,但无法添加第 3 个节点。我已经聚集了 rabbit@node1 和 rabbit@node2。现在我正在尝试将 rabbit@nod
我在 MS Azure 的生产环境中启用了一个双集群多区域 HA。 我被要求重用同一个集群来使用微服务管理几个新项目。 这里的最佳做法是什么?我应该为每个应用程序创建一个集群吗?将不同集群中的每个项目
我正在尝试 flex 搜索,并且很难在具有3个 flex 搜索实例的单台计算机上创建集群。我对实例进行了以下更改: 在所有实例上更改了群集名称{cluster.name:es-stack} 在所有实例
我想创建一个redis集群,仅将特定的redis主机作为主服务器和从服务器。另外,我想自己指定哪个主机应该是哪个主机的副本。 目前,cluster-create command当在任何一个 Redis
我计划在具有负载平衡的集群中设置 Magento,那么是否可以让两个 Magento 安装指向同一个数据库? 如果可能的话 - 我应该如何配置这些服务器的基本 URL?服务器应该具有相同的名称吗? 最
我目前正在计划一个 Web 应用程序,我想计划它最终在集群上运行。 集群将由一个 php web 集群和一个 mysql 集群以及一个独立的存储单元组成(也许是一个集群,我真的不知道它是如何工作的:s
我已经安装了 elasticsearch 2.2.3 并在 2 个节点的集群中配置 节点 1 (elasticsearch.yml) cluster.name: my-cluster node.nam
我正在寻找现有的中间件解决方案,以解决服务集群/分布方面的问题,以实现负载平衡和可用性。我正在考虑基于消息传递系统(更具体地说,JMS)为此构建自己的基础设施。但是,如果可能的话,我宁愿使用已经存在的
在 Hadoop 集群中,数据是自动跨数据节点复制还是必须编程? 如果必须编程,那我该怎么做呢? 最佳答案 dfs.replication 的默认值为 3。这存在于您的 hdfs.site.xml 中
我已经设置了一个具有 1 个主节点和 2 个从节点的 redis 集群,哨兵在所有 3 个节点上运行。 在此设置之前,我的应用程序指向运行 Redis 实例的单个节点。 集群搭建完成后,我的应用应该指
所以,我正在设计一个具有多个 redis 实例的分布式系统来分解大量的流式写入,但发现很难清楚地了解事情是如何工作的。 从我读到的内容来看,正确配置的集群似乎会自动对“错误实例”上的请求进行分片和重定
我有一个关于redis集群架构的问题。 我正在设置一个 Redis 集群,并遵循基本建议:3 硕士3个奴隶 有什么方法可以在 Amazon LB、HAProxy、Nginx 等负载均衡器后面配置此集群
那么集群背后的想法是什么? 您有多台机器具有相同的数据库副本,您在其中传播读/写?这是正确的吗? 这个想法如何运作?当我进行选择查询时,集群会分析哪个服务器的读/写较少并将我的查询指向该服务器? 当您
目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kube
我是一名优秀的程序员,十分优秀!