как получить доступ к миникубу из контейнера docker - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь создать ci / cd локально с помощью jenkins и minikube. Я запускаю minikube на своей машине (хосте) с драйвером docker, а также запускаю jenkins в контейнере.

Оба в одной сети docker.

Для запуска команд kubectl внутри конвейера jenkins мне нужно получить доступ к minikube из моего контейнера, в котором запущен jenkins.

Я пытался использовать имя контейнера в качестве хоста, но это не сработало.

I у меня нет идей для попыток может кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 13 мая 2020

Выполнение команд kubectl из модуля (контейнера) возможно и просто. Хотя более практично и рекомендуется вместо этого использовать Kubernetes API.

Для них обоих вы должны предоставить правильные разрешения для своих модулей, чтобы они могли пройти аутентификацию, чтобы иметь возможность выполнять вызовы API k8s (kubectl - это просто приложение, которое общается с вашим кластером через API).

Вот хороший пример от mster :

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: k8s-101
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: k8s-101
    spec:
      serviceAccountName: k8s-101-role
      containers:
      - name: k8s-101
        imagePullPolicy: Always
        image: yourrepo/yourcontainer
        ports:
        - name: app
          containerPort: 3000
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: k8s-101-role
subjects:
- kind: ServiceAccount
  name: k8s-101-role
  namespace: default
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: k8s-101-role

Здесь мы даем кластер-роли для модулей развертывания и рассматриваем его как плохой пример, так как он опасен , он выставляет ваш кластер.

Затем вам нужно подготовить свои контейнеры для встроенного kubectl:

  1. Загрузить и построить kubectl внутри контейнера
  2. Собрать приложение, скопировав kubectl в свой контейнер
  3. Вуаля! kubectl предоставляет богатый клиентский интерфейс для управления вашим кластером кубернетов

Если вы предпочитаете общаться напрямую с API, вы больше ничего делать не надо. Просто go к документации , чтобы понять, как совершать звонки, а также проверьте Кластеры доступа с использованием Kubernetes API .

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