Я работаю в кластере Kubernetes, где я хочу запустить один контейнер, который выполняет задания cron. В том же кластере я развертываю 3 других контейнера, в которых выполняется код приложения. Какие изменения необходимы для добавления контейнера другого типа в тот же кластер?
service.yaml:
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: supplier-service
app.kubernetes.io/instance: supplier-service-instance
app.kubernetes.io/version: "1.0.0"
app.kubernetes.io/component: backend
app.kubernetes.io/managed-by: kubectl
annotations:
# Note that the backend talks over HTTP.
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
# TODO: Fill in with the ARN of your certificate.
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: OUR_ARN
# Only run SSL on the port named "https" below.
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
service.beta.kubernetes.io/do-loadbalancer-redirect-http-to-https: "true"
service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443"
name: supplier-service
spec:
selector:
app: supplier-service
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 80
- name: https
port: 443
targetPort: 443
deploy.yaml - этот файл Yaml запускает код приложения
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: supplier-service
app.kubernetes.io/instance: supplier-service-instance
app.kubernetes.io/version: '1.0.0'
app.kubernetes.io/managed-by: kubectl
name: supplier-service-deployment
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 1
selector:
matchLabels:
app: supplier-service
template:
metadata:
labels:
app: supplier-service
spec:
containers:
- image: IMAGE-FROM-ECR/supplier-service:latest
imagePullPolicy: Always
name: supplier-service
ports:
- containerPort: 80
- containerPort: 443
- containerPort: 6379
У меня есть новый готовый DockerFile, который устанавливает задания cron внутри контейнера.
deploy-cron.yaml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: supplier-service
app.kubernetes.io/instance: supplier-service-instance
app.kubernetes.io/version: '1.0.0'
app.kubernetes.io/managed-by: kubectl
name: supplier-service-deployment
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 1
selector:
matchLabels:
app: supplier-service
template:
metadata:
labels:
app: supplier-service
spec:
containers:
- image: AWS-ECR/supplier-service-cron:latest
imagePullPolicy: Always
name: supplier-service
ports:
- containerPort: 80
- containerPort: 443
- containerPort: 6379
Это правильный способ запуска отдельного контейнера внутри существующего кластера, или требуются какие-либо другие изменения? Спасибо. : -)