Knative 设置的确切系统要求是什么?为什么基本设置指南导致资源耗尽?



我一直在尝试在我的系统上设置Knative开发环境。但是每次我部署 Istio 时,试点都处于待处理状态,我发现这是因为资源耗尽。

我遵循了Knative文档中的基本设置指南,即serving/blob/master/DEVELOPMENT.md

现在,如果我根据它安装和部署 istio,资源就会耗尽,并且由于没有可用的节点,istio-pilot 仍处于挂起状态。

如果我尝试与安装指南上给出的相同,即 https://knative.dev/docs/install/installing-istio/

它工作正常,直到稍后当我重新启动集群时,api服务器停止,根据我通过搜索发现的,这也是由于缺乏资源。

那么Knative设置的确切要求是什么?

我使用了带有 8 核处理器和 32GB RAM 的系统。

我分配错了吗? 据我所知,我们必须为单节点 kubernetes 结构提供至少 8Gb 内存和 6 个 CPU(这就是我正在使用的)。那么 Istio 和 Knative 部署使用的资源呢?

我检查了节点中的资源和限制,并将限制设置为 0%。

我已经尝试在 minikube 配置中限制 CPU 和 RAM,然后在启动 minikube 时使用 --cpu 和 --memory,但输出保持不变。

Minikube 开始于 : minikube start

🔥  Creating virtualbox VM (CPUs=6, Memory=8192MB, Disk=20000MB) ...
🐳  Preparing Kubernetes v1.15.2 on Docker 18.09.8 ...
🚜  Pulling images ...

ISTIO 部署者:

kubectl apply -f ./third_party/istio-1.2-latest/istio-crds.yaml
while [[ $(kubectl get crd gateways.networking.istio.io -o 
jsonpath='{.status.conditions[?(@.type=="Established")].status}') != 
'True' ]]; do
echo "Waiting on Istio CRDs"; sleep 1
done
kubectl apply -f ./third_party/istio-1.2-latest/istio.yaml

飞行员保持待定状态,在描述吊舱后,我们得到:

Events:
Type     Reason            Age                  From               Message
----     ------            ----                 ----               -------
Warning  FailedScheduling  71s (x4 over 5m12s)  default-scheduler  0/1 nodes are available: 1 Insufficient cpu.

kubectl describe node nodename输出:

Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource           Requests          Limits
--------           --------          ------
cpu                5105m (85%)       13800m (229%)
memory             3749366272 (45%)  9497290Ki (117%)
ephemeral-storage  0 (0%)            0 (0%)
Events:
Type    Reason                   Age                From                  Message
----    ------                   ----               ----                  -------
Normal  Starting                 19m                kubelet, minikube     Starting kubelet.
Normal  NodeHasSufficientMemory  19m (x8 over 19m)  kubelet, minikube     Node minikube status is now: NodeHasSufficientMemory
Normal  NodeHasNoDiskPressure    19m (x8 over 19m)  kubelet, minikube     Node minikube status is now: NodeHasNoDiskPressure
Normal  NodeHasSufficientPID     19m (x7 over 19m)  kubelet, minikube     Node minikube status is now: NodeHasSufficientPID
Normal  NodeAllocatableEnforced  19m                kubelet, minikube     Updated Node Allocatable limit across pods
Normal  Starting                 18m                kube-proxy, minikube  Starting kube-proxy.

设置应该已经成功,因为我也确实使用RequestQuotas和LimitRange设置了限制。但没有任何效果。

我在这里做错了什么?

你肯定没有足够的资源。仅对于Minikube上的Istio,您需要:

16384 MB 内存和 4 个 CPU

再加上上面未包含的Knative要求,您会发现您提供的资源还不够。

相关内容

  • 没有找到相关文章

最新更新