ከቆንስል ጋር የዘላኖች ስብስብ ማቋቋም እና ከ Gitlab ጋር መቀላቀል

መግቢያ

በቅርብ ጊዜ የኩበርኔትስ ተወዳጅነት በፍጥነት እያደገ ነው - ብዙ እና ተጨማሪ ፕሮጄክቶች እሱን በመተግበር ላይ ናቸው። እንደ ኖማድ ያለ ኦርኬስትራውን መንካት ፈልጌ ነበር፡ ከ HashiCorp ሌሎች መፍትሄዎችን ለሚጠቀሙ ፕሮጀክቶች ፍጹም ነው ለምሳሌ ቮልት እና ቆንስል እና ፕሮጀክቶቹ እራሳቸው በመሠረተ ልማት ረገድ ውስብስብ አይደሉም። ይህ ቁሳቁስ Nomad ን ለመጫን መመሪያዎችን ይይዛል ፣ ሁለት አንጓዎችን ወደ ክላስተር በማጣመር ፣ እንዲሁም ዘላን ከ Gitlab ጋር ያዋህዳል።

ከቆንስል ጋር የዘላኖች ስብስብ ማቋቋም እና ከ Gitlab ጋር መቀላቀል

የሙከራ ማቆሚያ

ስለ የሙከራ አግዳሚ ወንበር ትንሽ፡- ሶስት ቨርቹዋል ሰርቨሮች ከ2 ሲፒዩ፣ 4 RAM፣ 50 Gb SSD ባህሪያት ጋር ጥቅም ላይ ይውላሉ፣ ወደ አንድ የጋራ አካባቢያዊ አውታረ መረብ የተዋሃዱ። ስማቸው እና አይፒ አድራሻቸው፡-

  1. nomad-livelinux-01: 172.30.0.5
  2. nomad-livelinux-02: 172.30.0.10
  3. ቆንስላ-ላይቭሊኑክስ-01: 172.30.0.15

የኖማድ, ቆንስላ መትከል. የዘላኖች ስብስብ መፍጠር

በመሠረታዊ ጭነት እንጀምር. አወቃቀሩ ቀላል ቢሆንም፣ ለጽሁፉ ታማኝነት ስል እገልፀዋለሁ፡ አስፈላጊ ሆኖ ሲገኝ በፍጥነት ለመድረስ ከድራፍት እና ማስታወሻዎች የተፈጠረ ነው።

ልምምድ ከመጀመራችን በፊት, የንድፈ ሃሳቡን ክፍል እንነጋገራለን, ምክንያቱም በዚህ ደረጃ የወደፊቱን መዋቅር መረዳት አስፈላጊ ነው.

ሁለት የዘላን ኖዶች አሉን እና እነሱን ወደ ክላስተር ማጣመር እንፈልጋለን ፣ እና ለወደፊቱ እንዲሁ አውቶማቲክ ክላስተር ስኬል እንፈልጋለን - ለዚህም ኮንሰል እንፈልጋለን። በዚህ መሳሪያ አዲስ ኖዶችን መሰብሰብ እና መጨመር በጣም ቀላል ስራ ይሆናል፡ የተፈጠረው Nomad node ከቆንስል ወኪል ጋር ይገናኛል እና ከዛም ካለው የዘላን ክላስተር ጋር ይገናኛል። ስለዚህ በመጀመሪያ የቆንስላ አገልጋይ እንጭነዋለን ፣ ለድር ፓነል መሰረታዊ http ፈቃድን እናዋቅራለን (በነባሪነት ያለፈቃድ ነው እና በውጫዊ አድራሻ ሊደረስበት ይችላል) እንዲሁም የቆንስላው ወኪሎች እራሳቸውን በዘላን አገልጋዮች ላይ ፣ ከዚያ በኋላ ወደ Nomad ብቻ እንቀጥላለን.

