Доступ к конечной точке контроллера загрузочной пружины в kubernetes pod

Вы можете сделать это с помощью памяти кучи (через вызов malloc () ), как и другие ответы, описанные здесь, но вы всегда должны управлять памятью (используйте функцию free () каждый раз, когда вы вызываете свою функцию). Вы также можете сделать это со статическим массивом:

char* returnArrayPointer() 
{
static char array[SIZE];

// do something in your array here

return array; 
}

Вы можете использовать его, не беспокоясь об управлении памятью.

int main() 
{
char* myArray = returnArrayPointer();
/* use your array here */
/* don't worry to free memory here */
}

В этом примере вы должны использовать статическое ключевое слово в определение массива, чтобы установить продолжительность жизни массива в приложении, поэтому он не будет уничтожен после оператора return. Разумеется, таким образом вы занимаете байты SIZE в своей памяти на весь срок службы приложения, поэтому его размер будет правильным!

0
задан James Z 15 January 2019 в 19:53
поделиться

1 ответ

Если вы просто пытаетесь выполнить быструю проверку, вы можете перенаправить порт на модуль - сделать kubectl get pods, чтобы найти имя модуля и затем kubectl port-forward <pod-name> 8080:8080 или любой другой порт, который вы используете, если нет 8080. Затем вы можете нажать свою конечную точку в браузере или с помощью curl на localhost. Например, если у вас работает привод пружинного чехла, вы можете перейти к http://localhost:8080/actuator/health.

Если вы пытаетесь получить доступ к Pod через Сервис, вы можете перенаправить порт в Сервис , но вы можете открыть Сервис снаружи. Вы захотите выбрать , как выставить его внешне , и настроить его. Тогда у вас будет внешний URL-адрес, который вы можете использовать, и вам не нужно будет обращаться к внутренним API-интерфейсам kube.

Также возможно создать URL для обращения к Сервису при прокси с kubectl proxy . Например, вы можете нажать на привод в приложении с пружинной загрузкой, используя http (не https) с api/v1/namespaces/<namespace>/services/<http:><service_name>:<port_name>/proxy/actuator/health. <port_name> будет в спецификации сервиса, и вы найдете его в выходных данных kubectl describe service.

0
ответ дан Ryan Dawson 15 January 2019 в 19:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: