---
# System prepended metadata

title: '[kubernetes] fix incorrect endpoint in cluster'

---

# [kubernetes] fix incorrect endpoint in cluster
## Check current endpoint
```bash
$ kubectl get endpoint | grep kubernetes
kubernetes         10.0.0.20:16443,10.0.0.21:16443   15d
```
The "10.0.0.20" is unreachable now, so we need to remove it manually.
## root cause
- We restore cluster from a backup file which contains old endpoint that we don't use now
- Query from dqlite(cluster metadata database, like etcd), we can find the old server still has **masterleases**
```bash
# login dqlite terminal
$ /snap/microk8s/current/bin/dqlite -s file:///var/snap/microk8s/current/var/kubernetes/backend/cluster.yaml -c /var/snap/microk8s/current/var/kubernetes/backend/cluster.crt -k /var/snap/microk8s/current/var/kubernetes/backend/cluster.key -f json k8s

dqlite> select * from kine where name is '/registry/masterleases/10.0.0.20'
111555|/registry/masterleases/10.0.0.20|1|0|0|0|0|[107 56 115 0 10 15 10 22 333 49 18 9 69 110 100 112 111 105 110 116 115 18 38 10 10 10 0 18 0 26 0 34 0 42 0 50 0 56 13 66 0 122 0 18 16 10 14 10 10 49 48 46 48 46 48 46 50 48 51 26 0 26 0 34 0]|[]
```
## dqlite table
```sql=
dqlite> SELECT sql FROM sqlite_master;
CREATE TABLE kine
                        (
                                id INTEGER primary key autoincrement,
                                name INTEGER,
                                created INTEGER,
                                deleted INTEGER,
                                create_revision INTEGER,
                                prev_revision INTEGER,
                                lease INTEGER,
                                value BLOB,
                                old_value BLOB
                        )
CREATE TABLE sqlite_sequence(name,seq)
CREATE INDEX kine_name_index ON kine (name)
CREATE UNIQUE INDEX kine_name_prev_revision_uindex ON kine (name, prev_revision)
```
## solution
Manully update old server's masterlease to deleted
```
dqlite> UPDATE kine SET deleted=1 WHERE name='/registry/masterleases/10.0.0.20'
```
Check again endpoint in cluster, and find out it successfully removed.
```bash
$ kubectl get endpoint | grep kubernetes
kubernetes         10.0.0.21:16443   15d
```