[kubernetes]-k8s使有依赖关系的pod调度在一台
2个pod需要调度在一台机器上实现类似于捆绑的效果
·
导语:因为在集群中有2个pod需要调度在一台机器上。需要获取机器的uuid信息做校验。
根据其他deployment的label调度
在deployment中添加如下
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- store
topologyKey: "kubernetes.io/hostname"
完整deployment如下
# Source: base-deepwise-k8s/templates/platform-dep.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: platform-dp
namespace: helm-deepwise
spec:
strategy:
type: Recreate
replicas: 1
selector:
matchLabels:
app: platform
env: helm-deepwise
template:
metadata:
labels:
app: platform
env: helm-deepwise
spec:
serviceAccountName: helm-deepwise-operator
affinity:
podAffinity:
#podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- aiserverconfig
# - key: env
# operator: In
# values:
# - helm-deepwise
topologyKey: "kubernetes.io/hostname"
#topologyKey: "kubernetes.io/hostname"
# hostNetwork: true
# 使用主机网络
# dnsPolicy: ClusterFirstWithHostNet
initContainers:
- command: ['sh', '-c', "until nslookup mysql-headless.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]
image: busybox:1.28
name: wait-for-mysql
- command: ['sh', '-c', "until nslookup zk-headless.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]
image: busybox:1.28
name: wait-for-zk
- command: ['sh', '-c', "until nslookup aiserverconfig-headless.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]
image: busybox:1.28
name: wait-for-aiserverconfig
- command: ['sh', '-c', "until nslookup aiserver-headless.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]
image: busybox:1.28
name: wait-for-aiserver
restartPolicy: Always
containers:
- name: platform
image: xxx
#image: xxxxx
# command: ["sh","-c","rm -rf /etc/sign.conf && cp /srv/sign/sign.conf /etc/sign.conf && tail -f /dev/null"]
command: ["sh","-c","rm -rf /etc/sign.conf && cp /srv/sign/sign.conf /etc/sign.conf && sh /root/platform/startup.sh "]
# command:
# - bash
# - -c
# - /root/platform/startup.sh
#image: platform:cta_ge_930_2021122_013
# livenessProbe:
# httpGet:
# path: /echo
# port: 11380
# initialDelaySeconds: 40
# periodSeconds: 30
# failureThreshold: 2
# timeoutSeconds: 10
env:
- name: NVIDIA_DRIVER_CAPABILITIES
value: all
volumeMounts:
- name: sign-pvc
mountPath: /srv/sign
- name: dicom-pvc
mountPath: /data1/inputdata
- name: log-pvc
mountPath: /root/platform/log
- name: log-jvm-pvc
mountPath: /data1/jvm
volumes:
- name: sign-pvc
persistentVolumeClaim:
claimName: sign-pv-claim
- name: log-pvc
persistentVolumeClaim:
claimName: log-pv-claim
- name: dicom-pvc
persistentVolumeClaim:
claimName: dicom-pv-claim
- name: log-jvm-pvc
persistentVolumeClaim:
claimName: log-jvm-pv-claim
# imagePullSecrets:
# - name: aliyun-sc-default
根据node名称调度
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: myweb
spec:
replicas: 2
template:
metadata:
labels:
app: myweb
spec:
nodeSelector:
type: backEndNode1
containers:
- name: myweb
image: harbor/tomcat:8.5-jre8
ports:
- containerPort: 80
https://blog.csdn.net/u013201439/article/details/79436465
更多推荐
已为社区贡献84条内容
所有评论(0)