У меня есть кластер kubernetes, развернутый с помощью rke witch, который состоит из 3 узлов на 3 разных серверах, и на этих серверах есть 1 модуль, на котором запущен yatsukino / healthereum, что является личной модификацией ethereum / client-go: stable.Проблема в том, что я не понимаю, как добавить внешний ip для отправки запроса на модули, которые
Мои модули могут находиться в 3 состояниях:
- они синхронизируют эфириумblockchain
- они перезапустились из-за проблемы с синхронизацией
- они синхронизированы и все в порядке
Я не хочу, чтобы мой балансировщик нагрузки передавал запросы на 2В первых состояниях только третий пункт рассматривает мой модуль как обновленный.
Я искал в документе kubernetes, но (возможно, из-за неправильного понимания) я нахожу балансировку нагрузки только для модулей внутри уникального узла.
Вот мой файл развертывания:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: goerli
name: goerli-deploy
spec:
replicas: 3
selector:
matchLabels:
app: goerli
template:
metadata:
labels:
app: goerli
spec:
containers:
- image: yatsukino/healthereum
name: goerli-geth
args: ["--goerli", "--datadir", "/app", "--ipcpath", "/root/.ethereum/geth.ipc"]
env:
- name: LASTBLOCK
value: "0"
- name: FAILCOUNTER
value: "0"
ports:
- containerPort: 30303
name: geth
- containerPort: 8545
name: console
livenessProbe:
exec:
command:
- /bin/sh
- /app/health.sh
initialDelaySeconds: 20
periodSeconds: 60
volumeMounts:
- name: app
mountPath: /app
initContainers:
- name: healthcheck
image: ethereum/client-go:stable
command: ["/bin/sh", "-c", "wget -O /app/health.sh http://my-bash-script && chmod 544 /app/health.sh"]
volumeMounts:
- name: app
mountPath: "/app"
restartPolicy: Always
volumes:
- name: app
hostPath:
path: /app/