Как развернуть приложение, используя Kubernetes Azure и AWS SDK для 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 (создать службу, развертывание и модули) программно.
Я могу сделать следующее
kubectl create -f pod-sample.yaml
но я хочу сделать то же самое, используя JAVA SDK.
Я использую следующие библиотеки Java для kubernetes:
io.fabric8.kubernetes
1 ответ
Решение
Я считаю, что вы можете проанализировать YAML или JSON определения развертывания. Например, для YAML вы можете использовать любую из библиотек Java здесь
- JvYaml # Java порт RbYaml
- SnakeYAML # Java 5 / YAML 1.1
- YamlBeans # в / из JavaBeans
- JYaml # Оригинальная реализация Java
- Верблюд # YAML 1.2 для Java. Удобная библиотека ООП.
Джексон, кажется, более популярен для JSON, который также поддерживает расширение YAML.
Затем, когда вы проанализируете, произнесите имя, например, чтобы создать сервис:
Service myservice = client.services().inNamespace(parsedNamespaceStr).createNew()
.withNewMetadata()
.withName(parsedServiceName)
.addToLabels(parsedLabel1, parseLabel2)
.endMetadata()
.done();