የ HashiCorp መሳሪያዎችን መጫን በጣም ቀላል ነው፡ በመሠረቱ የሁለትዮሽ ፋይሉን ወደ ቢን ዳይሬክተሩ እናንቀሳቅሳለን፣ የመሳሪያውን የውቅር ፋይል እናዘጋጃለን እና የአገልግሎት ፋይሉን እንፈጥራለን።

የቆንስላ ሁለትዮሽ ፋይሉን ያውርዱ እና ወደ ተጠቃሚው የቤት ማውጫ ውስጥ ይክፈቱት፡-

root@consul-livelinux-01:~# wget https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_linux_amd64.zip
root@consul-livelinux-01:~# unzip consul_1.5.0_linux_amd64.zip
root@consul-livelinux-01:~# mv consul /usr/local/bin/

አሁን ለተጨማሪ ውቅር ዝግጁ የሆነ የቆንስላ ሁለትዮሽ አለን።

ከቆንስል ጋር ለመስራት፣የቁልፍ ትዕዛዙን በመጠቀም ልዩ ቁልፍ መፍጠር አለብን፡-

root@consul-livelinux-01:~# consul keygen

ማውጫ /etc/consul.d/ ከሚከተለው መዋቅር ጋር በመፍጠር የቆንስላውን ውቅረት ወደማዋቀር እንሂድ፡

/etc/consul.d/
├── bootstrap
│   └── config.json

የቡትስትራፕ ማውጫው የማዋቀሪያ ፋይል config.json ይይዛል - በውስጡ የቆንስላ ቅንጅቶችን እናዘጋጃለን። ይዘቱ፡-

{
"bootstrap": true,
"server": true,
"datacenter": "dc1",
"data_dir": "/var/consul",
"encrypt": "your-key",
"log_level": "INFO",
"enable_syslog": true,
"start_join": ["172.30.0.15"]
}

ዋናዎቹን መመሪያዎች እና ትርጉማቸውን ለየብቻ እንመልከታቸው፡-

  • የማስነሻ: እውነት። አዲስ አንጓዎች ከተገናኙ በራስ-ሰር መጨመርን እናነቃለን። እዚህ ላይ የሚጠበቁትን አንጓዎች ትክክለኛ ቁጥር እንደማንያመለክት አስተውያለሁ.
  • አገልጋይ: እውነት። የአገልጋይ ሁነታን አንቃ። በዚህ ቨርችዋል ማሽን ላይ ቆንስል በአሁኑ ጊዜ እንደ ብቸኛ አገልጋይ እና ዋና ስራ ይሰራል፣ የኖማድ ቪኤም ደንበኞቹ ይሆናል።
  • የውሂብ ማዕከል: dc1. ክላስተር ለመፍጠር የውሂብ ማእከልን ስም ይግለጹ. በሁለቱም ደንበኞች እና አገልጋዮች ላይ አንድ አይነት መሆን አለበት.
  • ምስጠራ: የእርስዎ-ቁልፍ. ቁልፉ፣ እሱም ልዩ እና ከሁሉም ደንበኞች እና አገልጋዮች ጋር የሚዛመድ መሆን አለበት። የቆንስላ ኪይጀንን ትዕዛዝ በመጠቀም የተፈጠረ።
  • ጀምር_መቀላቀል. በዚህ ዝርዝር ውስጥ ግንኙነቱ የሚካሄድባቸውን የአይፒ አድራሻዎች ዝርዝር እንጠቁማለን። በአሁኑ ጊዜ የራሳችንን አድራሻ ብቻ እንተዋለን.

በዚህ ነጥብ ላይ የትእዛዝ መስመሩን በመጠቀም ቆንስልን ማካሄድ እንችላለን-

root@consul-livelinux-01:~# /usr/local/bin/consul agent -config-dir /etc/consul.d/bootstrap -ui

ይህ አሁን ለማረም ጥሩ መንገድ ነው, ነገር ግን ይህንን ዘዴ በተጨባጭ ምክንያቶች ቀጣይነት ባለው መልኩ መጠቀም አይችሉም. ቆንስልን በsystemd ለማስተዳደር የአገልግሎት ፋይል እንፍጠር፡-

