《深入浅出Istio:Sevice Mesh快速入门与实践》崔秀龙
曾经给出对服务网格的定义:服务网格是一个独立的基础设施层,用来处理服务之间的通信。现代的云原生应用是由各种复杂技术构建的服务组成的,服务网格负责在这些组成部分之间进行可靠的请求传递。目前典型的服务网格通常提供了一组轻量级的网络代理,这些代理会在应用无感知的情况下,同应用并行部署、运行。这里将Istio的特性总结如下。
你可以像半兽人建议的那样使用标签从多个容器中获取日志。
kubectl logs --selector app=yourappname
如果你的pod有多个容器,上述命令就会失败,你需要指定容器名称。
kubectl logs --selector app=yourappname --container yourcontainername
注意:如果你想看看有哪些标签可供你使用,下面的命令将列出所有的标签。
kubectl get pod <one of your pods> -o template --template='{{.metadata.labels}}'
...输出看起来像下面的样子:
map[app:yourappname controller-revision-hash:598302898 pod-template-generation:1]
注意,某些标签可能不会被其他 Pod 共享 - 选择 "app"似乎是最简单的哦
Properties properties = new Properties();
properties.put("bootstrap.servers", "localhost:9092");
properties.put("connections.max.idle.ms", 10000);
properties.put("request.timeout.ms", 5000);
try (AdminClient client = KafkaAdminClient.create(properties))
{
ListTopicsResult topics = client.listTopics();
Set<String> names = topics.names().get();
if (names.isEmpty())
{
// case: if no topic found.
}
return true;
}
catch (InterruptedException | ExecutionException e)
{
// Kafka is not available
}