GKE Autoscaler 不会在 15 个节点之后扩展节点(以前的限制)
我已将Cluster 中的Min
和Max
值更改为 17-25
然而,节点数停留在 14-15 并且没有增加,现在我的集群已满,没有更多的 pod 可以容纳,所以每个新部署都应该触发节点扩展并将自己安排到新节点上,这不是发生。
当我创建部署时,它停留在Pending
状态并显示一条消息:
pod didn't trigger scale-up (it wouldn't fit if a new node is added): 1 max cluster cpu, memory limit reached
Run Code Online (Sandbox Code Playgroud)
最大集群 cpu,达到内存限制听起来最大节点数仍然是 14-15,这怎么可能?为什么它不会触发节点扩展?
ClusterAutoscaler 状态:
apiVersion: v1
data:
status: |+
Cluster-autoscaler status at 2020-03-10 10:35:39.899329642 +0000 UTC:
Cluster-wide:
Health: Healthy (ready=14 unready=0 notStarted=0 longNotStarted=0 registered=14 longUnregistered=0)
LastProbeTime: 2020-03-10 10:35:39.608193389 +0000 UTC m=+6920.650397445
LastTransitionTime: 2020-03-10 09:49:11.965623459 +0000 UTC m=+4133.007827509
ScaleUp: NoActivity …
Run Code Online (Sandbox Code Playgroud) 当试图拟合 Keras 模型时,该模型用tensorflow.keras
API编写并带有tf.Dataset
诱导迭代器,该模型抱怨steps_per_epoch
参数,即使我已将此参数设置为具体值。
下面是我的模型类
import tensorflow as tf
import numpy as np
from typing import Union, List
from tensorflow.keras.callbacks import ModelCheckpoint, EarlyStopping
from tensorflow.keras import layers
from tftools import TFTools
class TestServe():
def __init__(self, tfrecords: Union[List[tf.train.Example], tf.train.Example], batch_size: int = 10, input_shape: tuple = (64, 23)) -> None:
self.tfrecords = tfrecords
self.batch_size = batch_size
self.input_shape = input_shape
def get_model(self):
ins = layers.Input(shape=(64, 23))
l = layers.Reshape((*self.input_shape, 1))(ins)
l = layers.Conv2D(8, (30, 23), padding='same', activation='relu')(l) …
Run Code Online (Sandbox Code Playgroud) 我有两种型号,机器和设备
class Machine(models.Model):
pass
class Device(models.Model):
machine = models.ForeignKey(Machine, related_name='devices')
Run Code Online (Sandbox Code Playgroud)
现在在Django Admin中,在Machine change页面中,我希望能够添加1-N Device引用,它很好用,并且具有ManyToMany关系,这是它在admin中的外观(期望)
我正在尝试forms.ModelMultipleChoiceField
用于1:N选择。我已经想出了保存这种关系的方法,但是提供初始值似乎并不起作用。
我如何尝试提供初始值:
class MachineForm(forms.ModelForm):
class Meta:
model = Machine
fields = '__all__'
devices = forms.ModelMultipleChoiceField(queryset=Device.objects.filter(machine=None).all(), required=False)
def __init__(self, *args, **kwargs):
super(MachineForm, self).__init__(*args, **kwargs)
if self.instance:
self.fields['devices'].initial = self.instance.devices.all()
def save(self, *args, **kwargs):
instance = super(MachineForm, self).save(commit=False)
self.fields['devices'].initial.update(machine=None)
instance.save()
self.cleaned_data['devices'].update(machine=instance)
return instance
Run Code Online (Sandbox Code Playgroud)
在调试器中,我可以清楚地知道初始查询集是非空的:
initial <QuerySet [<Device: 10126>, <Device: 10127>]>
但是django admin中的字段仍然为空。
有人知道为什么吗?
编辑:
我已经试过了
self.fields['devices'].initial = self.instance.devices.all().values_list('id', flat=True)
没有运气。
编辑2:
调试日志来自 self.fields['devices'].__dict__
[api-857c7fc84d-rh42v api-app] empty_label …
Run Code Online (Sandbox Code Playgroud)