root@consul-livelinux-01:~# nano /etc/systemd/system/consul.service

የኮንሰል.አገልግሎት ፋይል ይዘቶች፡-

[Unit]
Description=Consul Startup process
After=network.target
 
[Service]
Type=simple
ExecStart=/bin/bash -c '/usr/local/bin/consul agent -config-dir /etc/consul.d/bootstrap -ui' 
TimeoutStartSec=0
 
[Install]
WantedBy=default.target

ቆንስልን በ systemctl አስጀምር፡-

root@consul-livelinux-01:~# systemctl start consul

እንፈትሽ፡ አገልግሎታችን እየሄደ መሆን አለበት፣ እና የቆንስላ አባላትን ትዕዛዝ በመፈጸም አገልጋያችንን ማየት አለብን፡-

root@consul-livelinux:/etc/consul.d# consul members
consul-livelinux    172.30.0.15:8301  alive   server  1.5.0  2         dc1  <all>

ቀጣዩ ደረጃ Nginx ን መጫን እና ፕሮክሲንግ እና http ፈቃድን ማዋቀር። nginx ን በጥቅል አቀናባሪ በኩል እንጭነዋለን እና በ /etc/nginx/sites-enabled ማውጫ ውስጥ ከሚከተሉት ይዘቶች ጋር የውቅር ፋይል consul.conf እንፈጥራለን።

upstream consul-auth {
    server localhost:8500;
}

server {

    server_name consul.doman.name;
    
    location / {
      proxy_pass http://consul-auth;
      proxy_set_header Host $host;
      auth_basic_user_file /etc/nginx/.htpasswd;
      auth_basic "Password-protected Area";
    }
}

.htpasswd ፋይል መፍጠር እና የተጠቃሚ ስም እና የይለፍ ቃል ማመንጨትዎን አይርሱ። የድር ፓነል የእኛን ጎራ ለሚያውቅ ሁሉም ሰው እንዳይገኝ ይህ ንጥል ያስፈልጋል። ነገር ግን፣ Gitlabን ስናቀናብር፣ ይህንን መተው አለብን - ያለበለዚያ የእኛን ማመልከቻ ወደ Nomad ማሰማራት አንችልም። በእኔ ፕሮጄክት ውስጥ ሁለቱም ጊትላብ እና ዘላኖች በግራጫው ድር ላይ ብቻ ናቸው፣ ስለዚህ እዚህ ምንም አይነት ችግር የለም።

በቀሩት ሁለት አገልጋዮች ላይ በሚከተለው መመሪያ መሰረት የቆንስል ወኪሎችን እንጭነዋለን. እርምጃዎቹን በሁለትዮሽ ፋይል እንደግማለን-

root@nomad-livelinux-01:~# wget https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_linux_amd64.zip
root@nomad-livelinux-01:~# unzip consul_1.5.0_linux_amd64.zip
root@nomad-livelinux-01:~# mv consul /usr/local/bin/

ከቀዳሚው አገልጋይ ጋር በማመሳሰል፣ የውቅረት ፋይሎች /etc/consul.d ከሚከተለው መዋቅር ጋር ማውጫ እንፈጥራለን።

/etc/consul.d/
├── client
│   └── config.json

የconfig.json ፋይል ይዘቶች፡-

