#docker #kubernetes
#docker #kubernetes
Вопрос:
Я не уверен, как получить доступ к модулю, который работает за службой.
У меня установлен и запущен Docker CE. При этом у меня запущен Docker ‘Kubernetes’.
Я создал файл модуля, а затем kubectl created
его … а затем использовал переадресацию портов, чтобы проверить, работает ли он, и это было. Отметьте!
Затем я создал службу в качестве балансировщика нагрузки, и kubectl create
это тоже работает… но я не уверен, как его протестировать / получить доступ к запущенному модулю.
Вот выходные данные терминала:
Tests-MBP:k8s test$ kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
hornet-data 1/1 Running 0 4h <none>
Tests-MBP:k8s test$ kubectl get services --show-labels
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE LABELS
hornet-data-lb LoadBalancer 10.0.44.157 XX.XX.XX.XX 8080:32121/TCP 4h <none>
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 14d component=apiserver,provider=kubernetes
Tests-MBP:k8s test$
Не уверен, что проблема с меткой модуля <none>
? Я использую метки для выбора службы.
Вот два файла…
apiVersion: v1
kind: Pod
metadata:
name: hornet-data
labels:
app: hornet-data
spec:
containers:
- image: ravendb/ravendb
name: hornet-data
ports:
- containerPort: 8080
и
apiVersion: v1
kind: Service
metadata:
name: hornet-data-lb
spec:
type: LoadBalancer
ports:
- port: 8080
protocol: TCP
targetPort: 8080
selector:
app: hornet-data
Обновление 1:
По просьбе @vasily:
Tests-MBP:k8s test$ kubectl get ep hornet-data-lb
NAME ENDPOINTS AGE
hornet-data-lb <none> 5h
Обновление 2:
Дополнительная информация для / от Василия:
Tests-MBP:k8s test$ kubectl apply -f hornet-data-pod.yaml
pod/hornet-data configured
Tests-MBP:k8s test$ kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
hornet-data 1/1 Running 0 5h app=hornet-data
Tests-MBP:k8s test$ kubectl get services --show-labels
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE LABELS
hornet-data-lb LoadBalancer 10.0.44.157 XX.XX.XX.XX 8080:32121/TCP 5h <none>
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 14d component=apiserver,provider=kubernetes
Комментарии:
1. можете ли вы показать «kubectl get ep hornet-data-lb»?
2. Обновлен ОП @VasilyAngapov. Нет конечных точек: (
3. в определении вашего модуля я вижу метки, но в кластере — нет. Можете ли вы повторно применить Pod manifest?
4. @VasilyAngapov OP снова обновлен.
5. все еще не работает?
Ответ №1:
@vailyangapov в основном ответил на это через комментарии в OP — этот ответ состоит из двух частей.
-
Я не внес
apply
изменений в свой манифест. Я внес некоторые изменения в файл yaml своих служб, но не запустил эти изменения. Поэтому мне нужно было сделатьkubectl apply -f myPod.yaml
. -
Я был в неправильном контексте. Текущий контекст указывал на тестовую службу Azure Kubernetes. Я думал, что все это находится в моем кластере localhost, который поставляется с Docker-CE (так называемый
docker-for-desktop
кластер). Поскольку это новый компьютер, мне не удалось включить Kubernetes с помощью Docker (это ручной шаг ПОСЛЕ установки Docker-CE .. с настройкой по умолчанию, в которой он НЕ включен / не отмечен). Как только я вручную заметил это, я поставил галочку, чтобы включить Kubernetes иdocker-for-desktop) cluster was installed. Then I manually changed over to this context:
kubectl config use-context docker-for-desktop`.
Обе эти ошибки были простыми. Причина предоставления их в ответ, надеюсь, заключается в том, чтобы помочь другим использовать эту информацию, чтобы помочь им просмотреть свои собственные настройки, если что-то не работает правильно — возникает аналогичная проблема для меня.