Mokhoa o bonolo le o sireletsehileng oa ho tsamaisa li-canary ka Helm

Mokhoa o bonolo le o sireletsehileng oa ho tsamaisa li-canary ka Helm

Ho tsamaisoa ha Canary ke mokhoa o sebetsang haholo oa ho lekola khoutu e ncha ho sehlopha sa basebelisi. E fokotsa haholo mojaro oa sephethephethe o ka bang mathata nakong ea ts'ebetso ea ho romelloa, kaha e etsahala feela ka har'a karolo e itseng. Lethathamo lena le nehetsoe mabapi le mokhoa oa ho hlophisa thomello e joalo ho sebelisoa Kubernetes le deployment automation. Re nahana hore o tseba ho hong ka lisebelisoa tsa Helm le Kubernetes.

Mokhoa o bonolo le o sireletsehileng oa ho tsamaisa li-canary ka Helm

Tšebeliso e bonolo ea canary ho Kubernetes e kenyelletsa lisebelisoa tse peli tsa bohlokoa: tšebeletso ka boeona le sesebelisoa sa ho tsamaisa. Ho tsamaisoa ha Canary ho sebetsa ka ts'ebeletso e le 'ngoe e sebelisanang le lisebelisoa tse peli tse fapaneng tse fanang ka sephethephethe sa ntlafatso. E 'ngoe ea lisebelisoa tsena e tla sebetsa le phetolelo ea "canary",' me ea bobeli e tla sebetsa ka mokhoa o tsitsitseng. Boemong bona, re ka laola palo ea liphetolelo tsa canary ho fokotsa palo ea sephethephethe se hlokahalang ho sebeletsa. Haeba, ka mohlala, u khetha ho sebelisa Yaml, e tla shebahala tjena ho Kubernetes:

kind: Deployment
metadata:
  name: app-canary
  labels:
    app: app
spec:
  replicas: 1
  ...
    image: myapp:canary
---
kind: Deployment
metadata:
  name: app
  labels:
    app: app
spec:
  replicas: 5
  ...
    image: myapp:stable
---
kind: Service
selector:
  app: app # Selector will route traffic to both deployments.

Ho bonolo le ho feta ho nahana ka khetho ena u sebelisa kubectl, le ho Litokomane tsa Kubernetes Ho na le thuto e felletseng mabapi le boemo bona. Empa potso ea mantlha ea poso ena ke hore na re tla etsa joang ts'ebetso ena re sebelisa Helm.

Automation ea ho tsamaisoa ha canary

Pele ho tsohle, re hloka 'mapa oa chate ea Helm, e seng e kenyelletsa lisebelisoa tseo re li tšohlileng ka holimo. E lokela ho shebahala tjena:

~/charts/app
├── Chart.yaml
├── README.md
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   └── service.yaml
└── values.yaml

Motheo oa mohopolo oa Helm ke taolo ea litokollo tsa mefuta e mengata. Phetolelo e tsitsitseng ke lekala la rona le ka sehloohong le tsitsitseng la khoutu ea morero. Empa ka Helm re ka sebelisa tokollo ea canary ka khoutu ea rona ea liteko. Ntho e ka sehloohong ke ho boloka phapanyetsano ea sephethephethe pakeng tsa phetolelo e tsitsitseng le ho lokolloa ha canary. Re tla laola tsena tsohle re sebelisa khetho e khethehileng:

selector:
  app.kubernetes.io/name: myapp

Lisebelisoa tsa rona tsa "canary" le tse tsitsitseng tsa ho tsamaisa li tla bontša lengolo lena ho li-module. Haeba ntho e 'ngoe le e' ngoe e hlophisitsoe ka nepo, joale nakong ea ho tsamaisoa ha mofuta oa canary oa 'mapa oa rona oa chate ea Helm re tla bona hore sephethephethe se tla lebisoa ho li-module tse sa tsoa sebelisoa. Mofuta o tsitsitseng oa taelo ena o tla shebahala tjena:

helm upgrade
  --install myapp 
  --namespace default 
  --set app.name=myapp       # Goes into app.kubernetes.io/name
  --set app.version=v1       # Goes into app.kubernetes.io/version
  --set image.tag=stable 
  --set replicaCount=5

Joale a re hlahlobeng tokollo ea rona ea canary. Ho tsamaisa mofuta oa canary, re hloka ho hopola lintho tse peli. Lebitso la tokollo le tlameha ho fapana e le hore re se ke ra hlahisa ntlafatso ea mofuta o tsitsitseng oa hajoale. Mofuta le tag le tsona li tlameha ho fapana e le hore re ka sebelisa khoutu e 'ngoe le ho tseba phapang ka li-tag tsa lisebelisoa.

helm upgrade
  --install myapp-canary 
  --namespace default 
  --set app.name=myapp       # Goes into app.kubernetes.io/name
  --set app.version=v2       # Goes into app.kubernetes.io/version
  --set image.tag=canary 
  --set replicaCount=1

Ke phetho! Haeba u penya ts'ebeletso, u ka bona hore sephethephethe sa ntlafatso ea canary ke karolo ea nako feela.

Haeba u batla lisebelisoa tsa automation tsa deployment tse kenyelletsang logic e hlalositsoeng, ela hloko Deliverybot le ho feta Lisebelisoa tsa Helm automation ho GitHub. Lichate tsa Helm tse sebelisoang ho kenya tšebetsong mokhoa o hlalositsoeng ka holimo li ho Github, hona mona. Ka kakaretso, ena e ne e le kakaretso ea khopolo-taba ea mokhoa oa ho kenya ts'ebetsong ea ho tsamaisa mefuta ea li-canary ka mokhoa o sebetsang, ka likhopolo le mehlala e itseng.

Source: www.habr.com

Eketsa ka tlhaloso