如何使用 Kubernetes Azure 和 AWS SDK 为 java 部署应用程序
How to deploy an app using Kubernetes Azure and AWS SDK for java
public void runKubernetes() {
KubernetesCluster k8sCluster = this.getKubernetesCluster("xyz-aks");
System.out.println("___________________________________________");
System.out.println("Kubernetes Cluster String: " + k8sCluster.name());
DefaultKubernetesClient kubeclient = new DefaultKubernetesClient();
System.out.println("Kube client Master URL :"+kubeclient.getMasterUrl());
NodeList kubenodes = kubeclient.nodes().list();
for (Node node : kubenodes.getItems()) {
System.out.println( node.getKind() + " => " + node.getMetadata().getName() +": " + node.getMetadata().getClusterName());
}
}
我得到了客户端和节点。现在,我有 yaml 文件,我想以编程方式部署该 yaml(创建服务、部署和 pods)。
我可以做到以下几点
kubectl create -f pod-sample.yaml
但我想使用 JAVA SDK 做同样的事情。
我正在为 kubernetes 使用以下 java 库:
io.fabric8.kubernetes
我相信您可以解析部署定义的 YAML 或 JSON。例如,对于 YAML,您可以使用任何 Java 库 here
- JvYaml # Java RbYaml 的端口
- SnakeYAML#Java5/YAML 1.1
- YamlBeans#To/fromJava豆子
- JYaml # 原始 Java 实现
- Camel # Java 的 YAML 1.2。一个用户友好的 OOP 库。
Jackson 似乎更受 JSON 的欢迎,它也支持 YAML 扩展。
然后一旦你解析说出名称,例如创建一个服务:
Service myservice = client.services().inNamespace(parsedNamespaceStr).createNew()
.withNewMetadata()
.withName(parsedServiceName)
.addToLabels(parsedLabel1, parseLabel2)
.endMetadata()
.done();
public void runKubernetes() {
KubernetesCluster k8sCluster = this.getKubernetesCluster("xyz-aks");
System.out.println("___________________________________________");
System.out.println("Kubernetes Cluster String: " + k8sCluster.name());
DefaultKubernetesClient kubeclient = new DefaultKubernetesClient();
System.out.println("Kube client Master URL :"+kubeclient.getMasterUrl());
NodeList kubenodes = kubeclient.nodes().list();
for (Node node : kubenodes.getItems()) {
System.out.println( node.getKind() + " => " + node.getMetadata().getName() +": " + node.getMetadata().getClusterName());
}
}
我得到了客户端和节点。现在,我有 yaml 文件,我想以编程方式部署该 yaml(创建服务、部署和 pods)。
我可以做到以下几点
kubectl create -f pod-sample.yaml
但我想使用 JAVA SDK 做同样的事情。
我正在为 kubernetes 使用以下 java 库:
io.fabric8.kubernetes
我相信您可以解析部署定义的 YAML 或 JSON。例如,对于 YAML,您可以使用任何 Java 库 here
- JvYaml # Java RbYaml 的端口
- SnakeYAML#Java5/YAML 1.1
- YamlBeans#To/fromJava豆子
- JYaml # 原始 Java 实现
- Camel # Java 的 YAML 1.2。一个用户友好的 OOP 库。
Jackson 似乎更受 JSON 的欢迎,它也支持 YAML 扩展。
然后一旦你解析说出名称,例如创建一个服务:
Service myservice = client.services().inNamespace(parsedNamespaceStr).createNew()
.withNewMetadata()
.withName(parsedServiceName)
.addToLabels(parsedLabel1, parseLabel2)
.endMetadata()
.done();