标签: calico

Kubernetes 服务未在 Pod 之间均匀分配流量

我正在使用 Kubernetes v1.20.10 裸机安装。它有1个主节点和3个工作节点。该应用程序只是提供 HTTP 请求。

我正在基于 (HPA) Horizo​​ntal Pod Autoscaler 扩展部署,我注意到负载在 Pod 之间分布不均匀。只有第一个 Pod 获得了 95% 的负载,而另一个 Pod 的负载非常低。

我尝试了这里提到的答案,但没有成功:Kubernetes service does not distribution requests Between pods

calico kubernetes kubernetes-ingress kubernetes-service hpa

12
推荐指数
1
解决办法
4316
查看次数

kubernetes networkpolicy namespaceSelector 当命名空间没有标签时选择

我正在尝试添加 calico 网络策略以允许我的命名空间与 kube-system 命名空间通信。但在我的 k8s 集群 kube-system 中没有附加标签,因此我无法在其中选择 pod。以下是我尝试过的但它不起作用。

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-kube-system
  namespace: advanced-policy-demo
spec:
  podSelector: {}       # select all pods in current namespace.
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels: {}
      podSelector:
        matchLabels:
          tier: control-plane
  egress:
  - to:
    - namespaceSelector:
        matchLabels: {}
      podSelector:
        matchLabels:
          tier: control-plane
Run Code Online (Sandbox Code Playgroud)
$ kubectl describe ns kube-system
Name:         kube-system
Labels:       <none>
Annotations:  <none>
Status:       Active

No resource quota.

No resource limits.
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以仅通过名称来选择名称空间?

calico kubernetes kubernetes-networkpolicy

8
推荐指数
1
解决办法
3041
查看次数

启用网络策略后 Kubernetes 运行状况检查失败

仅启用出口网络策略时,Pod 重新启动后所有就绪性和活动性检查都会失败。

这是我在描述 pod 时看到的:

警告不健康 115s (x7 超过 2m55s) kubelet,就绪探测失败:获取http://10.202.158.105:80/health/ready : dial tcp 10.202.158.105:80: connect: 连接被拒绝 警告不健康 115s (x7 超过 2m55s) kubelet ,活性探测失败:获取http://10.202.158.105:80/health/live:拨打tcp 10.202.158.105:80:连接:连接被拒绝

如果我禁用这些策略,运行状况检查将立即恢复运行。如果 Pod 在应用网络策略之前已经正常运行,它将继续工作。

我还尝试使用此策略将每个名称空间列入白名单:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-ingress-all
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector: {}
    ports:
    - protocol: TCP
      port: 80
    - protocol: TCP
      port: 8080
Run Code Online (Sandbox Code Playgroud)

我很难找到有关如何解决此问题的任何指导。是否需要启用出口策略才能允许 kubelet 监控 Pod 运行状况检查?

该 Pod 在 Azure Kubernetes 服务内部运行并使用 Calico 网络。

firewall calico kubernetes kubelet kubernetes-networkpolicy

8
推荐指数
1
解决办法
3818
查看次数

如何从我的 kubernetes 集群中删除/移除 calico cni

我已经在数字海洋中安装了我的 kubernetes 集群(1master,3worker)。
问题是我在这个集群中同时安装了 flannel 和 calico。
我想从我的集群中完全删除 calico 还是可以拥有多个 CNI?

calico digital-ocean kubernetes flannel

6
推荐指数
1
解决办法
2万
查看次数

无法通过 kubectl port-forward 连接到 mongodb 复制集

我正在尝试通过 kubectl 访问 mongodb 复制集,所以我不会将其公开到互联网,我无法使用 OpenVPN,因为 Calico 阻止了它。

所以我正在使用这个脚本:

export MONGO_POD_NAME1=$(kubectl get pods --namespace develop -l "app=mongodb-replicaset" -o jsonpath="{.items[0].metadata.name}")
export MONGO_POD_NAME2=$(kubectl get pods --namespace develop -l "app=mongodb-replicaset" -o jsonpath="{.items[1].metadata.name}")
export MONGO_POD_NAME3=$(kubectl get pods --namespace develop -l "app=mongodb-replicaset" -o jsonpath="{.items[2].metadata.name}")
echo $MONGO_POD_NAME1, $MONGO_POD_NAME2, $MONGO_POD_NAME3
kubectl port-forward --namespace develop $MONGO_POD_NAME1 27020:27017 & p3=$!
kubectl port-forward --namespace develop $MONGO_POD_NAME2 27021:27017 & p4=$!
kubectl port-forward --namespace develop $MONGO_POD_NAME3 27022:27017 & p5=$!

wait -n
[ "$?" -gt 1 ] || kill "$p3" "$p4" "$p5"
wait …
Run Code Online (Sandbox Code Playgroud)

mongodb calico kubernetes google-kubernetes-engine kubectl

6
推荐指数
1
解决办法
3770
查看次数

Calico 节点状态返回 Calico 进程未运行

