Вход в Docker-контейнер моего пакета поиска Google! - PullRequest
0 голосов
/ 07 января 2019

У меня есть кластер kubernetes на GCP, в котором у меня есть служба эластичного поиска. У меня есть стручок elasticsearch-0, на котором запущен контейнер с док-станцией эластичного поиска.

~ ❯❯❯ kubectl describe pod elasticsearch-0
Name:           elasticsearch-0
Namespace:      default
Node:           gke-jaeger-persistent-st-default-pool-xxxxx-phvx/10.166.0.4
Start Time:     Mon, 07 Jan 2019 14:21:19 +0100
Labels:         app=jaeger-elasticsearch
                controller-revision-hash=elasticsearch-8684f69799
                jaeger-infra=elasticsearch-replica
                statefulset.kubernetes.io/pod-name=elasticsearch-0
Annotations:    kubernetes.io/limit-ranger: LimitRanger plugin set: cpu request for container elasticsearch
Status:         Running
IP:             10.36.2.27
Controlled By:  StatefulSet/elasticsearch
Containers:
  elasticsearch:
    Container ID:  docker://5212b8c223401355bd29a5639caea5097074a8a8101ceb10300f76465e4a6536
    Image:         docker.elastic.co/elasticsearch/elasticsearch:5.6.0
    Image ID:      docker-pullable://docker.elastic.co/elasticsearch/elasticsearch@sha256:f95e7d4256197a9bb866b166d9ad37963dc7c5764d6ae6400e551f4987a659d7
    Port:          <none>
    Host Port:     <none>
    Command:

И мне нужен доступ к узлу, который управляет моим модулем, чтобы получить идентификатор контейнера моего контейнераasticsearch.

Я получаю имя своих экземпляров с помощью gcloud compute instances list, и вхожу с помощью команды gcloud compute ssh <node-name> --zone=<zone-name>, и я вхожу в док-контейнер эластичного поиска с правами root docker exec -it -u root containerID bash (после этих шагов )

Мне нужно выполнить это, потому что мне нужно добавить новый mountPath с именем /jaeger-data, чтобы связать его с постоянным утверждением тома, которое я подготовил.

Я вхожу в свой док-контейнер и создаю mountPath

[root@elasticsearch-0 elasticsearch]# mkdir /jaeger-data
[root@elasticsearch-0 elasticsearch]#

Но я вижу, что я постоянно отключаюсь от моего док-контейнера, потому что containerID постоянно меняется. Каждый раз, когда я вхожу в свой узел, чтобы получить команду containerID с docker ps -a, эта containerID отличается, и при входе в новый контейнер, использующий новый идентификатор, мой /jaeger-data mountPath не обнаруживается, это означает, что нет, может быть потому, что я вхожу в новый контейнер ...

В чем причина того, что мой containerID постоянно меняется? Связано ли это с узлом Kubernetes, в котором есть мой модуль, в котором находится мой док-контейнер эластичный поиск?

Связан с Сервисом Ситуация?

Стручки Кубернетеса смертны. Они рождаются, и когда они умирают, они не воскресают. В частности, наборы реплик создают и уничтожают блоки динамически (например, при масштабировании или расширении). В то время как каждый модуль получает свой собственный IP-адрес, даже на эти IP-адреса нельзя полагаться как стабильные с течением времени. Это приводит к проблеме: если некоторый набор модулей (давайте назовем их бэкэндами) предоставляет функциональность другим модулям (давайте назовем их внешними интерфейсами) внутри кластера Kubernetes, как эти внешние интерфейсы узнают и отслеживают, какие внутренние компоненты находятся в этом наборе?

Ввод услуг.

Как мне разрешить эту ситуацию?

Мне нужно создать mountPath, чтобы связать его с моей elasticsearch-0 конфигурацией pod

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...