Solución:
Sí, esto es posible. Todo lo que necesita hacer es seguir el mismo consejo que recibió para una especificación de pod, pero en lugar de aplicarlo a un archivo YAML para pods, lo aplica a un archivo YAML para una implementación. Por ejemplo, si ya está ejecutando una implementación, puede editar la implementación actual emitiendo el siguiente comando.
$ kubectl editar implementación DEPLOYMENT_NAME
Esto le permitirá acceder al modo de edición de la implementación que se está ejecutando actualmente en formato YAML.
Debe agregar la sección ‘hostAliases’ en el campo de implementaciones ‘template: spec’ que le permite configurar la plantilla para el pod / contenedores. Entonces, para demostrar esto visualmente, aquí está el YAML para una implementación que estoy ejecutando en mi proyecto que puedo editar ejecutando el comando que mencioné anteriormente:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "6"
creationTimestamp: 2018-01-30T14:42:48Z
generation: 7
labels:
app: nginx-site-app
name: nginx-site
namespace: default
resourceVersion: "778922"
selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/nginx-site
uid: dc4535333d-05cb-11e8-b5c0-7878748e0178
spec:
replicas: 1
selector:
matchLabels:
app: nginx-site-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: nginx-site-app
spec:
containers:
- image: gcr.io/myprojectid/tuneup-nginx:latest
imagePullPolicy: Always
name: nginx-container
ports:
- containerPort: 80
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
status:
availableReplicas: 1
conditions:
- lastTransitionTime: 2018-01-30T14:55:28Z
lastUpdateTime: 2018-01-30T14:55:28Z
message: Deployment has minimum availability.
reason: MinimumReplicasAvailable
status: "True"
type: Available
observedGeneration: 7
readyReplicas: 1
replicas: 1
updatedReplicas: 1
Si quiero agregar ‘hostAliases’ a los pods dentro de esta implementación, necesito agregar esta información a la sección de especificaciones de la plantilla de pod como se muestra a continuación (tenga en cuenta que está en línea con ‘contenedores’ (*** importante, vale la pena señalar que hay dos secciones de ‘especificaciones’ dentro de mi archivo; no quiero agregarlas a la primera sección de especificaciones, sino a la sección de especificaciones de la plantilla que define la plantilla de pod):
spec:
containers:
- image: gcr.io/development-project-192309/tuneup-nginx:latest
imagePullPolicy: Always
name: nginx-container
ports:
- containerPort: 80
protocol: TCP
hostAliases:
- ip: 127.0.0.1
hostnames:
- myadded.examplehostname
hostAliases
es parte del PodSpec
, que es lo que también encontrará en Implementación en spec.template.spec
en su Implementación para que pueda usarlo fácilmente de la misma manera en su plantilla de especificaciones del Pod de Implementaciones que lo hace para el Pod en sí.