Нужен бинарный CURL, доступный внутри kubernetes pod - PullRequest
0 голосов
/ 13 ноября 2018

Я хотел бы засунуть себя в капсулу kubernetes и выполнить команду CURL.К сожалению, я нигде не могу найти работающее изображение с доступным скручиванием (и совместимым с kubernetes) ...

  1. Я пробовал несколько образов докера с Alpine и CURL, но каждый раз, когда это заканчивалось crashLoopBackOff,Я предполагаю, что это означает, что контейнер завершился, потому что образ докера завершается после выполнения самого себя ...
  2. Я также пытался использовать изображение только alpine и ubuntu, но каждый раз он также заканчивался crashloopBackOff.
  3. Мне удается выполнить в нескольких изображениях, но на нем никогда не было установлено CURL, и ни APT-GET, ни APK не работали.

Чтобы выполнить в контейнере, я делаю простой kubectl exec -it POD_ID /bin/bash

Кто-нибудь знает о минимальном образе докера, который содержит бинарный файл CURL и не вылетает в kubernetes?

PS: Это для целей тестирования, поэтому он не должен быть твердымили что-нибудь еще

Thx


ОБНОВЛЕНИЕ 1 Это yaml, который я использую для развертывания всего потенциального образа:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: blue
  namespace: default
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: blue
    spec:
      containers:
      - name: blue-website
        image: SOME_IMAGE:latest
        resources:
          requests:
            cpu: 0.1
            memory: 200

Я не думаю, что он сломан, потому чтоэто работает на определенном изображении.

Ответы [ 4 ]

0 голосов
/ 15 ноября 2018

Использовать byrnedo/alpine-curl изображение из https://hub.docker.com/r/byrnedo/alpine-curl/. Также не обязательно иметь тег latest в развертывании. Работает без него, просто

containers:
  - name: blue-website
    image: byrnedo/alpine-curl
0 голосов
/ 13 ноября 2018

Вы получаете CrashLoopBackOff, поскольку контейнер завершает работу после запуска, так как у него нет задачи для обработки.Простой обходной путь - запустить команду в контейнере, чтобы он работал неопределенно долго.Чтобы вы могли выполнить exec в контейнере и запустить curl.

Здесь изменен yaml для этого:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: blue
  namespace: default
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: blue
    spec:
      containers:
      - name: blue-website
        image: scrapinghub/httpbin:latest
        command:
        - sleep
        - "3600"
        resources:
          requests:
            cpu: 0.1
            memory: 200
0 голосов
/ 13 ноября 2018

Вы можете пропустить манифест и использовать kubectl run, чтобы раскрутить одну из этих коробочек по требованию.т.е.

kubectl run curl -it --rm --image=tutum/curl -- sh

Это создаст развертывание с именем curl из образа tutum/curl и даст вам интерактивную (-it) оболочку внутри него.При выходе развертывание будет удалено (--rm).

0 голосов
/ 13 ноября 2018

Вы можете использовать это изображение nightfury1204/alpine-curl

Я создал изображение выше для собственного тестирования.

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: curl
  labels:
    name: curl
spec:
  serviceName: "curl"
  selector:
    matchLabels:
      app: curl
  replicas: 1
  template:
    metadata:
      labels:
        app: curl
    spec:
      containers:
      - name: curl
        image: nightfury1204/alpine-curl
        command:
          - "sh"
          - "-c"
          - >
            while true; do
              sleep 3600;
            done

Для запуска в модуле используйте kubectl exec -it curl-0 sh

...