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 设置了限制。但没有任何效果。
我做错了什么?
我一直在尝试在我的系统上设置 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 设置了限制。但没有任何效果。
我做错了什么?