如何使用Kubernetes Azure和适用于Java的AWS开发工具包部署应用程序

时间:2018-10-04 00:29:09

标签: java azure kubernetes azure-sdk

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(创建服务,部署和Pod)。

我可以关注

kubectl create -f pod-sample.yaml 

但是我想使用JAVA SDK做同样的事情。

我将以下Java库用于kubernetes:

io.fabric8.kubernetes

1 个答案:

答案 0 :(得分:2)

我相信您可以解析部署定义的YAML或JSON。例如,对于YAML,您可以使用任何Java库here

  • JvYaml#RbYaml的Java端口
  • SnakeYAML#Java 5 / YAML 1.1
  • YamlBeans#往返JavaBeans
  • 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();