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

What are the exact system requirements for Knative set up? Why the basic setup guide lead me to exhaustion of resource?

我一直在尝试在我的系统上设置 Knative 开发环境。但是每次我部署 Istio 时,飞行员都处于挂起状态,我发现它是因为资源耗尽。

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

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

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

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

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

我使用的是8核处理器和32GB内存的系统。

我是不是分配错了?据我了解,我们必须为单个节点 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 of memory and 4 CPUs

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