acme-dns icon indicating copy to clipboard operation
acme-dns copied to clipboard

health and disk I/O error

Open vm86 opened this issue 6 years ago • 6 comments
trafficstars

The acme-dns has a unexpected behavior. When I call https://github.com/joohoi/acme-dns#health-check-endpoint we see a report it works correct, but it doesn't correct, we can't do any operations with sqlite.

➜  curl -v http://acme.exapmle.com/health
*   Trying 192.168.10.250...
* TCP_NODELAY set
* Connected to acme.exapmle.com (192.168.10.250) port 80 (#0)
> GET /health HTTP/1.1
> Host: acme.exapmle.com
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx/1.15.10
< Date: Tue, 21 May 2019 22:40:57 GMT
< Content-Length: 0
< Connection: keep-alive
< Vary: Origin
<
* Connection #0 to host acme.exapmle.com left intact

➜  curl -X POST http://acme.exapmle.com/register  
{"error": "disk I/O error"} 

acme-dns version: 0.7.2

vm86 avatar May 21 '19 23:05 vm86

The health check endpoint can be used to ensure the server is reachable. But it does not validate the server is functioning properly.

Kugelschieber avatar Jun 13 '19 12:06 Kugelschieber

@Kugelschieber So why is health check here if it doesn't check anything?

vm86 avatar Sep 03 '19 19:09 vm86

It's just an endpoint to check wether the service is reachable or not. It does not make sure it's working correctly. My first guess is that you have misconfigured the server somehow.

Kugelschieber avatar Sep 03 '19 20:09 Kugelschieber

Acme-dns is working in kubernetes. SQLite located in cephfs. SQLite is becoming unreachable when cephfs doesn't availiable or restarted. Your health check doesn't check it, so kubernetes can't restart acme-dns. I receive I/O error after this situation.

vm86 avatar Sep 03 '19 20:09 vm86

Running acme-dns inside Kubernetes isn't a good idea. Kubernetes uses port 53 (DNS) for service discovery that collides with acme-dns.

Kugelschieber avatar Sep 03 '19 20:09 Kugelschieber

@socketpair

vm86 avatar Sep 05 '19 22:09 vm86