Я играю с Spring Cloud Data Flow. Я успешно развернул SCDF в Kubernetes, используя соответствующую документацию . При регистрации начальных приложений на основе 1.5.x все работает должным образом, дальнейшая настройка начальных приложений во время развертывания определения потока не требуется.
При использовании начальных приложений 2.x при переходе на Spring Boot 2.0 вносятся некоторые изменения, которые необходимо учитывать, например, конечные точки привода изменены. Для справки, вот свойства, которые я предоставляю при развертывании потока:
app.*.management.endpoints.web.exposure.include=health,info,binders
deployer.*.cpu=2
deployer.*.memory=4096
deployer.http.count=2
deployer.*.kubernetes.livenessProbePath=/actuator/health
deployer.*.kubernetes.readinessProbePath=/actuator/info
Однако проверка готовности не удалась, так как конечная точка health
и info
теперь, по-видимому, защищены по умолчанию. Таким образом, стручки заканчиваются аварийными кругами, так как с точки зрения Kubernetes они никогда не готовы.
Я обошел ситуацию, следуя руководству по исправлению начальных приложений , на которое опирается мое определение потока (например, throughput
сток), например:
@SpringBootApplication
@Import({org.springframework.cloud.stream.app.throughput.sink.ThroughputSinkConfiguration.class})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Configuration
protected static class ThroughputSinkSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.requestMatchers(EndpointRequest.to("health", "info")).permitAll();
}
}
}
Есть ли способ указать этот тип конфигурации безопасности с помощью флагов или свойств? Разве такой WebSecurityConfigurerAdapter
не должен быть там по умолчанию, чтобы сделать конечные точки health
и info
доступными для Kubernetes?