为什么 Kubernetes REST API 势在必行?
Why Kubernetes REST API is imperative?
编辑:如Jonas'响应中所述,Kubernetes REST API实际上可以被视为声明式而非命令式。
Kubernetes 以其声明式模型而闻名。
控制器正在监视 ETCD 中包含所需状态(声明性)的对象。它将它与当前状态进行比较并生成命令式命令 imperative Kubernetes API.
哪些原因导致 Kubernetes 项目不公开声明性 HTTP API?
因此让 controller/operator 进行对帐。
声明式 REST API 的示例,我发现 F5 AS3. And I guess their Kubernetes operator 构建在这个声明式 API 之上非常简单。
Kubernetes API既可以声明式使用,也可以命令式[=42=]使用。对于快速开发,命令式工作流可能效果更好,而对于可追溯性和生产工作负载,建议使用声明式工作流。
使用 curl 的声明性 HTTP 示例
这需要先运行 kubectl proxy
。
curl -X POST -H 'Content-Type: application/yaml' --data '
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 10
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14
ports:
- containerPort: 80
' http://127.0.0.1:8001/apis/apps/v1/namespaces/default/deployments
Kubernetes API 是 声明式的 在这个意义上你总是指定 what 你想要的,例如replicas: 2
而不是例如create 2 replicas
在 命令式 API 中就是这种情况。然后,控制器将状态“驱动”到您在协调循环中指定的“什么”。
参见:
- Declarative Management of Kubernetes Objects Using Configuration Files
- Imperative Management of Kubernetes Objects Using Configuration Files
- Managing Kubernetes Objects Using Imperative Commands
来自你的link:
The Application Services 3 Extension uses a declarative model, meaning you send a declaration file using a single Rest API call.
Kubernetes API 使用 yaml-manifest 文件时的工作方式完全相同kubectl apply -f deployment.yaml
编辑:如Jonas'响应中所述,Kubernetes REST API实际上可以被视为声明式而非命令式。
Kubernetes 以其声明式模型而闻名。 控制器正在监视 ETCD 中包含所需状态(声明性)的对象。它将它与当前状态进行比较并生成命令式命令 imperative Kubernetes API.
哪些原因导致 Kubernetes 项目不公开声明性 HTTP API?
因此让 controller/operator 进行对帐。
声明式 REST API 的示例,我发现 F5 AS3. And I guess their Kubernetes operator 构建在这个声明式 API 之上非常简单。
Kubernetes API既可以声明式使用,也可以命令式[=42=]使用。对于快速开发,命令式工作流可能效果更好,而对于可追溯性和生产工作负载,建议使用声明式工作流。
使用 curl 的声明性 HTTP 示例
这需要先运行 kubectl proxy
。
curl -X POST -H 'Content-Type: application/yaml' --data '
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 10
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14
ports:
- containerPort: 80
' http://127.0.0.1:8001/apis/apps/v1/namespaces/default/deployments
Kubernetes API 是 声明式的 在这个意义上你总是指定 what 你想要的,例如replicas: 2
而不是例如create 2 replicas
在 命令式 API 中就是这种情况。然后,控制器将状态“驱动”到您在协调循环中指定的“什么”。
参见:
- Declarative Management of Kubernetes Objects Using Configuration Files
- Imperative Management of Kubernetes Objects Using Configuration Files
- Managing Kubernetes Objects Using Imperative Commands
来自你的link:
The Application Services 3 Extension uses a declarative model, meaning you send a declaration file using a single Rest API call.
Kubernetes API 使用 yaml-manifest 文件时的工作方式完全相同kubectl apply -f deployment.yaml