Pla*_*Tag 16 gcloud kubernetes kubectl
有没有办法告诉kubectl我的pod应该只部署在某个实例池上?
例如:
nodeSelector:
pool: poolname
Run Code Online (Sandbox Code Playgroud)
假设我已经创建了我的游泳池,例如:
gcloud container node-pools create poolname --cluster=cluster-1 --num-nodes=10 --machine-type=n1-highmem-32
Run Code Online (Sandbox Code Playgroud)
Pla*_*Tag 32
好的,我发现了一个解决方案:
gcloud为池名称创建标签.在我的清单中,我只是将它放在节点选择器下面.很容易.
这是我的manifest.yaml:我使用kubernetes部署ipyparallel
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: ipengine
spec:
replicas: 1
template:
metadata:
labels:
app: ipengine
spec:
containers:
- name: ipengine
image: <imageaddr.>
args:
- ipengine
- --ipython-dir=/tmp/config/
- --location=ipcontroller.default.svc.cluster.local
- --log-level=0
resources:
requests:
cpu: 1
#memory: 3Gi
nodeSelector:
#<labelname>:value
cloud.google.com/gke-nodepool: pool-highcpu32
Run Code Online (Sandbox Code Playgroud)
您也可以使用污点和tolerations。这样,您不必知道/硬编码特定的池名称,而只需知道它会有taint high-cpu
,例如。然后你让你的 pod容忍这种污点,他们可以在那个目标池上进行调度。
这允许您拥有多个池,或拥有 HA 池部署,您可以通过更改池上的污点从一个池迁移到另一个池。
然而,这里的问题是,虽然容忍允许 pod 在受污染的池上进行调度,但它不会阻止它们在其他地方进行调度。所以,你需要污点pool-a
用taint-a
,并pool-b
用taint-b
,并给出豆荚pool-a
和pool-b
正确的污点,让他们出海誓山盟的池。
归档时间: |
|
查看次数: |
4919 次 |
最近记录: |