так у тебя приложение ходит на два порта - один для записи, другой для чтения. но на какой порт ходить определяет само приложение.
а так будет ходить на два ip - небольшая разница.
keepalived будет держать один ip там, где скрипт curl --silent $(hostname):8008\master 2>&1 | grep -c "\"role\": \"master\""
выйдет с кодом 0.
а второй ip он будет держать там, где curl --silent $(hostname):8008\master 2>&1 | grep -c "\"role\": \"replica\""
выйдет с кодом 0.