Разверните модуль kubernetes, используя код golang - PullRequest
0 голосов
/ 01 ноября 2018

Есть ли возможность развернуть kubernetes Pod с использованием кода golang вместо командной строки Linux с kubectl ?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Вы можете написать функцию и указать в качестве параметра файл yaml для изображения ячейки.

func cellDeploy(pathToFileName string) error {
    cmd := exec.Command("kubectl", "apply", "-f", pathToFileName)
    stdoutReader, _ := cmd.StdoutPipe()
    stdoutScanner := bufio.NewScanner(stdoutReader)
    go func() {
        for stdoutScanner.Scan() {
            fmt.Println(stdoutScanner.Text())
        }
    }()
    stderrReader, _ := cmd.StderrPipe()
    stderrScanner := bufio.NewScanner(stderrReader)
    go func() {
        for stderrScanner.Scan() {
            fmt.Println(stderrScanner.Text())
        }
    }()
    err := cmd.Start()
    if err != nil {
        fmt.Printf("Error : %v \n", err)
        os.Exit(1)
    }
    err = cmd.Wait()
    if err != nil {
        fmt.Printf("Error: %v \n", err)
        os.Exit(1)
    }

    return nil
}
0 голосов
/ 01 ноября 2018

Да. Определенно, вы можете. Кубернетес написан на Голанге. У него есть официальный клиент для го. С этим клиентом go вы можете создавать, удалять, исправлять, составлять список, управлять практически любыми ресурсами Kubernetes.

Вот официальный репозиторий клиента: kubernetes / client-go

Я создал образец репозитория здесь , чтобы показать, как создать модуль, используя client-go.

Вы должны сделать следующие вещи, чтобы создать модуль с этим клиентом. Мы собираемся создать простой модуль busybox.

  1. Создайте configuration, используя ваш файл kube-config. Обычно файл конфигурации - это $HOME/.kube/config файл. Смотрите пример здесь .
  2. Создайте clientset, используя это configuration. Смотрите пример здесь .
  3. Теперь создайте определение модуля, которое мы хотим развернуть. Смотрите пример здесь .
  4. Наконец, создайте модуль в кластере kubernetes, используя clientset. Смотрите пример здесь .
...