-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Azure Kubernetes Service + MySQL 8 Exception #41
Comments
Our mysql image is not intended for production use, so adding more modules to our image only to support use like this doesn't mix. It adds image size for non-typical and non-production use cases. I would recommend using a different storage option (such as elasticsearch or cassandra), or make your own image of zipkin based on ours, but includes a full JRE or one jlinked with:
Here's a dockerfile you can use to make your own image if you really need to setup a test mysql in azure. ARG zipkin_version=master
# import Zipkin's official layer
FROM openzipkin/zipkin:$zipkin_version as officialZipkin
# use a larger JRE
FROM azul/zulu-openjdk-alpine:15-jre as zipkin
# Add HEALTHCHECK and ENTRYPOINT scripts into the default search path
COPY --from=officialZipkin /usr/local/bin/docker-healthcheck /usr/local/bin/
HEALTHCHECK --interval=5s --start-period=30s --timeout=5s CMD ["docker-healthcheck"]
COPY --from=officialZipkin /usr/local/bin/start-zipkin /usr/local/bin/
ENTRYPOINT ["start-zipkin"]
# All content including binaries and logs write under WORKDIR
ARG USER=zipkin
WORKDIR /${USER}
# Ensure the process doesn't run as root
RUN adduser -g '' -h ${PWD} -D ${USER}
# Switch to the runtime user
USER ${USER}
# Copy official binaries onto this layer
COPY --from=officialZipkin --chown=${USER} /zipkin/ .
# 3rd party modules like zipkin-aws will apply profile settings with this
ENV MODULE_OPTS=
# Zipkin's full distribution includes Scribe support (albeit disabled)
EXPOSE 9410 9411 |
I added a working dockerfile, but this option is unsupported. If we end up with prod configurations or more need for GSS, we can reconsider. |
@adriancole thank you for a fast reply, going with Cassandra was my first choice but I'm trying to deploy using Azure managed services. Unfortunately when deploying Azure Cosmos DB with the Cassandra API selected it deploys version 3.11.0 and Zipkin upon connecting to it indicates version 3.11.3+ is required. This made me default back to MySQL since there isn't a Azure managed Elasticsearch (by Microsoft) offering at this time so I will give building my own image tomorrow with the dockerfile provided. Though depending on performance I may look to just deploy my own Elastic into the AKS instance to run my own mini-cluster. |
@welsh this is a great reply, full of rich information. I'm in debt! you might look at this as it is also about UDT support. It is possible we can relax the version constraint when search is disabled.. openzipkin/zipkin-aws#180 However, search disabled isn't quite grand either. Do you know anyone at Cosmos? Maybe someone can update that version? |
one way to tell if cosmos is really compatible is to connect manually and try to install the schemas. if they work, perhaps we can make a special case. There was an indexing function added in 3.11.3 which is needed for efficient query. https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/cassandra/src/main/resources/zipkin2-schema.cql |
@adriancole I attempted to run those manually against Cosmos DB however ran into two issues. First any Second the following indexes could not be created:
It appears that the index type
For all of them, that said from reading Indexing in Azure Cosmos DB - Overview it states:
So not being sure if those Indexes are required I just carried on and checked the source code out and modified After a bit of experimenting I got it running and connecting properly with these environment variables:
And this JVM Parameter:
But it seems that Cosmos is not supportable in its current state as a search immediately resulted in:
Which upon checking matches with the CQL commands listing that DISTINCT is not supported so that rules out Cosmos DB for now 😞 Switching back to the dockerfile you provided, I can confirm that it no longer generates a I'll most likely use MySQL in the short term and longer-term look at deploying a simple elastic cluster within the AKS as we scale up the number of services reporting traces. |
Great info. thanks again and good luck! |
Describe the Bug
When starting the application, the following error is presented:
However the application still appears to function normally and is able to receive / display traces, when connecting using a docker-compose to the same database on Mac 10.15.7 this error doesn't appear.
Steps to Reproduce
Deploy Zipkin onto Azure Kubernetes Service (1.18.8) with Azure Database for MySQL Server (Version: 8.0)
Expected Behaviour
Application should not error upon startup.
The text was updated successfully, but these errors were encountered: