Pull to refresh
1
0
Send message

Решал когда-то задачу с сервером конфигов и клентами(nginx, mysql, etc) через Spring Cloud Config Server + Eureka и самописанный java-клиент к нему, что бы слушать нотификации о новом конфиге и выполнял его копирование копирование и nginx -s reload

Ну закрыли и закрыли, чего бухтеть-то?
Вы ведь IT-шники, вот вам туториал как делать свой базовый образ.
Совсем расслабились со своим CI/CD в облаках.

Вы в каком-то другом РФ живёте?
У меня всё работает.

$ curl https://ipinfo.io/region
Moscow

aws:

$ curl -I https://aws.amazon.com/
HTTP/2 200  
content-type: text/html;charset=UTF-8 
server: Server date: Mon, 20 Nov 2023 05:33:06 GMT

Есть ещё вариант через ekscli , манифест в стиле kubernetes , как пример:

apiVersion: eksctl.io/v1alpha5
availabilityZones:
- us-east-1a
- us-east-1b
cloudWatch:
  clusterLogging: {}
iam:
  vpcResourceControllerPolicy: true
  withOIDC: false
kind: ClusterConfig
metadata:
  name: node
  region: us-east-1
  version: "1.19"
nodeGroups:
- amiFamily: AmazonLinux2
  desiredCapacity: 1
  disableIMDSv1: false
  disablePodIMDS: false
  iam:
    withAddonPolicies:
      albIngress: true
      appMesh: false

запускать так: eksctl create nodegroup -f manifest.yaml
документация тут. В разы проще чем ковыряться в cloudformation

Спасибо за статью. Это всё конечно просто и легко когда с помощью helm-а сотворяется "магия".
А можно теперь пример, когда деплоится нейки сервис, ну, скажем "hello, world!" , в deplyment-манифесте. Как в этом случае подключается loki, promtail, etc .

Посмотрев на примеры кода на groovy и куски pipeline-а jenkins-а то правильней было назвать статью - Jenkins Shared Library.

Простите за мой нубский вопрос, а разве не надо создавать PV и PVC и только потом его подключать к деплойменту?


Хорошая и нужная статья. Спасибо что описали пример с activeChoice.
Сам столкнулся с похожей задачей и решал с помощью etcd и вот такого кода:
Jenkinsfile:

def readService(){
  res = httpRequest(
      url: "http://etcd:2379/v2/keys?dir=true",
      httpMode: 'GET',
      consoleLogResponseBody: 'false'
  )

  stdjson = readJSON text: res.content, returnPojo: true

  listStages = [] as Set
  listServices = []

  stdjson.node.nodes.each { nodes ->
    listStages.add(nodes.key.split(',')[0].split('\\/')[1])
    listServices.add(nodes.key.split(',')[0].split('\\/')[2])
  }
  
  return [listStages as List , listServices]

}

pipeline {

    agent any

    parameters {
      choice(name: 'param_stage',   choices: readService()[0] )
      choice(name: 'param_service', choices: readService()[1] )
    }
...

Пожалуй дополню, да, я уже приводил это к другой статье.

Поднять kubernetes кластер на KVM:
minikube start --driver=kvm2

Поднять kubernetes кластер на VirtualBox:
minikube start --vm-driver=virtualbox

Загрузить образ в кластер, причём надо проделать ровно столько раз сколько у вас нод:
minikube image load hello-minikube:latest

Открыть dashboard:
minikube dashboard

Посмотреть URL для доступа к сервисуhello-minikube :
minikube service list

Правда есть одно "но", minikube по умолчанию делает активным свой контекст для kubectl:
CURRENT  NAME  CLUSTER  AUTHINFO  NAMESPACE * minikube minikube minikube default

Есть так же иструмент, недавно вышел: https://rancherdesktop.io/

Поднять kubernetes кластер на KVM:
minikube start --driver=kvm2

Поднять kubernetes кластер на VirtualBox:
minikube start --vm-driver=virtualbox

Прокинуть образ в кластер:
minikube image load hello-minikube:latest

Открыть dashboard:
minikube dashboard

Посмотреть список URL для доступа к сервисуhello-minikube :
minikube service list


Правда есть одно "но", minikube по умолчанию делает активным сразу свой конфиг для kubectl:
CURRENT  NAME  CLUSTER  AUTHINFO  NAMESPACE
* minikube minikube minikube default


Вроде ничего сложного.

Information

Rating
Does not participate
Registered
Activity