I have these pods:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/zabbix-server-0 1/1 Running 0 67m 10.244.1.12 i-0155b0a4f7376aea5 <none> <none>
pod/zabbix-server-1 1/1 Running 0 73m 10.244.0.13 i-0af3ff4d3cc1a4a4a <none> <none>
pod/zabbix-server-2 1/1 Running 0 73m 10.244.1.11 i-0155b0a4f7376aea5 <none> <none>
Now I'm try to deploy zabbix-agent
using this code:
apiVersion: apps/v1
kind: StatefulSet
metadata:
namespace: mon-zabbix
name: zabbix-agent
spec:
serviceName: zabbix-agent
replicas: 3
selector:
matchLabels:
app: zabbix-agent
template:
metadata:
labels:
app: zabbix-agent
spec:
containers:
- name: zabbix-agent
image: zabbix/zabbix-agent:ubuntu-6.0-latest
ports:
- containerPort: 10050
env:
- name: ZBX_SERVER_HOST
value: zabbix-server-N <- how can refer a zabbix-server-0 for zabbix-agent-0
- name: ZBX_HOSTNAME
value: zabbix-server-N <- how can refer a zabbix-server-0 for zabbix-agent-0
volumeMounts:
- name: pvc
mountPath: /etc/zabbix/zabbix_agentd.d
securityContext:
allowPrivilegeEscalation: false
volumeClaimTemplates:
- metadata:
name: pvc
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 100Mi
Is it possible to set the variables ZBX_SERVER_HOST and ZBX_HOSTNAME with zabbix-server-0 for zabbix-agent-0, zabbix-server-1 for zabbix-agent-1, etc...?
You can do that with apps.kubernetes.io/pod-index
label and variable interpolation.
env:
- name: POD_NUMBER
valueFrom:
fieldRef:
fieldPath: metadata.labels['apps.kubernetes.io/pod-index']
- name: ZBX_SERVER_HOST
value: zabbix-server-$(POD_NUMBER)