我正在关注该教程(https://www.baeldung.com/spring-boot-minikube),我想在yaml文件(simple-crud-dpl.yaml)中创建Kubernetes部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: simple-crud
spec:
selector:
matchLabels:
app: simple-crud
replicas: 3
template:
metadata:
labels:
app: simple-crud
spec:
containers:
- name: simple-crud
image: simple-crud:latest
imagePullPolicy: Never
ports:
- containerPort: 8080
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时kubectl create -f simple-crud-dpl.yaml我得到了:
error: SchemaError(io.k8s.api.autoscaling.v2beta2.MetricTarget): invalid object doesn't have additional properties
我正在使用kubectl的最新版本:
kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:45:25Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)
我也在本地使用minikube,如教程中所述。一切正常,直到部署和服务。我做不到。
我有一个简单的 Spring Integration 配置
@Configuration
public class FTPIntegration {
@Bean
public MessageChannel outputIntegrationChannel(ErrorHandler errorHandler) {
return MessageChannels
.publishSubscribe()
.errorHandler(errorHandler)
.get();
}
@Bean
public IntegrationFlow ftpIntegration(ErrorHandler errorHandler, MessageHandler messageHandler) {
return IntegrationFlows
.from(outputIntegrationChannel(errorHandler))
.transform(Transformers.toJson())
.handle(messageHandler)
.get();
}
}
Run Code Online (Sandbox Code Playgroud)
我想准备一些使用 Mockito 来模拟、监视 MessageHandler 和 ErrorHandler 的集成测试。所以这就是我想在测试配置中替换它们的原因。
@Profile("test")
@EnableIntegration
@Configuration
@Import(value = FTPIntegration.class)
public class TestConf {
@Bean
@Primary
public ErrorHandler errorHandler() {
return mock(ErrorHandler.class);
}
@Bean
@Primary
public MessageHandler messageHandler() {
return mock(MessageHandler.class);
}
}
Run Code Online (Sandbox Code Playgroud)
并在我的测试课中使用它
@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestConf.class)
public …Run Code Online (Sandbox Code Playgroud)