kubernetes 將容器指定到某些節點運行





假定部署的kubernetes集羣有5個節點,一個master節點和4個work節點,默認master節點不調度Pod,全部Pod均在4個work節點上調度Pod。簡單列表以下:node


hostname
role
node1
master
node2
work
node3 work
node4 work
node5 work



現須要部署2個容器應用A和B,其中A屬於業務應用(例如springboot web應用),B屬於組件(例如redis、zookeeper等),須要將A應用指定到node2和node3節點上,將應用B指定到node4和node5節點上,經過這種方式將組件和業務應用進行隔離,具體實現以下:linux


一、查看當前集羣節點標籤信息:nginx


# 查看當前集羣節點標籤信息kubectl get nodes --show-labels
# 能夠看到每一個節點默認初始標籤大體以下beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux


二、經過部署類型標籤將node二、node3節點標記爲業務應用,將node四、node5標記爲組件應用:
web


kubectl label nodes node2 deploy.type=biz_appkubectl label nodes node3 deploy.type=biz_appkubectl label nodes node4 deploy.type=assembly_appkubectl label nodes node5 deploy.type=assembly_app# 確認標籤是否生效kubectl get nodes --show-labels


三、而後Pod指定配置以下:redis


apiVersion: apps/v1kind: Podmetadata: name: nginx-pod namespace: my-namespace labels: app: nginx-podspec: nodeSelector: deploy.type: assembly_app restartPolicy: Always containers: - name: nginx image: "nginx" ports: - containerPort: 80



------------------- 正文結束 -------------------spring


長按掃碼關注微信公衆號編程


Java軟件編程之家api


本文分享自微信公衆號 - Java軟件編程之家(gh_b3a87885f8f5)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。springboot

相關文章
相關標籤/搜索