etcdctl w kontenerze
Jeżeli zastanawialiście się w jaki sposób korzystać z etcdctl w kontenerze to już pokazuję.
Dockerfile
Tworzymy plik Dockerfile. Założenie, korzystamy z najnowszej wersji.
FROM alpine RUN apk update \ && apk add curl \ && LAST_VERSION=$(curl --silent "https://api.github.com/repos/etcd-io/etcd/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') \ && curl -L https://github.com/coreos/etcd/releases/download/$LAST_VERSION/etcd-$LAST_VERSION-linux-amd64.tar.gz -o etcd-$LAST_VERSION-linux-amd64.tar.gz \ && tar xzvf etcd-$LAST_VERSION-linux-amd64.tar.gz \ && rm etcd-$LAST_VERSION-linux-amd64.tar.gz \ && cd etcd-$LAST_VERSION-linux-amd64 \ && cp etcd /usr/local/bin/ \ && cp etcdctl /usr/local/bin/ \ && rm -rf etcd-$LAST_VERSION-linux-amd64 CMD sh -c 'sleep infinity'
Plik dostępny jest też w moim repozytorium.
Co dalej
Budujemy obraz
docker build -t etcdctl .
I pozostaje używać. Jeżeli nie chcecie budować własnego obrazu to możecie skorzystać z gotowego w Dockerhubie.
A jeżeli chcecie tylko uruchomić go w klastrze Kubernetesa to wystarczy:
kubectl run etcdctl --image=przemekmalak/etcdctl -- sh
ewentualnie, jeżeli pracujecie w wersji < 1.18 to
kubectl run etcdctl --image=przemekmalak/etcdctl --restart=Never -- sh
I macie gotowego poda z etcdctl. Pozostaje tylko działać.