When I click on the “Service Instances” of a corresponding node it does not show any consul services in that node seeing this behaviour only after upgrading the consul helm to 1.0.10 from 0.49.2
Is it expected behaviour?
When I click on the “Service Instances” of a corresponding node it does not show any consul services in that node seeing this behaviour only after upgrading the consul helm to 1.0.10 from 0.49.2
Is it expected behaviour?
Hi @magesh.srinivasulu ,
Yes, this is expected. You can read more about this here: Simplified Service Mesh with Consul Dataplane | Consul | HashiCorp Developer.
The TLDR is, from Consul-K8S (Helm Chart) 1.0.0, Consul removes the need to run Consul Client agents. With this new design, the services are registered to a virtual node (which doesn’t appear in the UI).
You will still be able to see these virtual nodes via the API, the CLI (consul catalog nodes
command), or by manually navigating to the UI Path /ui/<dc-name>/nodes/<virtual node name>/service-instances
.
I hope this helps.
@Ranjandas How to get the service details that are running in the particular node
This endpoint Service - Agent - HTTP API | Consul | HashiCorp Developer does not seem to be working
Because it does not return the details from the virtual node
How to query the virtual node and get the details of the service running in it
Seems all the agent HTTP endpoints are breaking with 1.14
With Agentless, the services are registered directly into the Consul Catalog. You can use the /catalog endpoint to query the list of services and node etc.
ref: Catalog - HTTP API | Consul | HashiCorp Developer
I hope this helps.
@Ranjandas Below is my understanding based on how things work post-upgrade. Let me know if it is right
Consul agents are still allowed to be deployed but they are not used as part of architecture. Meaning still we use the client to route the API calls to the consul servers using ${HOSTIP:8500}
Since the agents are removed from architecture no service details are stored in actual Kubernetes nodes. So any API request having /agent is bound to fail since it will have no details to share
Now are the consul connect service details are stored in -virtual node we need to start making use of /catalog API to operate as before. Ideally, we need to migrate from /agent API to /catalog API
Yes, you are correct on all the three points. Btw, the Consul clients are still deployed only to support the migration from non-agentless to agentless. Once all services are migrated, you can pretty much rollout a new change by setting client.enabled: false
in the Helm Chart values file, and remove the clients.
@Ranjandas Are you from the consul support team?
I have read the release note and am aware that the consul client has been removed from the architecture
But haven’t come across technical documents that speak about this -virtual node or about the impacts on /agent API where it is not returning the result of consul services anymore
If the documents could be updated. It will be helpful for the community