{
    "datacenter": "dc1",
    "data_dir": "/opt/consul",
    "log_level": "DEBUG",
    "node_name": "nomad-livelinux-01",
    "server": false,
    "encrypt": "your-private-key",
    "domain": "livelinux",
    "addresses": {
      "dns": "127.0.0.1",
      "https": "0.0.0.0",
      "grpc": "127.0.0.1",
      "http": "127.0.0.1"
    },
    "bind_addr": "172.30.0.5", # локальный адрес вм
    "start_join": ["172.30.0.15"], # удаленный адрес консул сервера
    "ports": {
      "dns": 53
     }

ለውጦቹን ያስቀምጡ እና የአገልግሎት ፋይሉን ወደ ማዋቀር ይቀጥሉ ይዘቱ፡-

/etc/systemd/system/consul.service፡-

[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target

[Service]
User=root
Group=root
ExecStart=/usr/local/bin/consul agent -config-dir=/etc/consul.d/client
ExecReload=/usr/local/bin/consul reload
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

ቆንስልን በአገልጋዩ ላይ እናስነሳለን። አሁን፣ ከተጀመረ በኋላ፣ የተዋቀረውን አገልግሎት በንሱል አባላት ውስጥ ማየት አለብን። ይህ ማለት እንደ ደንበኛ በተሳካ ሁኔታ ከጥቅሉ ጋር ተገናኝቷል ማለት ነው። በሁለተኛው አገልጋይ ላይ ተመሳሳይ ነገር ይድገሙት እና ከዚያ በኋላ Nomad ን መጫን እና ማዋቀር መጀመር እንችላለን።

የኖማድ ተጨማሪ ዝርዝር ጭነት በይፋዊ ሰነዱ ውስጥ ተገልጿል. ሁለት ባህላዊ የመጫኛ ዘዴዎች አሉ-ሁለትዮሽ ፋይል ማውረድ እና ከምንጩ ማጠናቀር። የመጀመሪያውን ዘዴ እመርጣለሁ.

አመለከተ: ፕሮጀክቱ በጣም በፍጥነት እያደገ ነው, አዳዲስ ዝመናዎች ብዙ ጊዜ ይለቀቃሉ. ምናልባት ይህ ጽሑፍ ሲጠናቀቅ አዲስ እትም ይለቀቃል. ስለዚህ፣ ከማንበብ በፊት፣ አሁን ያለውን የኖማድ ስሪት በመፈተሽ እንዲያወርዱት እመክራለሁ።

root@nomad-livelinux-01:~# wget https://releases.hashicorp.com/nomad/0.9.1/nomad_0.9.1_linux_amd64.zip
root@nomad-livelinux-01:~# unzip nomad_0.9.1_linux_amd64.zip
root@nomad-livelinux-01:~# mv nomad /usr/local/bin/
root@nomad-livelinux-01:~# nomad -autocomplete-install
root@nomad-livelinux-01:~# complete -C /usr/local/bin/nomad nomad
root@nomad-livelinux-01:~# mkdir /etc/nomad.d

ከማሸግ በኋላ 65 ሜባ የሚመዝነው የኖማድ ሁለትዮሽ ፋይል ይደርሰናል - ወደ /usr/local/bin መወሰድ አለበት።

ለኖማድ የውሂብ ማውጫ እንፍጠር እና የአገልግሎት ፋይሉን እናርትዕ (በጣም እድሉ መጀመሪያ ላይ ላይኖር ይችላል)

root@nomad-livelinux-01:~# mkdir --parents /opt/nomad
root@nomad-livelinux-01:~# nano /etc/systemd/system/nomad.service

የሚከተሉትን መስመሮች እዚያ ለጥፍ:

[Unit]
Description=Nomad
Documentation=https://nomadproject.io/docs/
Wants=network-online.target
After=network-online.target

[Service]
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/nomad agent -config /etc/nomad.d
KillMode=process
KillSignal=SIGINT
LimitNOFILE=infinity
LimitNPROC=infinity
Restart=on-failure
RestartSec=2
StartLimitBurst=3
StartLimitIntervalSec=10
TasksMax=infinity

[Install]
WantedBy=multi-user.target

ሆኖም፣ ዘላን ለመጀመር አንቸኩልም - የማዋቀሪያ ፋይሉን ገና አልፈጠርንም።

root@nomad-livelinux-01:~# mkdir --parents /etc/nomad.d
root@nomad-livelinux-01:~# chmod 700 /etc/nomad.d
root@nomad-livelinux-01:~# nano /etc/nomad.d/nomad.hcl
root@nomad-livelinux-01:~# nano /etc/nomad.d/server.hcl

የመጨረሻው የማውጫ መዋቅር እንደሚከተለው ይሆናል.

/etc/nomad.d/
├── nomad.hcl
└── server.hcl

የ nomad.hcl ፋይል የሚከተለውን ውቅር መያዝ አለበት፡-

datacenter = "dc1"
data_dir = "/opt/nomad"

የአገልጋይ.hcl ፋይል ይዘቶች፡-

server {
  enabled = true
  bootstrap_expect = 1
}

consul {
  address             = "127.0.0.1:8500"
  server_service_name = "nomad"
  client_service_name = "nomad-client"
  auto_advertise      = true
  server_auto_join    = true
  client_auto_join    = true
}

bind_addr = "127.0.0.1" 

advertise {
  http = "172.30.0.5"
}

client {
  enabled = true
}

በሁለተኛው አገልጋይ ላይ የማዋቀሪያውን ፋይል መቀየር አይርሱ - እዚያ የ http መመሪያውን ዋጋ መለወጥ ያስፈልግዎታል.

በዚህ ደረጃ ላይ ያለው የመጨረሻው ነገር Nginxን ለፕሮክሲንግ እና ለ http ፍቃድ ማዋቀር ነው. የ nomad.conf ፋይል ይዘቶች፡-

upstream nomad-auth {
        server 172.30.0.5:4646;
}

server {

        server_name nomad.domain.name;
        
        location / {
	        proxy_pass http://nomad-auth;
	        proxy_set_header Host $host;
	        auth_basic_user_file /etc/nginx/.htpasswd;
		   auth_basic "Password-protected Area";
        }
        
}

አሁን የድረ-ገጽ ፓነልን በውጫዊ አውታረመረብ በኩል ማግኘት እንችላለን. ያገናኙ እና ወደ የአገልጋዮች ገጽ ይሂዱ።

ከቆንስል ጋር የዘላኖች ስብስብ ማቋቋም እና ከ Gitlab ጋር መቀላቀል
ምስል 1. በዘላንነት ክላስተር ውስጥ ያሉ የአገልጋዮች ዝርዝር

ሁለቱም አገልጋዮች በተሳካ ሁኔታ በፓነሉ ውስጥ ታይተዋል ፣ በ nomad node status ትዕዛዝ ውፅዓት ውስጥ አንድ አይነት ነገር እናያለን-

ከቆንስል ጋር የዘላኖች ስብስብ ማቋቋም እና ከ Gitlab ጋር መቀላቀል
ምስል 2. የኖድ መስቀለኛ መንገድ ሁኔታ ትዕዛዝ ውጤት

ቆንስልስ? እስቲ እንመልከት። ወደ ቆንስል የቁጥጥር ፓነል፣ ወደ መስቀለኛ መንገድ ገጽ ይሂዱ፡
ከቆንስል ጋር የዘላኖች ስብስብ ማቋቋም እና ከ Gitlab ጋር መቀላቀል
ምስል 3. በቆንስላ ክላስተር ውስጥ ያሉ የአንጓዎች ዝርዝር

አሁን ከቆንስል ጋር በጥምረት የሚሰራ የተዘጋጀ ዘላን አለን። በመጨረሻው ደረጃ ላይ ወደ አስደሳችው ክፍል እንሄዳለን-የዶከር ኮንቴይነሮችን ከጊትላብ ወደ ዘላን ማቅረቡ እና እንዲሁም ስለ ሌሎች ልዩ ባህሪያቱ እንነጋገራለን ።

Gitlab Runner በመፍጠር ላይ

ዶከር ምስሎችን ወደ ዘላን ለማሰማራት፣ በውስጡ የኖማድ ሁለትዮሽ ፋይል ያለው የተለየ ሯጭ እንጠቀማለን (እዚህ ላይ፣ በነገራችን ላይ፣ ሌላ የሃሺኮርፕ አፕሊኬሽኖች ባህሪ - በተናጥል ነጠላ ሁለትዮሽ ፋይል ናቸው)። ወደ ሯጭ ማውጫው ይስቀሉት። ለሚከተለው ይዘት ቀላል ዶከርፋይል እንፍጠርለት፡-


FROM alpine:3.9
RUN apk add --update --no-cache libc6-compat gettext
COPY nomad /usr/local/bin/nomad

በተመሳሳዩ ፕሮጀክት ውስጥ .gitlab-ci.yml እንፈጥራለን፡-

variables:
  DOCKER_IMAGE: nomad/nomad-deploy
  DOCKER_REGISTRY: registry.domain.name
 

stages:
  - build

build:
  stage: build
  image: ${DOCKER_REGISTRY}/nomad/alpine:3
  script:
    - tag=${DOCKER_REGISTRY}/${DOCKER_IMAGE}:latest
    - docker build --pull -t ${tag} -f Dockerfile .
    - docker push ${tag}

በውጤቱም ፣ በጊትላብ መዝገብ ቤት ውስጥ የኖማድ ሯጭ የሚገኝ ምስል ይኖረናል ፣ አሁን በቀጥታ ወደ የፕሮጀክት ማከማቻ ቦታ መሄድ ፣ የቧንቧ መስመር መፍጠር እና የኖማድ ዘላኖች ሥራን ማዋቀር እንችላለን ።

የፕሮጀክት ቅንብር

ለኖማድ የስራ ፋይል እንጀምር። በዚህ ጽሑፍ ውስጥ የእኔ ፕሮጄክት በጣም ጥንታዊ ይሆናል-አንድ ተግባርን ያካትታል። የ.gitlab-ci ይዘት እንደሚከተለው ይሆናል፡-

variables:
  NOMAD_ADDR: http://nomad.address.service:4646
  DOCKER_REGISTRY: registry.domain.name
  DOCKER_IMAGE: example/project

stages:
  - build
  - deploy

build:
  stage: build
  image: ${DOCKER_REGISTRY}/nomad-runner/alpine:3
  script:
    - tag=${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${CI_COMMIT_SHORT_SHA}
    - docker build --pull -t ${tag} -f Dockerfile .
    - docker push ${tag}


deploy:
  stage: deploy
  image: registry.example.com/nomad/nomad-runner:latest
  script:
    - envsubst '${CI_COMMIT_SHORT_SHA}' < project.nomad > job.nomad
    - cat job.nomad
    - nomad validate job.nomad
    - nomad plan job.nomad || if [ $? -eq 255 ]; then exit 255; else echo "success"; fi
    - nomad run job.nomad
  environment:
    name: production
  allow_failure: false
  when: manual

እዚህ ማሰማራቱ የሚከናወነው በእጅ ነው, ነገር ግን የፕሮጀክት ማውጫውን ይዘት ለመለወጥ ማዋቀር ይችላሉ. የቧንቧ መስመር ሁለት ደረጃዎችን ያቀፈ ነው-የምስል ማሰባሰብ እና ወደ ዘላኖች ማሰማራት. በመጀመሪያ ደረጃ, የዶክተር ምስልን እንሰበስባለን እና ወደ መዝገብ ቤት ውስጥ እንገፋለን, እና በሁለተኛው ላይ በኖማድ ውስጥ ስራችንን እንጀምራለን.

job "monitoring-status" {
    datacenters = ["dc1"]
    migrate {
        max_parallel = 3
        health_check = "checks"
        min_healthy_time = "15s"
        healthy_deadline = "5m"
    }

    group "zhadan.ltd" {
        count = 1
        update {
            max_parallel      = 1
            min_healthy_time  = "30s"
            healthy_deadline  = "5m"
            progress_deadline = "10m"
            auto_revert       = true
        }
        task "service-monitoring" {
            driver = "docker"

            config {
                image = "registry.domain.name/example/project:${CI_COMMIT_SHORT_SHA}"
                force_pull = true
                auth {
                    username = "gitlab_user"
                    password = "gitlab_password"
                }
                port_map {
                    http = 8000
                }
            }
            resources {
                network {
                    port "http" {}
                }
            }
        }
    }
}

እባክዎን የግል መዝገብ ቤት እንዳለኝ እና የመትከያ ምስል በተሳካ ሁኔታ ለመሳብ ወደ እሱ መግባት አለብኝ። በዚህ ጉዳይ ላይ በጣም ጥሩው መፍትሄ የመግቢያ እና የይለፍ ቃል ወደ ቮልት ማስገባት እና ከዚያ ከኖማድ ጋር ማዋሃድ ነው. ዘላኖች ቮልትን ይደግፋሉ። ግን መጀመሪያ ለኖማድ ኢን ቮልት ራሱ አስፈላጊ የሆኑ መመሪያዎችን እንጭንላቸው፡ ሊወርዱ ይችላሉ፡

# Download the policy and token role
$ curl https://nomadproject.io/data/vault/nomad-server-policy.hcl -O -s -L
$ curl https://nomadproject.io/data/vault/nomad-cluster-role.json -O -s -L

# Write the policy to Vault
$ vault policy write nomad-server nomad-server-policy.hcl

# Create the token role with Vault
$ vault write /auth/token/roles/nomad-cluster @nomad-cluster-role.json

አሁን፣ አስፈላጊዎቹን ፖሊሲዎች ከፈጠርን በኋላ፣ በ job.nomad ፋይል ውስጥ ባለው የተግባር እገዳ ውስጥ ከቮልት ጋር ውህደትን እንጨምራለን፡

vault {
  enabled = true
  address = "https://vault.domain.name:8200"
  token = "token"
}

ፈቃድን በቶከን እጠቀማለሁ እና በቀጥታ እዚህ አስመዘገብኩት፣ እንዲሁም የዘላን ወኪል ሲጀምር ማስመሰያውን እንደ ተለዋዋጭ የመግለጽ አማራጭ አለ፡

$ VAULT_TOKEN=<token> nomad agent -config /path/to/config

አሁን ቁልፎችን በቮልት መጠቀም እንችላለን. የአሠራር መርህ ቀላል ነው-የተለዋዋጮችን እሴቶች የሚያከማች ፋይል በኖማድ ሥራ ውስጥ እንፈጥራለን ፣ ለምሳሌ-

template {
                data = <<EOH
{{with secret "secrets/pipeline-keys"}}
REGISTRY_LOGIN="{{ .Data.REGISTRY_LOGIN }}"
REGISTRY_PASSWORD="{{ .Data.REGISTRY_LOGIN }}{{ end }}"

EOH
    destination = "secrets/service-name.env"
    env = true
}

በዚህ ቀላል አቀራረብ የእቃ መያዢያ ዕቃዎችን ወደ ኖማድ ክላስተር ማዋቀር እና ለወደፊቱ ከእሱ ጋር መስራት ይችላሉ. በተወሰነ ደረጃ ለዘላን አዝኛለሁ እላለሁ - ኩበርኔትስ ተጨማሪ ውስብስብነትን ሊፈጥር እና ሙሉ አቅሙን የማይገነዘበው ለትንንሽ ፕሮጀክቶች የበለጠ ተስማሚ ነው። በተጨማሪም, Nomad ለጀማሪዎች ፍጹም ነው - ለመጫን እና ለማዋቀር ቀላል ነው. ይሁን እንጂ በአንዳንድ ፕሮጀክቶች ላይ ስሞክር በመጀመሪያዎቹ ስሪቶች ላይ ችግር አጋጥሞኛል - ብዙ መሰረታዊ ተግባራት በቀላሉ እዚያ አይደሉም ወይም በትክክል አይሰሩም. ሆኖም፣ ዘላለማዊ እድገቱን እንደሚቀጥል እና ወደፊት ሁሉም ሰው የሚፈልገውን ተግባር እንደሚያገኝ አምናለሁ።

ደራሲ፡ ኢሊያ አንድሬቭ፣ በአሌክሲ ዛዳን እና የቀጥታ ሊኑክስ ቡድን የተስተካከለ


ምንጭ: hab.com

አስተያየት ያክሉ