我在使用 Kubernetes 集群的 BGP 对等点时遇到问题。我的集群由 3 个主节点和 2 个工作节点构建,在 Unbuntu 18.04 上运行。etcd 是外部配置的,但在 2 个主节点上运行。最初使用 pod cidr 172.16.0.0/16 进行初始化,但最近更改为 192.168.220.0/24。我已经安装了 Calico 的最新版本。当我配置每个服务 1 个的副本集时,每个服务似乎都工作正常。当我运行多个 Pod 时,我配置的服务有时会出现连接问题,有时则不会。

经过一番研究,我发现问题可能是 Calico 配置错误。当我运行 calicoctl node status 时,我看到了这一点。

在此输入图像描述

在 calico 方面,我发现它与 BGP 对等互连有关,但我不知道出了什么问题。这些节点具有 IP 连接。到端口 TCP 179 的 telnet 会话也成功。接下来我可以检查什么?任何帮助,将不胜感激。

calico kubernetes

6
推荐指数
0
解决办法
2694
查看次数

Calico IP 混乱

我对 Calico IP 有点困惑:

如果我使用以下命令将 calico 添加到 kubernetes 集群

kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
Run Code Online (Sandbox Code Playgroud)

CALICO_IPV4POOL_CIDR 为 192.168.0.0/16,因此 IP 范围为 192.168.0.0 至 192.168.255.255

现在我已经使用以下命令启动了集群:

kubeadm init --pod-network-cidr=20.96.0.0/12 --apiserver-advertise-address=192.168.56.30
Run Code Online (Sandbox Code Playgroud)

因此,现在 Pod 的 IP 地址(使用 Pod 网络 CIDR)将在:20.96.0.0 到 20.111.255.255 之间

这两个不同的IP是什么?我的 Pod 正在获取 IP 地址 20.96.205.192 等。

calico kubernetes

6
推荐指数
1
解决办法
7174
查看次数

Kubernetes覆盖网络比较

我想知道是否有人可以简要概述一下所有不同的Kubernetes网络覆盖之间的差异/优势.入门指南(http://kubernetes.io/docs/getting-started-guides/scratch/#network)提到以下内容:

  • 绒布
  • 印花布
  • 编织
  • 罗马
  • 打开vSwitch(OVS)

但并没有真正解释它们之间的差异是什么,或者每个人的优缺点是什么.我想知道是否有人可以让我知道我应该使用哪种解决方案用于裸机CentOS 7集群.

谢谢!

calico openvswitch kubernetes weave flannel

5
推荐指数
1
解决办法
3891
查看次数

Kubernetes calico 节点 CrashLoopBackOff

虽然有一些像我一样的问题,但修复对我不起作用。我使用 kubernetes v1.9.3 二进制文件并使用 flannel 和 calico 来设置 kubernetes 集群。应用 calico yaml 文件后,它会卡在创建第二个 pod 上。我究竟做错了什么?日志并不清楚到底出了什么问题

kubectl get pods --all-namespaces

root@kube-master01:/home/john/cookem/kubeadm-ha# kubectl logs calico-node-
n87l7 --namespace=kube-system
Error from server (BadRequest): a container name must be specified for pod 
calico-node-n87l7, choose one of: [calico-node install-cni]
root@kube-master01:/home/john/cookem/kubeadm-ha# kubectl logs calico-node-
n87l7 --namespace=kube-system install-cni
Installing any TLS assets from /calico-secrets
cp: can't stat '/calico-secrets/*': No such file or directory
Run Code Online (Sandbox Code Playgroud)

kubectl describe pod calico-node-n87l7回报

Name:         calico-node-n87l7
Namespace:    kube-system
Node:         kube-master01/10.100.102.62
Start Time:   Thu, 22 …
Run Code Online (Sandbox Code Playgroud)

calico kubernetes kubectl kubeadm

5
推荐指数
1
解决办法
2万
查看次数

calico-kube-controllers 和 calico-node 未准备好 (CrashLoopBackOff)

我使用 kubespray 部署了一个全新的 k8s 集群,一切正常,但所有与 calico 相关的 pod 尚未准备好。经过几个小时的调试,我找不到 calico pod 崩溃的原因。我什至禁用/停止了整个防火墙服务,但没有任何改变。

另一件重要的事情是calicoctl node status输出不稳定,每次调用都会显示不同的内容:

Calico process is not running.
Run Code Online (Sandbox Code Playgroud)
Calico process is running.

None of the BGP backend processes (BIRD or GoBGP) are running.
Run Code Online (Sandbox Code Playgroud)
Calico process is running.

IPv4 BGP status
+----------------+-------------------+-------+----------+---------+
|  PEER ADDRESS  |     PEER TYPE     | STATE |  SINCE   |  INFO   |
+----------------+-------------------+-------+----------+---------+
| 192.168.231.42 | node-to-node mesh | start | 06:23:41 | Passive |
+----------------+-------------------+-------+----------+---------+

IPv6 BGP status
No IPv6 peers found.
Run Code Online (Sandbox Code Playgroud)

另一个经常出现的日志是以下消息: …

calico kubernetes kubespray

5
推荐指数
1
解决办法
1万
查看次数