AI ਉਤਪਾਦ
AI ਲੈਬਜ਼OpenAI ਏਜੰਟClaude ਏਜੰਟGrok BotWorkstation CRM (WSL CRM)ਮਾਰਕੀਟਿੰਗਸਾਰੇ ਉਤਪਾਦ
AI ਹੱਲ
Applied AIAI AgentsGenerative AIAI AutomationAI UpskillingAI SME Packagesਐਂਟਰਪ੍ਰਾਈਜ਼ AI ਲੈਬAI ਵਰਕਸਟੇਸ਼ਨਪ੍ਰਾਈਵੇਟ AIGPU ਕਲੱਸਟਰਐਜ AIਉਦਯੋਗ ਅਨੁਸਾਰ AI
AI ਸੇਵਾਵਾਂ
Platform ModernisationDigital EngineeringData Foundations & AIAutonomous OperationsAI ਸਲਾਹDevOps ਆਟੋਮੇਸ਼ਨਸਾਈਬਰ ਸੁਰੱਖਿਆਸਾਫਟਵੇਅਰ ਵਿਕਾਸਏਜੰਟ ਨਿਰਮਾਣMLOps ਸੈੱਟਅੱਪ
ਸਾਡੇ ਬਾਰੇ
ਭਾਈਵਾਲਗਾਹਕ ਕਹਾਣੀਆਂ
AI InsightsJev seriesBenchmark LabModel selection
ਲੇਖ
ਦਸਤਾਵੇਜ਼ੀਕਰਨ
ਟੂਲWSL ਪ੍ਰਾਕਸੀRing PromoterWSL VaultJobshoutSysOps 24/7
ਖ਼ਬਰਾਂ
ਬਲੌਗ
ਸਾਡੇ ਨਾਲ ਸੰਪਰਕ ਕਰੋਲੌਗ ਇਨ

ਆਧੁਨਿਕ ਕਾਰੋਬਾਰਾਂ ਲਈ AI ਵਰਕਸਟੇਸ਼ਨ, AI ਮਲਟੀ-ਏਜੰਟਿਕ ਸਾਫਟਵੇਅਰ, GPU ਬੁਨਿਆਦੀ ਢਾਂਚਾ ਅਤੇ ਬੁੱਧੀਮਾਨ ਏਜੰਟ ਹੱਲ।

ਸਾਡੇ ਨਾਲ ਸੰਪਰਕ ਕਰੋ

AI ਹੱਲ

Applied AIAI AgentsGenerative AIAI AutomationAI UpskillingAI SME Packagesਐਂਟਰਪ੍ਰਾਈਜ਼ AI ਲੈਬਉਦਯੋਗ ਅਨੁਸਾਰ AI

ਉਤਪਾਦ

ਸਾਰੇ ਉਤਪਾਦWSL CRM ਅਤੇ ERPਮਾਰਕੀਟਿੰਗOpenAI ਏਜੰਟWSL ਪ੍ਰਾਕਸੀRing PromoterWSL VaultJobshoutSysOps 24/7

ਕੰਪਨੀ

ਸਾਡੇ ਬਾਰੇWorkstation ਕਿਉਂਭਾਈਵਾਲਗਾਹਕ ਕਹਾਣੀਆਂਕੀਮਤਾਂਸੰਪਰਕ

ਸਰੋਤ

AI Insightsਲੇਖਦਸਤਾਵੇਜ਼ੀਕਰਨਬਲੌਗਖੋਜੋਸਾਈਟਮੈਪ
ਯੂਕੇ ਦਫ਼ਤਰ
77-79 Marlowes, Hemel Hempstead HP1 1LFਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ - M25 ਆਊਟਰ ਲੰਡਨ ਤੋਂ ਜੰਕਸ਼ਨ 20 ਲਵੋਕੰਪਨੀ ਨੰ.: 11641870ਸੋਮ - ਸ਼ੁੱਕਰ: ਸਵੇਰੇ 9:00 - ਸ਼ਾਮ 6:00 GMT
+44 7515 356 146
ਬੈਲਜੀਅਮ ਦਫ਼ਤਰ
Workstation SRL, Rue Vanderkindere 34, 1180 Uccle, BrusselsBE 0751.518.683ਸੋਮ - ਸ਼ੁੱਕਰ: ਸਵੇਰੇ 9:00 - ਸ਼ਾਮ 6:00 CET
+32 492 45 67 46
ਭਾਰਤ ਦਫ਼ਤਰ
#159 Sector 9, Pocket 1, DDA Flats, 110077 Dwarka, New Delhi
+91 98881 98841

© 2026 Workstation AI। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ।

ਪ੍ਰਾਈਵੇਸੀਕੁਕੀਜ਼ਸੇਵਾ ਦੀਆਂ ਸ਼ਰਤਾਂਵੈੱਬਸਾਈਟ ਸਾਈਟਮੈਪ
ਹੋਮ / ਲੇਖ / Technology
DevOpsKubernetesCI/CD

ਜੀਟਲੈਬ ਰਨਰਸ Kubernetes 'ਤੇ: Kubernetes ਐਗਜ਼ੀਕਿਊਟਰ ਨਾਲ ਹਾਈਪਰਸਕੇਲ ਕੋਸਟ ਆਪਟੀਮਾਈਜ਼ੇਸ਼ਨ

ਓਪਰੇਟਰ ਬਨਾਮ Helm, Kubernetes ਐਗਜ਼ੀਕਿਊਟਰ ਮੁੱਲ, ਸਮਾਨਾਂਤਰਤਾ, DinD, ਆਟੋਸਕੇਲਿੰਗ ਲੀਵਰ, ਨਿਰੀਖਣ ਅਤੇ ਇੱਕ FinOps ਚੈਕਲਿਸਟ

29 ਸਤੰਬਰ 2026Technology26 min read

ਤਕਨੀਕੀ ਗਹਿਰਾਈ: Kubernetes ਉੱਤੇ GitLab Runners, ਆਪਰੇਟਰ ਇੰਸਟਾਲ, Helm ਮੁੱਲ, ਆਟੋਸਕੇਲਿੰਗ ਅਤੇ FinOps ਕੋਸਟ ਮਾਡਲ। ਛੋਟੀ ਸੰਸਕਰਣ ਲਈ, ਪੜ੍ਹੋਸਰਗਰਮ ਨਾ ਹੋਣ ਵਾਲੇ CI ਲਈ ਪੈਸੇ ਨਾ ਭੁਗਤੋ।

GitLab Runners on Kubernetes — scale up by day, down at night

ਅੰਤਿਮ ਸਿੱਟਾ।ਸਿਖਰ ਲਈ ਪ੍ਰਬੰਧਨ ਕਰੋ, ਘਟਾਵੇਂ ਲਈ ਅਪ੍ਰਬੰਧਨ ਕਰੋ। ਘਟੀਆ ਮੰਗ 'ਤੇ ਆਉਣ ਵਾਲੇ ਜੋਬ ਪੋਡ CPU, RAM ਅਤੇ ਸਟੋਰੇਜ ਵਾਪਸ ਲੈਂਦੇ ਹਨ — ਖਾਸ ਕਰਕੇ ਰਾਤ ਅਤੇ ਹਫ਼ਤੇ ਦੇ ਸ਼ੁੱਕਰਵਾਰ ਨੂੰ।

ਜ਼ਿਆਦਾਤਰ ਟੀਮਾਂ ਨਿਰੰਤਰ ਸਮਾਯੋਜਨ ਨੂੰ ਉਦੋਂ ਵਾਂਗ ਭੁਗਤਾਨ ਕਰਦੀਆਂ ਹਨ ਜਿਵੇਂ ਹਰੀ ਰਾਤ ਅਤੇ ਹਰ ਸ਼ੁੱਕਰਵਾਰ ਅਜੇ ਵੀ ਸੋਮਵਾਰ ਦੀ ਸਵੇਰ ਹੋਵੇ। ਸਰਵਰ ਗਰਮ ਰਹਿੰਦੇ ਹਨ। ਡਿਸਕ ਵੰਡਿਆ ਰਹਿੰਦਾ ਹੈ। ਕੋਈ ਨਾ ਕੋਈ ਕੋਡ ਮਿਲਾ ਰਿਹਾ ਨਹੀਂ — ਅਤੇ ਬਿੱਲ ਨੂੰ ਕੋਈ ਖਬਰ ਨਹੀਂ ਹੁੰਦੀ। ਉਹ ਸਿੱਟਾ ਇੱਕ ਸ਼ੁਕਰ ਨਹੀਂ; ਇਹ ਇੱਕ ਨਿਰਧਾਰਤ ਰਨਰ ਫਲੀਟ ਦਾ ਮੂਲ ਰੂਪ ਹੈ।

ਇਹ ਲੰਬੀ ਲੇਖ Kubernetes ਉੱਤੇGitLab Server ਅਤੇ GitLab Runnerਦੀ ਇੱਕ ਹੱਥਾਂ ਨਾਲ ਚੱਲਣ ਵਾਲੀ ਰਾਹਗੁਜ਼ਾਰੀ ਦਾ ਤਕਨੀਕੀ ਸਾਥੀ ਹੈ: Kubernetes ਐਕਸੈਕਿਊਟਰ ਹਰ CI ਜੋਬ ਨੂੰ ਇੱਕ ਆਉਣ ਵਾਲੇ ਪੋਡ ਵਿੱਚ ਕਿਵੇਂ ਬਦਲਦਾ ਹੈ, ਇਹ ਕਿਵੇਂ ਸਮਰੱਥਾ ਦਾ ਡਾਇਨਾਮਿਕ ਪ੍ਰਬੰਧਨ ਅਤੇ ਅਪ੍ਰਬੰਧਨ ਸੰਭਵ ਬਣਾਉਂਦਾ ਹੈ, ਅਤੇ ਇਹ ਡਿਜ਼ਾਈਨ ਕਿਵੇਂਵੱਡੀ ਕੋਸਟ ਬਚਤਨੂੰ ਸੰਭਵ ਬਣਾਉਂਦਾ ਹੈ ਜਦੋਂ ਮੰਗ ਰਾਤ ਅਤੇ ਸ਼ੁੱਕਰਵਾਰ ਨੂੰ ਡਿੱਗ ਜਾਂਦੀ ਹੈ।

ਦੋਵੇਂ ਸੈਸ਼ਨ ਪਹਿਲਾਂ ਦੇਖੋ, ਫਿਰ ਇਸ ਪੰਨੇ ਨੂੰ ਲਿਖਤੀ ਆਰਕੀਟੈਕਚਰ ਅਤੇ ਕੋਸਟ ਮਾਡਲ ਵਜੋਂ ਵਰਤੋ।

1. ਰਨਰਸ & ਪਾਈਪਲਾਈਨਸ— Kubernetes ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ GitLab Runner ਵਰਕਲੋਡਾਂ ਦਾ ਆਟੋਸਕੇਲਿੰਗ।

ਦੇਖੋ: ਪੂਰੀ GitLab Runners ਅਤੇ CI/CD ਉੱਤੇ Kubernetes· ਸਾਧਾਰਨ ਭਾਸ਼ਾ ਵਰਜਨ:ਸਰਗਰਮ ਨਾ ਹੋਣ ਵਾਲੇ CI ਲਈ ਪੈਸੇ ਨਾ ਭੁਗਤੋ

2. GitLab Server on HA Kubernetes— ਓਪਰੇਟਰ ਦੀ ਮਦਦ ਨਾਲ ਕੁਝ ਮਿੰਟਾਂ ਵਿੱਚ GitLab ਡਿਪਲੋਇਡ ਕਰੋ।

ਵੇਖੋ: ਓਪਰੇਟਰ ਦੀ ਮਦਦ ਨਾਲ HA Kubernetes ਕਲੱਸਟਰ ਵਿੱਚ GitLab ਡਿਪਲੋਇਡ ਕਰੋ· ਡੌਕਸ:GitLab ਓਪਰੇਟਰ ਇੰਸਟਾਲੇਸ਼ਨ

1. ਥੀਸਿਸ

GitLab on Kubernetes + Kubernetes ਐਕਸੈਕਿਊਟਰCI ਸਮਰੱਥਾ ਦੀ ਇਕਾਈ ਨੂੰ "ਮਹੀਨੇ ਭਰ ਸਾਡੇ ਕੋਲ ਰੱਖੀ ਗਈ ਮਸ਼ੀਨ" ਤੋਂ "ਉਦੇਸ਼ ਲਈ ਕਿਰਾਏ 'ਤੇ ਲਏ ਗਏ ਪੋਡ (ਅਤੇ ਨੋਡ)" ਵਿੱਚ ਬਦਲਦਾ ਹੈ। ਰਨਰ ਮੈਨੇਜਰ ਛੋਟਾ ਰਹਿੰਦਾ ਹੈ ਅਤੇ ਹਮੇਸ਼ਾ ਚੱਲਦਾ ਰਹਿੰਦਾ ਹੈ। ਜੋਬ ਪੋਡ ਇੱਕ ਬਿਲਡ ਲਈ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਗਾਇਬ ਹੋ ਜਾਂਦੇ ਹਨ। ਕਲੱਸਟਰ ਆਟੋਸਕੇਲਿੰਗ ਨਾਲ, ਵਰਕਰ ਨੋਡ ਇਸੇ ਰੂਪਰੇਖਾ ਨੂੰ ਅਪਣਾਉਂਦੇ ਹਨ। ਇਹੀ ਤਰੀਕਾ ਹੈ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਸੋਮਵਾਰ ਦੀ ਸਵੇਰ ਦੀ ਪ੍ਰੋਸੈਸਿੰਗ ਸਮਰੱਥਾ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦੇ ਹੋ ਅਤੇ ਦੂਜੇ ਦਿਨ ਸਵੇਰ 03:00 ਅਤੇ ਚੁਪ ਸ਼ਨੀਵਾਰ ਲਈ ਸੋਮਵਾਰ ਦੀ ਸਵੇਰ ਦੀ ਕੀਮਤਾਂ ਨੂੰ ਭੁਗਤਾਨ ਕਰਨ ਤੋਂ ਬਚਦੇ ਹੋ।

ਇੱਕ ਲਾਈਨ ਵਿੱਚ — ਲੇਅਮੈਨ ਗਾਈਡ ਵਾਲੀ ਇੱਕੀ ਲਾਈਨ:ਪੀਕ ਲਈ ਪ੍ਰੋਵਿਜ਼ਨ ਕਰੋ, ਟਰੋਗ ਲਈ ਡੀ-ਪ੍ਰੋਵਿਜ਼ਨ ਕਰੋ।

2. ਮਹਿੰਗੀ ਆਦਤ, ਜਿਸਨੂੰ ਇੱਕ ਅਰਕੀਟੈਕਚਰ ਸਮੀਲ (architecture smell) ਵਜੋਂ ਦੱਸਿਆ ਗਿਆ ਹੈ

ਪਰੰਪਰਾਗਤ CI ਅਕਸਰ ਇੱਕ ਸਥਿਰ ਫਲੀਟ (fleet) ਵਾਂਗ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ: ਇੱਕ ਨਿਸ਼ਚਿਤ ਸੈਟਿੰਗ ਦੀ ਬਿਲਡ ਮਸ਼ੀਨਾਂ ਜੋ "ਜੇਕਰ ਚਾਹੀਦੀ ਹੋਵੇ" ਦੇ ਆਧਾਰ 'ਤੇ ਰਹਿੰਦੀਆਂ ਹਨ। ਇਹ ਤਦ ਕੰਮ ਕਰਦਾ ਹੈ ਜਦੋਂ ਤਰੱਕੀ ਸਥਿਰ ਹੋਵੇ। ਇਹ ਤਦ ਪੈਸੇ ਨੂੰ ਬੇਵਾਸਤਾ ਕਰਦਾ ਹੈ ਜਦੋਂ ਮੰਗ (demand) ਤਿੱਖੀ ਹੋਵੇ।

  • ਦਿਨ ਦੌਰਾਨ:ਵਿਕਸੀਕਰਤਾਵਾਂ ਸ਼ਾਖਾਵਾਂ ਧੱਕਦੀਆਂ ਹਨ, ਮਿਸ਼ਰਣ ਅਰਜ਼ੀਆਂ ਖੋਲ੍ਹਦੀਆਂ ਹਨ, ਪਰੀਖਿਆਵਾਂ ਚਲਾਉਂਦੀਆਂ ਹਨ — ਮੰਗ ਤਿੱਖੀ ਹੁੰਦੀ ਹੈ।
  • ਸ਼ਾਮ ਅਤੇ ਰਾਤ:ਗਤੀਵਿਧੀ ਘਟ ਜਾਂਦੀ ਹੈ; ਮਸ਼ੀਨਾਂ ਅਜੇ ਵੀ CPU ਅਤੇ RAM ਨੂੰ ਸੜਾਉਂਦੀਆਂ ਹਨ।
  • ਹਫ਼ਤੇ ਦੇ ਸ਼ਨੀਵਾਰ:ਅਕਸਰ ਲਗਭਗ ਬੇਕਾਰ — ਪਰ ਸਟੋਰੇਜ਼ ਵਾਲੀਅਮ ਅਤੇ ਕਲਾਉਡ ਨੋਡ ਅਜੇ ਵੀ ਰੱਖੇ ਰੱਖੇ ਅਤੇ ਚੁਕਾਉਂਦੇ ਹੋਏ ਹੋ ਸਕਦੇ ਹਨ।

ਤੁਸੀਂ "ਕੀਤੀਆਂ ਗਈਆਂ ਬਿਲਡਾਂ" ਲਈ ਨਹੀਂ ਭੁਗਤਾਨ ਕਰ ਰਹੇ ਹੋ। ਤੁਸੀਂ ਉਸ ਸਮਰੱਥਾ ਲਈ ਭੁਗਤਾਨ ਕਰ ਰਹੇ ਹੋ ਜੋ ਮੌਜੂਦ ਹੈ ਭਾਵੇਂ ਕੋਈ ਵੀ ਇਸਦਾ ਉਪਯੋਗ ਕਰੇ ਜਾਂ ਨਾ ਕਰੇ। ਸਥਿਰ ਫਲੀਟਾਂ ਵਿੱਚ ਵੀ ਚਿਪਚਿਪੀ ਸਥਿਤੀ (sticky state) ਜਮ੍ਹਾ ਹੋ ਜਾਂਦੀ ਹੈ: "ਰਨਨਰ 3 'ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ", ਖਿਸਕੇ ਪੈਕੇਜ, ਅਤੇ ਕਦੇ ਨਹੀਂ ਸੁੱਕਣ ਵਾਲੀਆਂ ਕੈਸ਼ਿੰਗਾਂ। ਇਲਾਸਟਿਕ ਪੌਡ ਆਪਣੇ ਆਪ ਵਿੱਚ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਸਿੱਧੇ ਨਹੀਂ ਹੁੰਦੇ, ਪਰ ਉਹ ਸਾਫ਼-ਸਲਾਟ ਨੂੰ ਮਾਨਤਾ ਦੇਣ ਵਾਲਾ ਬਣਾਉਂਦੇ ਹਨ।

3. ਸਿਸਟਮ ਮੈਪ

ਲੇਅਰਭੂਮਿਕਾਆਮ ਸਥਾਪਨਾ
GitLab ਸਰਵਰSCM, CI ਸੰਚਾਲਨ, ਰਜਿਸਟਰੀ, UI/APIKubernetes GitLab ਓਪਰੇਟਰ ਰਾਹੀਂ / Helm ਚਾਰਟ (ਉਦਾਹਰਣ ਵਜੋਂ k3s ਲੈਬ)
ਰਨਰ ਮੈਨੇਜਰਜੋਬਾਂ ਲਈ ਪੜ੍ਹਨ ਵਾਲਾ ਰਜਿਸਟਰਡ ਏਜੈਂਟHelm ਰਿਲੀਜ਼ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਨੇਮਸਪੇਸ ਵਿੱਚ (ਉਦਾਹਰਣ ਵਜੋਂgitlab-runner)
ਜੋਬ ਪੋਡਸਅਸਲ ਬਿਲਡ / ਟੈਸਟ / ਪੈਕੇਜਿੰਗ ਕਦਮKubernetes ਐਕਸੈਕਿਊਟਰ ਦੁਆਰਾ ਹਰੇਕ ਜੋਬ ਲਈ ਬਣਾਏ ਜਾਂਦੇ ਹਨ, ਫਿਰ ਮਿਟਾਏ ਜਾਂਦੇ ਹਨ
ਵਿਕਲਪਿਕ DinD ਸੇਵਾDocker ਬਿਲਡਸ ਜੋਬ ਦੇ ਅੰਦਰਜੋਬ ਦੇ ਪਾਸ ਜੋਬ ਪੋਡ ਦੇ ਨਾਲ ਪ੍ਰਾਈਵਿਲਿਜ਼ਡ ਸੇਵਾ ਕਨਟੇਨਰ
ਕਲਸਟਰ / ਨੋਡ ਆਟੋਸਕੇਲਰਪੋਡ ਦਬਾਅ ਹੇਠ ਕਾਰਜਰੀ ਨੋਡਾਂ ਨੂੰ ਜੋੜਨਾ/ਹਟਾਉਣਾਕਲਾਉਡ ASG, ਕਲਸਟਰ ਆਟੋਸਕੇਲਰ, Karpenter, ਜਾਂ ਸਮਾਨ

ਸਾਧਾਰਨ ਗਾਈਡ ਤੋਂ ਅਨੁਕਰਾਣ ਇਸ ਪਰਤ 'ਤੇ ਅਜੇ ਵੀ ਲਾਗੂ ਹੁੰਦਾ ਹੈ: GitLab ਰਨਰ ਕਾਰਜੀ ਹੈ; Kubernetes ਉਹ ਵੀਜੀ ਹੈ ਜੋ ਕਾਰਜੀਆਂ ਨੂੰ ਸਿਰਫ ਤਦ ਹੀ ਕਾਲ ਕਰਦਾ ਹੈ ਜਦੋਂ ਪੈਕੇਟ (ਜੋਬ) ਆਉਂਦੇ ਹਨ, ਫਿਰ ਉਹਨਾਂ ਨੂੰ ਘਰ ਭੇਜਦਾ ਹੈ।

4. ਕਲਸਟਰ 'ਤੇ GitLab ਇੰਸਟਾਲ ਕਰਨਾ (ਓਪਰੇਟਰ ਰਾਹੀਂ)

ਡੇਅ 1 ਟ੍ਰੇਨਿੰਗ ਰਾਹੀਂ GitLab ਨੂੰ ਅਧਿਕਾਰਤ ਓਪਰੇਟਰ ਨਾਲ ਇੰਸਟਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਤਾਂ ਜੋ ਸਰਵਰ ਇੱਕੋ Kubernetes ਫਾਊਂਡੇਸ਼ਨ ਨੂੰ ਸਾਂਝਾ ਕਰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਰਨਨਰਸ ਕਰਦੇ ਹਨ। ਸਹਾਇਕ ਵੀਡੀਓਓਪਰੇਟਰ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ Kubernetes ਕਲਸਟਰ ਵਿੱਚ GitLab ਨੂੰ HA ਵਿੱਚ ਡਿਪਲੋਇ ਕਰੋਉਸ ਇੰਸਟਾਲੇਸ਼ਨ ਨੂੰ ਕੁਝ ਮਿੰਟਾਂ ਵਿੱਚ ਦਰਸਾਉਂਦਾ ਹੈ। ਪੂਰਵ-ਸ਼ਰਤਾਂ: ਇੱਕ ਕਲਸਟਰ ਜਿਸ ਵਿੱਚ ਇੰਗ੍ਰੈਸ, Helm,kubectl, ਅਤੇ ਸਰਟ-ਮੈਨੇਜਰ ਹੋਵੇ ਜਦੋਂ ਚਾਰਟ TLS ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਦਾ ਹੈ।

helm repo add gitlab https://charts.gitlab.io
helm repo update

helm install gitlab-operator gitlab/gitlab-operator \
  --create-namespace \
  --namespace gitlab-system

kubectl -n gitlab-system get deployment gitlab-controller-manager

# Apply the GitLab custom resource (pin chart version in the manifest)
kubectl -n gitlab-system apply -f deploy_gitlab_server.yaml

ਨਮੂਨਾ CR ਆਕਾਰ (ਤੁਹਾਡੇ ਵਾਤਾਵਰਣ ਲਈ ਡੋਮੇਨ ਅਤੇ ਆਈਸਿਊਅਰ ਈਮੇਲ ਨੂੰ ਆਪਣੇ ਹੀ ਬਦਲੋ):

apiVersion: apps.gitlab.com/v1beta1
kind: GitLab
metadata:
  name: gitlab
spec:
  chart:
    version: "9.2.2"
    values:
      global:
        hosts:
          domain: "example.com"
        ingress:
          configureCertmanager: true
      certmanager-issuer:
        email: you@example.com

ਪਹਿਲੀ ਵਾਰ ਇੰਸਟਾਲੇਸ਼ਨ ਆਮ ਤੌਰ 'ਤੇ ਲਗਭਗ 10–15 ਮਿੰਟਾਂ ਵਿੱਚ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਕਿ ਵੈਬ ਸਰਵਿਸ, ਸਾਈਡਕੀਕ, ਡੇਟਾ ਸਟੋਰਜ਼ ਅਤੇ ਸੰਬੰਧਿਤ ਕੰਪੋਨੈਂਟਸ ਸਥਿਰ ਹੋ ਜਾਂਦੇ ਹਨ। ਕਲਸਟਰ ਸੀਕ੍ਰਿਟ ਤੋਂ ਪਹਿਲਾਂ ਮੂਲ ਪਾਸਵਰਡ ਪ੍ਰਾਪਤ ਕਰੋ:

kubectl get secret gitlab-gitlab-initial-root-password -n gitlab-system \
  -o jsonpath='{.data.password}' | base64 -d

ਹਵਾਲਾ:GitLab ਓਪਰੇਟਰ ਇੰਸਟਾਲੇਸ਼ਨ(ਉਸ ਪੰਨੇ 'ਤੇ Helm ਟੈਬ)। ਚਾਰਟ ਦਾ ਸਮੱਗਰੀ:docs.gitlab.com/charts· ਇੰਸਟਾਲ ਗਾਈਡ:ਚਾਰਟਸ ਇੰਸਟਾਲੇਸ਼ਨ.

5. Kubernetes ਐਕਜ਼ੈਕਿਊਟਰ ਵਾਲਾ GitLab ਰਨਨਰ

GitLab ਰਨਨਰ ਉਹ ਐਪਲੀਕੇਸ਼ਨ ਹੈ ਜੋ GitLab CI/CD ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਪਾਈਪਲਾਈਨ ਵਿੱਚ ਜੋਬ ਚੱਲ ਸਕਣ।Kubernetes ਐਕਜ਼ੈਕਿਊਟਰਨਾਲ, ਮੈਨੇਜਰ ਆਪਣੇ ਉੱਪਰ ਕੰਪਾਈਲ ਨਹੀਂ ਕਰਦਾ। ਹਰੇਕ ਜੋਬ ਲਈ ਉਹ:

  1. ਇੱਕ ਪੋਡ ਬਣਾਉਂਦਾ ਹੈ (ਪਲਸ ਸਹਾਇਕ / ਸਰਵਿਸ ਕੰਟੇਨਰਜ਼ ਜਿਵੇਂ ਕਿ ਕਨਫਿਗਰੇਸ਼ਨ ਕੀਤਾ ਗਿਆ ਹੈ)।
  2. ਲੌਗਜ਼ ਨੂੰ GitLab ਵੱਲ ਪਿੱਛੇ ਸਟ੍ਰੀਮ ਕਰਦਾ ਹੈ।
  3. ਆਰਟੀਫੈਕਟਸ ਅਤੇ ਆਉਟ ਪ੍ਰੋਸੈਸ ਸਟੇਟਸ ਨੂੰ ਇਕੱਠਾ ਕਰਦਾ ਹੈ।
  4. ਪੋਡ ਨੂੰ ਮਿਟਾਉਂਦਾ ਹੈ — CPU ਅਤੇ RAM ਨੂੰ ਕਲਸਟਰ ਵਾਪਸ ਕਰਦਾ ਹੈ।

ਉਹ ਬਣਾਉਣ/ਚੱਲਣ/ਮਿਟਾਉਣ ਵਾਲਾ ਲੂਪ ਪਹਿਲੀ ਕਸਟ ਲੀਵਰ ਹੈ। ਸਮਾਪਤ ਕੰਮ ਰਾਤ ਭਰ ਤੱਕ ਚੱਲ ਰਹੀ ਮਸ਼ੀਨ ਨੂੰ ਛੱਡਣਾ ਨਹੀਂ ਚਾਹੀਦਾ।

5.1 Helm ਸਥਾਪਨਾ ਪੈਟਰਨ

ਟ੍ਰੇਨਿੰਗ ਸਕ੍ਰਿਪਟਾਂ ਇੱਕ ਨੇਮਸਪੇਸ ਬਣਾਉਂਦੀਆਂ ਹਨ, ਇੱਕ ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ ਪਾਸ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਇੱਕੋ ਸਮੇਂ ਇੱਕੋ ਤੋਂ ਵੱਧ ਰਿਲੀਜ਼ ਸਥਾਪਿਤ ਕਰ ਸਕਦੀਆਂ ਹਨ (ਉਦਾਹਰਣ ਵਜੋਂ alpine-ਅਧਾਰਤ ਅਤੇ ubuntu-ਅਧਾਰਤ ਰਨਰਸ) ਤਾਂ ਜੋ ਕੰਮ ਵੱਖ-ਵੱਖ ਵਾਤਾਵਰਣ ਚੁਣ ਸਕਣ। ਅਧਿਕਾਰਿਕ ਪ੍ਰਕਿਰਿਆ:GitLab Runner ਨੂੰ Helm ਚਾਰਟ ਨਾਲਸਥਾਪਿਤ ਕਰੋ; ਮੁੱਲਾਂ ਦਾ ਹਵਾਲਾ:GitLab Runner Helm ਚਾਰਟਨੂੰ ਸੰਯੋਜਿਤ ਕਰੋ।

helm upgrade --install --namespace gitlab-runner gitlab-runner-alpine \
  -f config-runner-alpine.yaml \
  --set serviceAccount.create=true \
  gitlab/gitlab-runner \
  --create-namespace

GitLab UI (ਇੰਸਟੈਂਸ / ਗਰੁੱਪ / ਪ੍ਰੋਜੈਕਟ ਰਨਰਸ) ਜਾਂ ਓਪਰੇਟਰ-ਪ੍ਰਬੰਧਿਤ ਸੀਕ੍ਰਿਟਸ ਤੋਂ ਟੋਕਨ ਪ੍ਰਾਪਤ ਕਰੋ। ਆਧੁਨਿਕ ਰਨਰ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ GitLab 18 ਵੱਲ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦੀ ਪ੍ਰੀਫਰੈਂਸ ਕਰੋ; ਰਜਿਸਟਰੇਸ਼ਨ ਟੋਕਨ Git

5.2 ਪੈਮਾਨੇ ਅਤੇ ਅਲੱਗ-ਥਲੱਗੀ ਲਈ ਮਹੱਤਵਪੂਰਨ ਮੁੱਲ

Workstation ਤੈਅਤਾਂ (gitlab-runner-values-template.yaml/ ਬਣਾਇਆ ਗਿਆconfig-runner-*.yaml):

ਸੈਟਿੰਗਇਸਦੀ ਮਹੱਤਤਾ
concurrentਇਹ ਮੈਨੇਜਰ ਇੱਕੋ ਸਮੇਂ ਕਿੰਨੇ ਜਾਬਾਂ ਚਲਾਉਂਦਾ ਹੈ। ਦਿਨਵਾਰੀ ਸਿਖਰਾਂ ਲਈ ਵਧਾਓ (ਟ੍ਰੇਨਿੰਗ ਨੋਟਾਂ ਵਿੱਚ ਦਹਾਈਆਂ, ਜਿਵੇਂ 20–40, ਸ਼ੁਗਲ ਲੈਬਾਂ ਵਿੱਚ ਦੱਸੇ ਗਏ ਹਨ)। ਕਲੱਸਟਰ ਸੀਮਾਵਾਂ ਤੋਂ ਪਹਿਲਾਂ ਸੌਫਟ ਥਰੋਟਲ।
runners.privileged/ ਐਕਸੈਕਿਊਟਰprivilegedਅਕਸਰ Docker-ਇਨ-Docker ਲਈ ਲੋੜੀਂਦਾ; ਜੇਕਰ ਤੁਸੀਂ DinD ਦੀ ਲੋੜ ਨਹੀਂ ਕਰਦੇ ਤਾਂ ਇਸਨੂੰ ਠੀਕ ਕਰੋ।
[runners.kubernetes].namespaceਜਾਬ ਪੋਡ ਕਿੱਥੇ ਜਾਗਰੂਕ ਹੁੰਦੇ ਹਨ — GitLab ਸਿਸਟਮ ਕੰਪੋਨੈਂਟਾਂ ਤੋਂ ਅਲੱਗ ਰੱਖੋ।
ਡਿਫਾਲਟimage/ ਹੈਲਪਰ ਇਮੇਜਪੁਨਰ-ਉਤਪਾਦਨ ਲਈ ਅਲਪੀਨ/ਯੂਬੁਨਟੂ ਪੂਲਾਂ ਵਿੱਚ ਟੈਗਾਂ ਨੂੰ ਫਿਕਸ ਕਰੋ।
[[runners.kubernetes.services]]DinDਸਾਈਡਕਾਰdocker:dindਇਮੇਜ ਬਿਲਡਾਂ ਲਈ; ਰਜਿਸਟਰੀ ਮਿਰਰਸ / ਅਸੁਰੱਖਿਅਤ ਰਜਿਸਟਰੀਆਂ ਸਿਰਫ਼ ਜਿਵੇਂ ਲੋੜੀਂਦੀ ਹੋਵੇ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਕਨਫਿਗਰ ਕਰੋ।
RBACclusterWideAccessਸਿਰਫ਼ ਜੇਕਰ ਜਾਬਾਂ ਨੂੰ ਕਲੱਸਟਰ-ਵਾਈ ਸਾਧਨਾਂ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਨਾ ਪਵੇ; ਉਤਪਾਦਨ ਵਿੱਚ ਸਭ ਤੋਂ ਘੱਟ ਅਧਿਕਾਰ ਪਸੰਦ ਕਰੋ।
ਹੋਸਟ ਅਲੀਅਸ / DNS ਕਨਫਿਗਕਲੱਸਟਰ ਵਿੱਚ GitLab ਅਤੇ ਰਜਿਸਟਰੀ ਹੋਸਟਨੇਮਾਂ ਲਈ ਲੈਬ ਸੁਵਿਧਾ।
gitlabUrl: http://gitlab-webservice-default.gitlab-system.svc.cluster.local:8080/
concurrent: 2
rbac:
  create: true
  clusterWideAccess: true
runners:
  privileged: true
  config: |
    [[runners]]
      environment = ["GIT_SSL_NO_VERIFY=1"]
      [runners.kubernetes]
        namespace = "gitlab-runner"
        image = "alpine/git:latest"
        service_account = "gitlab-runner"
        privileged = true

CPU ਤੋਂ ਬਿਨਾਂ ਕਨਕਿਊਰੈਂਸ ਸਿਰਫ਼ ਕਤਾਰ ਨੂੰ ਲੰਬਾ ਕਰਦਾ ਹੈ।concurrentਨੂੰ ਅਸਲ ਨੋਡ ਹੀਡਰੂਮ ਜਾਂ ਨੋਡ ਆਟੋਸਕੇਲਿੰਗ ਨਾਲ ਜੋੜੋ।

6. ਦੋ (ਅਸਲ ਵਿੱਚ ਚਾਰ) ਪੱਧਰਾਂ 'ਤੇ ਆਟੋਸਕੇਲਿੰਗ

"Kubernetes 'ਤੇ GitLab Runners ਦਾ ਆਟੋਸਕੇਲਿੰਗ" ਇੱਕ ਸਵਿੱਚ ਨਹੀਂ ਹੈ। ਇਹਨਾਂ ਲੀਵਰਾਂ ਨੂੰ ਸਟੈਕ ਕਰੋ:

  1. ਜੋਬ ਪੋਡ ਐਲਾਸਟਿਸਿਟੀ— ਇਹ Kubernetes ਐਕਸੈਕਿਊਟਰ ਵਿੱਚ ਬਣਿਆ ਹੋਇਆ ਹੈ। ਜ਼ੀਰੋ ਜੋਬ → ਜ਼ੀਰੋ ਜੋਬ ਪੋਡ। ਇਹ ਅਲੱਗ-ਅਲੱਗ ਕਰਨ ਨਾਲ ਸਾਂਝੇ ਕਲੱਸਟਰ 'ਤੇ ਜ਼ਿਆਦਾਤਰ ਜੋਬ-ਵਿਸ਼ੇਸ਼ ਖਰਚਾ ਖਤਮ ਹੋ ਜਾਂਦਾ ਹੈ।
  2. ਰਨਰconcurrentਅਤੇ ਬਹੁਤ ਸਾਰੇ ਰਨਰ ਡੈਪਲਾਇਮੈਂਟਸ— ਅਲਪੀਨ vs ਯੂਬੰਟੂ (ਜਾਂ CPU vs ਵੱਡੇ ਬਿਲਡਰ) ਨੂੰ ਵੱਖ ਕਰੋ ਤਾਂ ਜੋ ਵਿਸ਼ੇਸ਼ ਸਮਰੱਥਾ ਗਲੀਏ ਮਿਸ਼ਰਣ ਲਈ ਭਰਮਾਤ ਨਾ ਰਹੇ।
  3. ਕਲੱਸਟਰ / ਨੋਡ ਆਟੋਸਕੇਲਿੰਗ— ਸੁਰੱਖਿਅਤ ਪੋਡ ਨੋਡ ਜੋੜਦੇ ਹਨ; ਖਾਲੀ ਨੋਡ ਰਾਤ ਦੇ ਚੜ੍ਹਾਅ ਤੋਂ ਬਾਅਦ ਚਲੇ ਜਾਂਦੇ ਹਨ।
  4. ਵਿਕਲਪਿਕ ਸਮੇਂ-ਸੰਵੇਦਨਸ਼ੀਲ ਨੀਤੀ— ਰਾਤਾਂ/ਹਫ਼ਤੇ ਦੇ ਅੰਤ ਵਿੱਚ ਕੈਲੰਡਰ 'ਤੇ ਕਮੀ ਨਾਲ ਕਨਕਰੂਰੈਂਟ ਸੀਮਾਵਾਂ ਘਟਾਓ ਜਾਂ ਨੋਡ ਪੂਲਾਂ ਨੂੰ ਸਕੇਲ ਕਰੋ, ਜੋ ਕੁਦਰਤੀ ਮੰਗ ਦੇ ਡਿੱਗਣ 'ਤੇ ਬੈਲਟ-ਅਤੇ-ਬਰੇਸ ਵਜੋਂ ਕੰਮ ਕਰਦੀ ਹੈ।

ਹਾਈਪਰਸਕੇਲ ਇੱਕੀ ਹੀ ਕਹਾਣੀ ਹੈ ਪਰ ਤਿੱਖੀ ਆਮਿਤੀ ਨਾਲ: ਗਹਿਰੇ ਕਤਾਰਿਆਂ ਲਈ ਫੈਨ ਆਊਟ ਕਰੋ, ਫਿਰ ਖਤਰਨਾਕ ਤਰੀਕੇ ਨਾਲ ਡੀ-ਪ੍ਰੋਵੀਜ਼ਨ ਕਰੋ ਤਾਂ ਜੋ ਹਫ਼ਤੇ ਦੀ ਸ਼ਾਂਤ ਅੱਧੀ ਘੜੀ ਬਿਜਲੀ ਦੀ ਰਸੂਖੀ 'ਤੇ ਮਸ਼ਗੂਲ ਅੱਧੀ ਨਾਲ ਮਿਲਦੀ ਨਾ ਦਿਖਾਈ ਦੇਵੇ।

6.1 GitLab ਰਨਰ ਦੇ ਅਰਥਾਂ ਵਿੱਚ "ਭਰਮਾਤ" ਬਾਰੇ ਇੱਕ ਨੋਟ

ਕੁਝ ਐਕਸੈਕਿਊਟਰ ਅਗਲੇ ਜੋਬ ਨੂੰ ਸੋਖਣ ਲਈ ਥੋੜ੍ਹੇ ਜਿਹੇ ਭਰਮਾਤ ਮਸ਼ੀਨਾਂ ਨੂੰ ਗਰਮ ਰੱਖਦੇ ਹਨ ਤਾਂ ਜੋ ਕੋਲਡ-ਸਟਾਰਟ ਲੇਟੈਂਸੀ ਨਾ ਹੋਵੇ। Kubernetes 'ਤੇ, ਕੋਲਡ ਸਟਾਰਟ ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ ਪੋਡ ਬਣਾਉਣਾ (ਸਕਿੰਟਾਂ) ਹੈ, ਨਾ ਕਿ ਇੱਕ VM ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ (ਮਿੰਟਾਂ)। ਪੋਡਾਂ ਨੂੰ ਜ਼ੀਰੋ ਤੱਕ ਚਲਾਣਾ ਅਤੇ ਇੱਕ ਛੋਟੀ ਸਮੇਂ ਦੀ ਧੀਮਾਈ ਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ, ਰਾਤ ਦੇ ਸ਼ਿਫ਼ਟ ਦੇ ਖਾਲੀ ਨੋਡਾਂ ਨੂੰ "ਬਸ਼ਾਇਦ" ਰੱਖਣ 'ਤੇ ਤਰਜੀਹ ਦਿਓ। ਜੇ ਤੁਹਾਨੂੰ ਥੋੜ੍ਹੇ ਜਿਹੇ ਫਲੋਰ ਨੂੰ ਗਰਮ ਕਰਨਾ ਪਵੇ, ਤਾਂ ਉਸ ਫਲੋਰ ਨੂੰ ਆਨ-ਕਾਲ ਵਾਸਤਵਿਕਤਾ ਲਈ ਆਕਾਰ ਦਿਓ — ਸੋਮਵਾਰ ਦੇ ਮਰਜ਼ ਸਟੋਰਮ ਲਈ ਨਹੀਂ।

6.2 ਡਾਇਨਾਮਿਕ ਪ੍ਰੋਵਿਜ਼ਨ ਅਤੇ ਡੀ-ਪ੍ਰੋਵਿਜ਼ਨ ਇੰਡ-ਟੂ-ਇੰਡ

ਟ੍ਰੇਸ ਕਰੋ ਇੱਕ ਪਾਈਪਲਾਈਨ ਜੋਬ:

  1. ਡਿਵੈਲਪਰ ਪਸ਼ ਕਰਦਾ ਹੈ; GitLab ਪੈਂਡਿੰਗ ਕੂਅ ਵਿੱਚ ਇੱਕ ਜੋਬ ਬਣਾਉਂਦਾ ਹੈ।
  2. ਰਨਰ ਮੈਨੇਜਰ ਜੋਬ ਨੂੰ ਕਲਾਇਮ ਕਰਦਾ ਹੈ ਅਤੇ API ਤੋਂ ਇੱਕ ਪੋਡ ਲਈ ਪੁੱਛਦਾ ਹੈ।
  3. ਜੇਕਰ ਕਲਸਟਰ ਵਿੱਚ CPU/ਰੈਮ ਘੱਟ ਹੈ, ਤਾਂ ਆਟੋਸਕੇਲਰ ਇੱਕ ਨੋਡ ਜੋੜਦਾ ਹੈ (ਪ੍ਰੋਵਿਜ਼ਨ)।
  4. ਪੋਡ ਸਕ੍ਰਿਪਟ ਚਲਾਉਂਦਾ ਹੈ, ਆਰਟੀਫੈਕਟਸ ਅਪਲੋਡ ਕਰਦਾ ਹੈ, ਅਤੇ ਬਾਹਰ ਹੋ ਜਾਂਦਾ ਹੈ।
  5. ਪੋਡ ਨੂੰ ਮਿਟਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ; ਸਰੋਤ ਪੂਲ ਵਿੱਚ ਵਾਪਸ ਜਾਂਦੇ ਹਨ (ਜੋਬ ਪੱਧਰ 'ਤੇ ਡੀ-ਪ੍ਰੋਵਿਜ਼ਨ)।
  6. ਜਦੋਂ ਬਹੁਤ ਸਾਰੇ ਨੋਡ ਸਕੇਲ-ਡਾਊਨ ਥ੍ਰੈਸ਼ੋਲਡ ਤੋਂ ਪਾਰ ਖਾਲੀ ਰਹਿੰਦੇ ਹਨ — ਆਮ ਤੌਰ 'ਤੇ ਰਾਤ ਅਤੇ ਸਾਰੇ ਹਫ਼ਤੇ ਦੇ ਦੌਰਾਨ — ਤਾਂ ਨੋਡ ਬਾਹਰ ਹੋ ਜਾਂਦੇ ਹਨ (ਇਨਫ੍ਰਾਸਟ੍ਰਕਚਰ ਪੱਧਰ 'ਤੇ ਡੀ-ਪ੍ਰੋਵਿਜ਼ਨ)।

ਉਹ ਪੂਰਾ ਲੂਪ ਇਹੀ ਹੈ ਜੋ ਵੀਡੀਓ GitLab Runners ਨੂੰ ਹਾਈਪਰਸਕੇਲ ਲਈ ਕੋਸਟ ਆਪਟੀਮਾਈਜ਼ੇਸ਼ਨ ਦਾ ਮਤਲਬ ਦਿੰਦਾ ਹੈ: ਇੱਕੋ ਇੱਕ ਖਾਸ ਫਲੈਗ ਨਹੀਂ, ਸਗੋਂ ਜੋਬ ਲਾਈਫਸੈਕਲ + ਕਲਸਟਰ ਐਲਾਸਟਿਸਿਟੀ ਮਿਲ ਕੇ ਕੰਮ ਕਰ ਰਹੇ ਹਨ।

7. ਕੋਸਟ ਮਾਡਲ: ਜਿੱਥੇ ਵੱਡੀਆਂ ਡਾਲਰ ਬਚਤਾਂ ਦਿਖਾਈ ਦਿੰਦੀਆਂ ਹਨ

ਸਹੀ ਹੋ ਜਾਓ। ਆਟੋਸਕੇਲਿੰਗ ਬਿਲਡਜ਼ ਨੂੰ ਮੁਫਤ ਨਹੀਂ ਬਣਾਉਂਦੀ। ਇਹ ਤੁਹਾਨੂੰ ਪੀਕ ਰੇਟਾਂ ਨੂੰ ਅਫ-ਪੀਕ ਘੰਟਿਆਂ ਲਈ ਨਾ ਭੁਗਤਾਨ ਕਰਨ ਦਿੰਦੀ ਹੈ। ਬਚਤਾਂ ਸਹੀ ਮੰਗ ਨਾਲ ਖਰਚੇ ਨੂੰ ਮੇਲ ਖਾਣ ਤੋਂ ਆਉਂਦੀਆਂ ਹਨ — ਸਿੱਧੇ ਗਾਈਡ ਤੋਂ ਚਾਰ ਬਿੰਦੂ, ਓਪਰੇਟਰਾਂ ਲਈ ਵਿਸਤ੍ਰਿਤ।

7.1 ਸਿਰਫ਼ ਤਦ ਸਕੇਲ ਅੱਪ ਕਰੋ ਜਦੋਂ ਲੋਕ (ਜਾਂ ਬੋਟਸ) ਕੰਮ ਕਰ ਰਹੇ ਹੋਣ

ਜਦੋਂ ਇੱਕ ਭੀੜੀ ਸਵੇਰ ਦਾਜ਼ਨ ਪਾਈਪਲਾਈਨਜ਼ ਆਉਂਦੇ ਹਨ, Kubernetes ਬਹੁਤ ਸਾਰੇ ਜੋਬ ਪੋਡਾਂ ਨੂੰ ਸਮਾਨਾਂਤਰ ਵਿੱਚ ਸਕੈਡੂਲ ਕਰਦਾ ਹੈ ਤੱਕ ਕਨਕਰੂਰੈਂਸੀ ਅਤੇ ਕਲਸਟਰ ਸੀਮਾਵਾਂ ਤੱਕ। ਥ੍ਰੂਪੁੱਟ ਤਦ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ ਜਦੋਂ ਮਰਜ਼ ਪ੍ਰੈਸ਼ਰ ਅਸਲੀ ਹੁੰਦਾ ਹੈ।

ਜਦੋਂ ਮੰਗ ਖਤਮ ਹੋ ਜਾਂਦੀ ਹੈ ਤਾਂ ਤੇਜ਼ੀ ਨਾਲ ਘਟਾਓ

ਜਦੋਂ ਕੰਮ ਪੂਰੇ ਹੋ ਜਾਂਦੇ ਹਨ, ਪੋਡ (pods) ਖਤਮ ਹੋ ਜਾਂਦੇ ਹਨ। ਕਲਸਟਰ ਆਟੋਸਕੇਲਿੰਗ (ਜਾਂ ਸਹੀ ਸਾਈਜ਼ ਵਾਲੇ ਨੋਡ ਪੂਲ ਨਾਲ), ਵਰਤੋਂ ਨਹੀਂ ਹੋਣ ਵਾਲੇ ਕਲਾਉਡ ਨੋਡ ਪੂਲ ਤੋਂ ਬਾਹਰ ਹੋ ਜਾਂਦੇ ਹਨ। ਰਾਤਾਂ ਅਤੇ ਹਫ਼ਤੇ ਦੇ ਸ਼ੁੱਕਰਵਾਰ — ਆਮ ਤੌਰ 'ਤੇ ਉਤਪਾਦ ਟੀਮਾਂ ਲਈ ਸਭ ਤੋਂ ਠੰਡੇ ਸਮੇਂ — ਹਨ ਜੋ ਤੁਹਾਡੇ ਨੂੰ ਪਹਿਲਾਂ ਹੀ ਭੁਗਤਾਨ ਕਰਨ ਤੋਂ ਰੁਕਣੇ ਚਾਹੀਦੇ ਹਨ।

7.3 CPU, RAM ਅਤੇ ਸਟੋਰੇਜ਼ ਨੂੰ ਬੇਵਾਸਤਾ ਨਾ ਕਰੋ

ਸਰੋਤ
ਹਮੇਸ਼ਾ ਚੱਲਣ ਵਾਲੀਆਂ VMsKubernetes ਕੰਮ ਪੋਡ + ਨੋਡ ਆਟੋਸਕੇਲਿੰਗ
CPUਖਾਲੀ ਕੂਅ (queue) ਹੋਣ ਦੇ ਬਾਵਜੂਦ ਰਿਜ਼ਰਵ ਕੀਤੇ ਕੋਰ ਆਇਲ ਹਨਪੋਡ ਬਾਹਰ ਹੋਣ 'ਤੇ ਰਿਲੀਜ਼ ਕੀਤੇ ਜਾਂਦੇ ਹਨ; ਨੋਡ ਸਕੇਲ ਇਨ ਕਰ ਸਕਦੇ ਹਨ
RAMਏਜੈਂਟ ਓਐਸ + ਆਇਲ ਐਕਸੈਕਿਊਟਰ 24×7 ਰਹਿੰਦੇ ਹਨਹਰੇਕ ਪੋਡ ਡਿਲੀਟ ਹੋਣ ਨਾਲ ਮੈਮੋਰੀ ਵਾਪਸ ਆ ਜਾਂਦੀ ਹੈ
ਸਟੋਰੇਜ਼ਹਰੇਕ VM 'ਤੇ ਵਾਰਮ ਡਿਸਕਾਂ ਅਤੇ ਇਮੇਜ ਲੇਅਰਆਮ ਤੌਰ 'ਤੇ ਐਫੀਮਰਲ ਸਕਰੈਚ; ਸ਼ੇਅਰਡ ਕੈਸ਼ ਇੱਕ ਸਪੱਸ਼ਟ, ਸਾਈਜ਼ ਕੀਤੀ ਚੋਣ ਬਣ ਜਾਂਦੇ ਹਨ

ਇੱਕ ਮਹੀਨੇ ਵਿੱਚ, ਠੰਡੇ ਸਮੇਂ ਘੜੀ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦੇ ਹਨ। ਰਾਤਾਂ ਅਤੇ ਹਫ਼ਤੇ ਦੇ ਸ਼ੁੱਕਰਵਾਰ ਨੂੰ ਵਾਪਸ ਪ੍ਰਾਪਤ ਕਰਨਾ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇਡਾਲਰ ਬਚਤਾਂ ਜੁੜਦੀਆਂ ਹਨ।

7.4 ਨਤੀਜਿਆਂ ਲਈ ਭੁਗਤਾਨ ਕਰੋ, ਫਰਨੀਚਰ ਲਈ ਨਹੀਂ

ਤੁਸੀਂ ਅਜੇ ਵੀ GitLab ਅਤੇ ਇੱਕ ਪਤਲੇ ਕੰਟਰੋਲ ਪਲੇਨ (ਰਨਰ ਮੈਨੇਜਰ + ਕਲਸਟਰ ਮੁੱਖ ਚੀਜ਼ਾਂ) ਲਈ ਭੁਗਤਾਨ ਕਰਦੇ ਹੋ। ਜੋ ਤੁਸੀਂ ਭੁਗਤਾਨ ਕਰਨ ਤੋਂ ਰੁਕਦੇ ਹੋ ਉਹ ਖਾਲੀ ਕੁਰਸੀਆਂ ਦਾ ਘਰ ਹੈ।

7.5 ਕੰਮ ਕੀਤੀ ਸਮਝ (ਇੱਕ ਬਣਾਏ ਗਏ ਮਾਪਦੰਡ ਨਹੀਂ)

ਮੰਨ ਲਓ ਕਿ ਦਿਨ ਦੌਰਾਨ ਸਥਾਈ ਤੌਰ 'ਤੇ 20 ਭਰੇ ਹੋਏ ਐਗਜ਼ੀਕਿਊਟਰ ਸਲਾਟਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਪਰ ਰਾਤ ਅਤੇ ਹਫ਼ਤੇ ਦੇ ਸ਼ੁੱਕਰਵਾਰ 'ਤੇ ਸਿਰਫ਼ 2 ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇੱਕ ਆਕਰਸ਼ਿਤ ਫਲੀਟ ਜੋ 20 ਲਈ ਡਿਜ਼ਾਈਨ ਕੀਤਾ ਗਿਆ ਹੈ, ਘੰਟਿਆਂ ਬਾਅਦ 20 ਲਈ ਭੁਗਤਾਨ ਕਰਦਾ ਹੈ। ਇੱਕ ਲਚਕੀਲਾ ਪੂਲ ਦਿਨ ਦੌਰਾਨ ~20 ਲਈ ਅਤੇ ਜਦੋਂ ਸ਼ਾਂਤ ਹੋਵੇ ਤਾਂ ~2 (ਪਲਾਨ ਕਰਨ ਵਾਲੇ ਪਲੇਨ ਸ਼ਾਮਲ) ਲਈ ਭੁਗਤਾਨ ਕਰਦਾ ਹੈ। ਬਹੁਤ ਸਾਰੇ ਉਤਪਾਦ ਟੀਮਾਂ ਲਈ, ਸ਼ਾਂਤ ਘੰਟੇ ਮਹੀਨੇ ਦਾ ਇੱਕ ਵੱਡਾ ਹਿੱਸਾ ਹਨ — ਇਸ ਲਈ ਉਹਨਾਂ ਨੂੰ ਵਾਪਸ ਪ੍ਰਾਪਤ ਕਰਨਾ ਇਹੀ ਤਰੀਕਾ ਹੈ ਕਿ ਬਚਤਾਂਵੱਡੀਆਂਹੋ ਜਾਣ, ਬਿਨਾਂ ਇੱਕ ਮਾਰਕੀਟਿੰਗ ਪ੍ਰਤੀਸ਼ਤਤਾ ਦੀ ਖੋਜ ਕੀਤੀ। ਫਾਇਨੈਂਸ ਸਥਾਨਕ ਨੋਡ-ਘੰਟੇ ਦੇ ਮੁੱਲਾਂ ਨੂੰ ਗੁਣਾ ਕਰਦਾ ਹੈ; ਆਰਕੀਟੈਕਚਰ ਦਾ ਕੰਮ ਇਹ ਹੈ ਕਿ ਬਿਜਲੀ ਦੇ ਹਿਸਾਬ ਵਿੱਚ ਖਾਲੀ ਘੰਟੇ ਅਸਲ ਵਿੱਚ ਖਾਲੀ ਹੋਣ।

ਵੱਡੀਆਂ ਖਰਚਾ ਬਚਤਾਂ ਤਦ ਦਿਖਾਈ ਦਿੰਦੀਆਂ ਹਨ ਜਦੋਂ ਸੋਮਵਾਰ ਦਾ ਪੀਕ ਕੋਈ ਵੀ ਦੁਸ਼਼ਨਵਾਰ-ਤਿੰਨਾਂ-ਬਜ਼ਰਗੇ ਦਾ ਬਿੱਲ ਨਹੀਂ ਨਿਰਧਾਰਤ ਕਰਦਾ — ਅਤੇ ਜਦੋਂ ਸ਼ੁੱਕਰਵਾਰ ਦੀ ਠੰਡਕ ਅੰਤ ਵਿੱਚ ਬਿੱਲ 'ਤੇ ਸ਼ਾਂਤ ਲੱਗਦੀ ਹੈ।

7.6 ਜੋ ਤੁਸੀਂ ਮੰਜੂਰੀ ਨਾਲ ਭੁਗਤਾਨ ਕਰਦੇ ਹੋ

  • GitLab ਸਰਵਰ ਘਟਕ — ਉਪਯੋਗੀਆਂ ਅਤੇ CI ਸੰਕੋਚਨ ਲਈ ਆਕਾਰ, ਨਾ ਕਿ ਕੰਪਾਈਲ ਫਾਰਮ ਲਈ।
  • ਰਨਰ ਮੈਨੇਜਰ ਡਿਪਲੋਇਮੈਂਟ(s) — ਕੰਮ ਫਾਰਮਾਂ ਦੇ ਮੁਕਾਬਲੇ ਛੋਟੇ।
  • ਮੰਜੂਰੀ ਨਾਲ ਕੈਸ਼ (ਨਿਰਭਰਤਾ ਪ੍ਰੋਕਸੀ, PVCs) — ਮਦਦਗਾਰ, ਪਰ ਆਕਾਰ ਕੀਤੇ ਗਏ; ਕੈਸ਼ ਮੁਫ਼ਤ ਸਟੋਰੇਜ਼ ਨਹੀਂ ਹਨ।
  • ਪ੍ਰਾਈਵਿਲਿਜ਼ਡ DinD — ਸੁਵਿਧਾਜਨਕ ਅਤੇ ਭਾਰੀ; ਜਦੋਂ ਘਣਤਾ ਅਤੇ ਅਲੋਚਨਾਤਮਕਤਾ ਮਾਹਰੀ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਮਹੱਤਵਪੂਰਨ ਹੋਵੇ, ਤਾਂ Kaniko/BuildKit ਨੂੰ ਵਿਚਾਰ ਕਰੋ।

8. ਅਸਲੀ ਜੀਵਨ ਵਿੱਚ ਪਾਈਪਲਾਈਨਾਂ

ਰਨਰਾਂ ਨੂੰ ਚੱਲ ਰਹੇ ਹੋਣ 'ਤੇ,.gitlab-ci.ymlਸਟੇਜਾਂ ਅਤੇ ਜਾਬਾਂ ਦੀ ਪਰਿਭਾਸ਼ਾ ਕਰਦਾ ਹੈ। GitLab ਸਕੈਡੂਲ ਕਰਦਾ ਹੈ; Kubernetes ਐਕਸੈਕਿਊਟਰ ਪੌਡਾਂ ਨੂੰ ਪ੍ਰਗਟ ਕਰਦਾ ਹੈ। ਕੀਮਤ ਬਾਰੇ ਪਾਈਪਲਾਈਨਾਂ ਨੂੰ ਸਹੀ ਰੱਖੋ:

  • ਲਿੰਟ/ਯੂਨਿਟ 'ਤੇ ਤੇਜ਼ੀ ਨਾਲ ਫੇਲ੍ਹ ਹੋ ਜਾਓ ਭਾਰੀ ਇਮੇਜ ਬਿਲਡਾਂ ਤੋਂ ਪਹਿਲਾਂ।
  • rules/workflowਦੀ ਵਰਤੋਂ ਕਰੋ ਤਾਂ ਜੋ ਡਰਾਫਟ ਸ਼ਾਖਾਵਾਂ ਪੂਰੇ ਮੈਟ੍ਰਿਕਸ ਨੂੰ ਫੈਲਾਉਣ ਨਾ ਹੋਣ।
  • ਸਪੇਸ਼ਲ ਕੇਸ਼ਾਂ ਨਾਲ ਸਾਂਝੇ ਕੇਸ਼ਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ, ਅਨਿਸ਼ਚਿਤ VM ਡਿਸਕ ਵਾਧੇ ਦੀ ਬਜਾਏ।
  • ਜਾਬਾਂ ਨੂੰ ਸਹੀ ਰਨਰ ਪੂਲ ਨਾਲ ਟੈਗ ਕਰੋ (alpine vs ubuntu, ਛੋਟੇ vs ਵੱਡੇ ਬਿਲਡਰ)।
stages: [lint, test, build]

workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

lint:
  stage: lint
  image: alpine:3.19
  script:
    - echo "cheap checks first"

test:
  stage: test
  tags: [kubernetes, alpine]
  script:
    - echo "unit tests"

build:
  stage: build
  tags: [kubernetes, dind]
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
  script:
    - echo "heavy image build only on default branch"

ਅਰਥਸ਼ਾਸਤਰੀ ਆਧਾਰ ਇੱਕੋ ਜਿਹਾ ਹੈ ਜਿਵੇਂ ਪਲੈਟਫਾਰਮ ਆਧਾਰ: ਮਹਿੰਗੀ ਕੰਮ ਨੂੰ ਸਕੈਡੂਲ ਨਾ ਕਰੋ ਜਦੋਂ ਇੱਕ ਸਸਤੀ ਜਾਂਚ ਹਾਰ ਜਾਵੇਗੀ, ਅਤੇ ਸ਼ਨੀਵਾਰ ਨੂੰ ਕਦੇ ਨਹੀਂ ਆਉਣ ਵਾਲੀਆਂ ਜਾਬਾਂ ਲਈ ਸਪੇਸ਼ਲ ਰਨਰਾਂ ਨੂੰ ਗਰਮ ਰੱਖੋ।

9. ਸੁਰੱਖਿਆ ਅਤੇ ਟੈਨੈਂਸੀ ਨੋਟਸ

ਐਫੀਮਰਲ ਪੌਡ ਹਾਈਜੀਨ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਂਦੇ ਹਨ (ਘੱਟ ਸਟਿਕੀ ਸਟੇਟ) ਪਰ ਪ੍ਰਾਈਵਿਲਿਜ਼ਡ DinD ਅਤੇ ਕਲਸਟਰ-ਵਾਈਡ RBAC ਫੈਲਾਅ ਰੇਡੀਅਸ ਨੂੰ ਵਧਾ ਸਕਦੇ ਹਨ। ਜ਼ਿਆਦਾਤਰ ਟੀਮਾਂ ਲਈ ਅਸਲੀ ਨਿਯਮ:

  • ਜਾਬ ਪੌਡਾਂ ਨੂੰ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਨੇਮਸਪੇਸ ਵਿੱਚ ਚਲਾਓ ਜਿੱਥੇ ResourceQuotas ਅਤੇ LimitRanges ਹੋਣ।
  • ਜਿੱਥੇ ਸੰਭਵ ਹੋਵੇ ਗੈਰ-ਪ੍ਰਾਈਵਿਲਿਜ਼ਡ ਬਿਲਡਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ; DinD ਰਨਰਾਂ ਨੂੰ ਖਾਸ ਟੈਗਾਂ ਪਿੱਛੇ ਅਲੋਚਿਤ ਕਰੋ।
  • ਹਰੇਕ ਜਾਬ ਵਿੱਚ ਲੰਬੇ ਸਮੇਂ ਦੀਆਂ ਕਲਾਉਡ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲਾਂ ਨੂੰ ਮਾਉਂਟ ਨਾ ਕਰੋ; ਪ੍ਰਤੀ ਪਾਈਪਲਾਈਨ ਛੋਟੇ ਸਮੇਂ ਦੇ ਟੋਕਨ ਆਇਨਜੈਕਟ ਕਰੋ।
  • ਰਨਰ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਟੋਕਨਾਂ ਨੂੰ ਰੱਖਿਆਵਾਂ ਵਜੋਂ ਸਮਝੋ — ਜਦੋਂ ਲੋਕ ਛੱਡਦੇ ਹਨ ਜਾਂ ਲੈਬਾਂ ਸਾਂਝੀਆਂ ਹੁੰਦੀਆਂ ਹਨ ਤਾਂ ਘੁਮਾਓ।
  • ਜੇਕਰ ਕਈ ਟੀਮਾਂ ਇੱਕ ਕਲਸਟਰ ਨੂੰ ਸਾਂਝਾ ਕਰਦੀਆਂ ਹਨ, ਤਾਂ ਰਨਰ ਮੈਨੇਜਰਾਂ ਨੂੰ ਵੱਖ ਕਰੋ (ਅਤੇ ਓਪਸ਼ਨਲ ਤੌਰ 'ਤੇ ਨੋਡ ਪੂਲਾਂ ਨੂੰ) ਤਾਂ ਜੋ ਇੱਕ ਚਿਰੂਸੀ ਨੇਬਰ ਪੂਰੀ ਫਾਰਮ ਨੂੰ ਗਰਮ ਨਾ ਰੱਖ ਸਕੇ — ਅਤੇ ਕੀਮਤ ਦੀ ਕਹਾਣੀ ਨੂੰ ਪ੍ਰਤੀ ਟੀਮ ਨਿਰਧਾਰਤ ਰੱਖੋ।

10. ਉਹ ਨਿਰੀਖਣ ਜੋ ਬਚਤ ਨੂੰ ਸਾਬਤ ਕਰਦਾ ਹੈ

ਰਾਤ ਅਤੇ ਹਫ਼ਤੇ ਦੇ ਸ਼ੁਕਰ ਨੂੰ ਦਾਅਵਾ ਕਰਨ ਤੋਂ ਬਿਨਾਂ ਤੁਸੀਂ ਦੇਖ ਨਹੀਂ ਸਕਦੇ। ਘੱਟੋ-ਘੱਟ ਇਹ ਟਰੈਕ ਕਰੋ:

ਪੈਂਡਿੰਗ ਪੋਡ
ਸਿਗਨਲ"ਠੀਕ" ਦਾ ਕੀ ਰੂਪ ਹੈ
ਘੰਟੇ ਦੇ ਅਨੁਸਾਰ ਜੋਬ ਪੋਡ ਦੀ ਗਿਣਤੀਸ਼ੁਕਰਵਾਰ ਦੇ ਕੰਮ ਦੇ ਘੰਟਿਆਂ 'ਤੇ ਪੀਕ; ਰਾਤ ਅਤੇ ਹਫ਼ਤੇ ਦੇ ਸਿਰੇ 'ਤੇ ਨੇੜੇ-ਫਲੋਰ
ਸਿਰਫ਼ ਪੀਕ 'ਤੇ ਥੋੜ੍ਹੇ ਸਮੇਂ ਲਈ ਸਪਾਈਕ ਹੁੰਦੇ ਹਨ; ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਪੈਂਡਿੰਗ ਮਤਲਬ ਘੱਟ ਕੰਕਰੂਰੈਂਸੀ/ਨੋਡ
ਨੋਡ CPU / ਨੋਡ ਦੀ ਗਿਣਤੀਪੋਡ ਦੀ ਮੰਗ ਨੂੰ ਟਰੈਕ ਕਰਦਾ ਹੈ; ਖਾਲੀ ਨੋਡ ਘੰਟਿਆਂ ਲਈ ਰਹਿੰਦੇ ਨਹੀਂ
ਰਨਰ ਮੈਨੇਜਰ CPU/RAMਜੋਬ ਫਾਰਮ ਦੇ ਸਾਪੇਖ ਸਮਤਲ ਅਤੇ ਛੋਟਾ
ਹਫ਼ਤੇ ਦੇ ਘੰਟੇ ਦੇ ਅਨੁਸਾਰ ਕਲਾਉਡ ਬਿੱਲਕਟੋਵਰ ਤੋਂ ਬਾਅਦ ਸ਼ਾਂਤੀਮਈ ਸਮੇਂ ਵਿੱਚ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਸਸਤਾ

ਜੇਕਰ ਰਾਤ ਨੂੰ ਪੋਡ ਦੀ ਗਿਣਤੀ ਘਟਦੀ ਹੈ ਪਰ ਨੋਡ ਬਿੱਲ ਨਹੀਂ, ਤਾਂ ਸਕੇਲ-ਡਾਊਨ ਸੈਟਿੰਗਾਂ — ਨਾ ਕਿ GitLab — ਅਗਲਾ ਕਨੋਬ ਹਨ।

11. ਫਿਕਸਡ VMs ਬਨਾਮ Kubernetes ਐਕਜ਼ੈਕਿਊਟਰਸ (ਤਸਵੀਰ ਸੰਦੀਪਤੀ)

ਫਿਕਸਡ ਰਨਰ VMsKubernetes ਐਕਜ਼ੈਕਿਊਟਰ + ਆਟੋਸਕੇਲਿੰਗ
ਸਮਰੱਥਾ ਦੀ ਇਕਾਈਪੂਰੀ ਮਸ਼ੀਨ, ਹਮੇਸ਼ਾ ਵੰਡੀ ਹੋਈਪੋਡ (ਅਤੇ ਚੋਣਵੇਂ ਨੋਡ) ਹਰੇਕ ਕੰਮ ਲਈ
ਸੋਮਵਾਰ ਦੇ ਸਿਖਰਕੂਆਂ ਜਾਂ ਵੱਧ ਖਰੀਦੋ VMsਸਮਾਨਾਂਤਰ ਵਧਾਓ + ਨੋਡਸ ਨੂੰ ਸਕੇਲ ਕਰੋ
ਰਾਤਾਂ / ਹਫ਼ਤੇ ਦੇ ਅੰਤਜੇਕਰ VMs ਚੱਲ ਰਹੀਆਂ ਹਨ ਤਾਂ ਅਜੇ ਵੀ ਬਿੱਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈਪੋਡ ਚਲੇ ਜਾਂਦੇ ਹਨ; ਨੋਡਸ ਚਲੇ ਜਾ ਸਕਦੇ ਹਨ
CPU / RAM / ਸਟੋਰੇਜ਼ ਦੀ ਬੇਚਾਰੀਆਰਾਮ ਕਰਦੇ ਸਮੇਂ ਢਾਂਚਾਗਤਆਮ ਤੌਰ 'ਤੇ ਵਾਪਸ ਲਿਆ ਜਾਂਦਾ ਹੈ
ਡ੍ਰਿਫਟ / "ਰਨਰ 3 'ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ"ਆਮਘੱਟ (ਆਮ ਤੌਰ 'ਤੇ ਅਸਤੀਯਾਤਮਕ)
ਓਪਰੇਸ਼ਨਲ ਜਟਿਲਤਾਸ਼ੁਰੂ ਵਿੱਚ ਘੱਟਵੱਧ (ਕਲਸਟਰ ਕੁਸ਼ਲਤਾਵਾਂ ਦੀ ਲੋੜ)

ਫਿਕਸਡ VMs ਨੂੰ ਸਿਰਫ਼ ਤਦ ਹੀ ਚੁਣੋ ਜਦੋਂ ਤੁਹਾਡੇ ਕੋਲ ਅਸਲ ਵਿੱਚ ਸਮਤਲ 24×7 ਮੰਗ ਜਾਂ ਸੀਮਾਵਾਂ ਹੋਣ ਜੋ ਕਲਸਟਰ ਨੂੰ ਪਰੋਹਿਤ ਕਰਦੀਆਂ ਹਨ। ਹਰੇਕ ਦੂਜਾ ਜਿਸਦੀ ਸਪਾਈਕੀ ਮਨੁੱਖ-ਚਾਲਿਤ ਪਾਈਪਲਾਈਨਾਂ ਹਨ ਉਹ ਮੋਬਲੀਅਰ ਟੈਕਸ ਭੁਗਤਾਅ ਕਰ ਰਹੇ ਹਨ।

12. ਜੋ ਤੁਸੀਂ ਛੱਡ ਰਹੇ ਨਹੀਂ ਹੋ

ਆਟੋਸਕੇਲਿੰਗ ਦਾ ਮਤਲਬ "ਕੋਈ ਨਿਯੰਤਰਣ ਨਹੀਂ" ਨਹੀਂ ਹੈ। ਤੁਸੀਂ ਅਜੇ ਵੀ ਸਮਾਨਾਂਤਰਤਾ, ਆਗਿਆ ਦਿੱਤੀਆਂ ਤਸਵੀਰਾਂ, DinD ਅਧਿਕਾਰ, ਨੈਟਵਰਕ ਨੀਤੀ, ਅਤੇ ਰਜਿਸਟਰੇਸ਼ਨ ਸਕੋਪ ਨੂੰ ਸੈੱਟ ਕਰਦੇ ਹੋ। ਬਿੰਦੂ ਉਹ ਹੈ ਕਿ ਉਹਨਾਂ ਨਿਯੰਤਰਣਾਂ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਦੇ ਹੋਏ ਅਸਤੀਯਾਤਮਕ ਸਮਰੱਥਾ ਨੂੰ ਬਾਹਰ ਕੱਢਣ ਦਿਓ — ਸਾਧਾਰਨ ਭਾਸ਼ਾ ਦੇ ਟੁਕੜੇ ਵਿੱਚ ਅਜਿਹੀ ਹੀ ਖੁਸ਼ੀ, ਹੁਣ RBAC, ਨੇਮਸਪੇਸਾਂ, ਅਤੇ ਵੱਖਰੇ ਰਨਰ ਰਿਲੀਜ਼ਾਂ ਨਾਲ ਲਾਗੂ ਕੀਤੀ ਗਈ ਹੈ।

13. ਚਾਲੂ ਕਰਨ ਦੀ ਚੈਕਲਿਸਟ

  1. ਪਿਨ ਓਪਰੇਟਰ/ਚਾਰਟ ਵਰਜ਼ਨ; ਮਾਨਸਿਕ ਤੌਰ 'ਤੇ ਅਪਗ੍ਰੇਡ ਕਰੋ।
  2. ਰਨਰ ਟੋਕਨ ਘੁਮਾਓ; ਪ੍ਰਕਾਸ਼ਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕਿਸੇ ਸਕ੍ਰਿਪਟ ਤੋਂ ਲੈਬ ਟੋਕਨਾਂ ਨੂੰ ਸਾਫ਼ ਕਰੋ।
  3. ਵੱਖਰੇ ਨੇਮਸਪੇਸ: GitLab ਸਿਸਟਮ ਬਨਾਮ ਰਨਰ ਜੋਬ।
  4. ਨਿਗਰਾਨੀ ਰੱਖੋਪੈਂਡਿੰਗਪੋਡਸ — ਵਧਦੇ ਪੈਂਡਿੰਗ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਪੀਕ ਸਮੇਂ 'ਤੇ ਕਨਕਰੂਰੈਂਸੀ ਜਾਂ ਨੋਡ ਕੈਪੇਸਿਟੀ ਘੱਟ ਹੈ।
  5. ਨਿਗਰਾਨੀ ਰੱਖੋਖਾਲੀ ਨੋਡ ਘੰਟੇ— ਰਾਤ ਨੂੰ ਖਾਲੀ ਰਹਿਣ ਵਾਲੇ ਨੋਡ ਮਾਨਸ਼ਿੰਗ-ਡਾਊਨ ਦੇ ਢਿੱਲ ਜਾਂ ਪੂਲ ਨੀਤੀ ਨੂੰ ਸਟਾਈਲਿੰਗ ਦੀ ਲੋੜ ਦਰਸਾਉਂਦੇ ਹਨ।
  6. ਪ੍ਰਾਈਵਿਲਿਜ਼ਡ ਰਨਰਾਂ ਨੂੰ ਸਿਰਫ਼ ਉਹਨਾਂ ਜੋਬਾਂ ਤੱਕ ਸੀਮਿਤ ਕਰੋ ਜਿਨ੍ਹਾਂ ਨੂੰ ਉਹਨਾਂ ਦੀ ਲੋੜ ਹੋਵੇ।
  7. GitLab ਨੂੰ ਰਨਰ ਐਲਾਸਟਿਸਿਟੀ ਤੋਂ ਸੁਤੰਤਰ ਰੂਪ ਵਿੱਚ ਬੈਕਅੱਪ ਕਰੋ।
  8. ਇੱਕ ਵਾਰ ਜਦੋਂ ਐਲਾਸਟਿਕ CI ਜੀਵਿਤ ਹੋ ਜਾਵੇ, ਤਾਂ ਹਫ਼ਤੇ ਦੇ ਘੰਟੇ ਦੇ ਅਨੁਸਾਰ ਬਿੱਲ ਦੀ ਪੜਤਾਲ ਕਰੋ — ਰਾਤਾਂ ਅਤੇ ਹਫ਼ਤੇ ਦੇ ਸ਼ੁੱਕਰਵਾਰ ਨੂੰ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਘਟਣੇ ਚਾਹੀਦੇ ਹਨ।

14. ਇਹ ਕਿਸ ਲਈ ਹੈ

  • ਪਲੈਟਫਾਰਮ ਇੰਜੀਨੀਅਰ ਅਤੇ SREs ਜੋ GitLab CI ਨੂੰ Kubernetes 'ਤੇ ਲਾਗੂ ਕਰ ਰਹੇ ਹਨ।
  • DevOps ਲੀਡਜ਼ ਜੋ ਖੜ੍ਹੇ ਰਨਰ VMs ਨੂੰ ਐਕਜ਼ੈਕਿਊਟਰ ਪੋਡਸ ਨਾਲ ਬਦਲ ਰਹੇ ਹਨ।
  • ਉਹ ਇੰਜੀਨੀਅਰਿੰਗ ਅਤੇ ਫਾਇਨੈਂਸ ਸਾਥੀ ਜਿਨ੍ਹਾਂ ਨੂੰ CI ਨੂੰ ਇੱਕ ਵਰਤੋਂ-ਅਧਾਰਿਤ ਉਪਯੋਗ ਵਾਂਗ ਵਿਵਹਾਰਣਾ ਚਾਹੀਦਾ ਹੈ, ਨਾ ਕਿ ਮੋਬਲੀ।

15. ਅਧਿਕਾਰਿਤ GitLab ਦਸਤਾਵੇਜ਼

ਇਹ ਪੇਜ ਉੱਪਰ ਦਿੱਤੇ ਗਏ Helm ਡਿਪਲਾਇਮੈਂਟਸ ਅਤੇ ਸਕੇਲਿੰਗ ਵਿਵਹਾਰ ਲਈ ਮੁੱਖ ਹਵਾਲੇ ਹਨ। ਜਦੋਂ ਵਰਜ਼ਨ ਬਦਲਦੇ ਹਨ ਤਾਂ ਇਹਨਾਂ ਨੂੰ ਬਲੌਗ ਪੋਸਟਾਂ ਤੋਂ ਪ੍ਰੀਫਰ ਕਰੋ।

ਜਿਟਲੈਬ ਸਰਵਰ Kubernetes

  • ਜਿਟਲੈਬ ਓਪਰੇਟਰ ਨੂੰ ਇੰਸਟਾਲ ਕਰੋ— ਓਪਰੇਟਰ + Helm ਇੰਸਟਾਲ ਪਾਥ ਜੋ ਟ੍ਰੇਨਿੰਗ ਵਾਕਥਰੂ ਵਿੱਚ ਵਰਤਿਆ ਗਿਆ ਹੈ।
  • ਜਿਟਲੈਬ Helm ਚਾਰਟਸ— ਊਮਬ੍ਰੇਲਾ ਚਾਰਟ ਦਸਤਾਵੇਜ਼।
  • Helm ਚਾਰਟ ਨਾਲ ਜਿਟਲੈਬ ਇੰਸਟਾਲ ਕਰੋ— ਜਦੋਂ ਤੁਸੀਂ ਚਾਰਟਸ ਰਾਹੀਂ ਜਿਟਲੈਬ ਡੈਪਲਾਈ ਕਰਦੇ ਹੋ, ਨਾ ਕਿ ਓਪਰੇਟਰ ਰਾਹੀਂ।
  • gitlab-runner ਸਬਚਾਰਟ (ਜਿਟਲੈਬ ਚਾਰਟ)— ਮੁੱਖ ਚਾਰਟ ਵਿੱਚ ਜਿਟਲੈਬ ਦੇ ਨਾਲ ਬੰਧਿਆ ਹੋਇਆ ਰਨਰ (ਅਲੱਗ-ਅਲੱਗ ਸਟੈਂਡਾਲੋਨ ਰਨਰ ਚਾਰਟ ਤੋਂ ਵੱਖ)।

ਜਿਟਲੈਬ ਰਨਰ Helm ਚਾਰਟ

  • Helm ਚਾਰਟ ਨਾਲ ਜਿਟਲੈਬ ਰਨਰ ਇੰਸਟਾਲ ਕਰੋ—helm repo add gitlab, ਇੰਸਟਾਲ/ਅਪਗ੍ਰੇਡ, OCI ਚਾਰਟ ਨੋਟਸ।
  • ਜਿਟਲੈਬ ਰਨਰ Helm ਚਾਰਟ ਨੂੰ ਸੰਯੋਜਿਤ ਕਰੋ—concurrent, ਸੰਯੋਜਨਾ ਟੈਮਪਲੇਟਸ, RBAC, ਕੈਸ਼ਸ, ਇਮੇਜ ਚੋਣਾਂ।
  • gitlab-runner ਚਾਰਟvalues.yaml— ਪੂਰੇ ਮੂਲ ਮੁੱਲ (ਸ਼ਾਮਿਲ ਕਰਦੇ ਹੋਏ ਆਪਟੀਅਨਲ HPA ਸਟੱਬਸ)।

Kubernetes ਚਲਾਉਣ ਵਾਲਾ ਅਤੇ ਆਟੋਸਕੇਲਿੰਗ

  • Kubernetes ਚਲਾਉਣ ਵਾਲਾ— ਜੋਬ ਪੋਡਸ, ਹੈਲਪਰਸ, ਸਰਵਿਸਿਜ਼ (ਜਿਵੇਂ DinD), ਸਰੋਤ ਦੀਆਂ ਮੰਗਾਂ, RBAC ਕ੍ਰਿਆਵਾਂ।
  • ਆਟੋਸਕੇਲਿੰਗ ਨੂੰ ਸੰਯੋਜਿਤ ਕਰੋ (Kubernetes ਚਲਾਉਣ ਵਾਲਾ / ਚਾਰਟ)— ਪੋਡਸ ਨੂੰ ਰੋਕੋ,[runners.kubernetes.autoscaler], ਸਮੇਂ ਦੇ ਨੀਤੀਆਂ (ਰਾਤ/ਸ਼ਨੀਵਾਰ ਨੂੰ ਆਰਾਮ ਕਰੋ)।
  • GitLab Runner ਦਾ ਆਟੋਸਕੇਲਿੰਗ— ਆਮ ਆਟੋਸਕੇਲਿੰਗ ਮਾਡਲ (ਇਸ ਵਿੱਚ ਵੰਡਿਆ ਹੋਇਆ ਕੈਸ਼ਿੰਗ ਵੀ ਸ਼ਾਮਲ ਹੈ)।
  • GitLab Runner ਫਲੀਟ ਦੀ ਰਾਜੀ ਅਤੇ ਪ੍ਰਬੰਧਨ ਕਰੋ— ਫਲੀਟ-ਸਤਰ 'ਤੇ ਸਕੇਲਿੰਗ ਅਤੇ ਕਾਰਜਸ਼ੀਲਤਾ।
  • ਉੱਚ-ਤਰਤੀਬ ਵਾਲੀ ਸੰਯੋਜਨਾ (config.toml)— ਗਲੋਬਲconcurrentਅਤੇ ਚਲਾਉਣ ਵਾਲੇ ਹਿੱਸੇ ਜੋ Helm ਵਿੱਚ ਭੇਜੇ ਗਏ ਹਨrunners.config।

GitLab ਵਿੱਚ CI ਜੋਬਸ, ਬਿਲਡਸ, ਅਤੇ ਰਨਰ ਸੈਟਿੰਗਾਂ

  • GitLab ਵਿੱਚ ਰਨਰਸ ਨੂੰ ਸੰਯੋਜਿਤ ਕਰੋ— ਰਜਿਸਟਰੇਸ਼ਨ, ਟੈਗਸ, run-untagged, ਸੁਰੱਖਿਅਤ ਰਨਰਸ।
  • Docker ਦੀ ਵਰਤੋਂ ਕਰੋ CI ਵਿੱਚ ਤਸਵੀਰਾਂ ਬਣਾਉਣ ਲਈ— DinD ਅਤੇ ਵਿਕਲਪ (ਜਦੋਂprivileged/ Docker ਸਰਵਿਸ ਰਨਰ ਮੁੱਲਾਂ ਵਿੱਚ ਸਰਗਰਮ ਹੋਵੇ ਤਾਂ ਇਹ ਸੰਬੰਧਿਤ ਹੈ)।

ਰਾਤ-ਅਤੇ-ਸ਼ਨੀਵਾਰ ਦੇ ਖਰਚੇ ਦੇ ਨਿਯੰਤਰਣ ਲਈ, ਇਹ ਜੋੜੋ: (1) Kubernetes ਚਲਾਉਣ ਵਾਲੇ ਜੋਬ ਪੋਡਸ ਜੋ ਸਿਫ਼ਰ ਤੱਕ ਜਾਂਦੇ ਹਨ, (2) ਚਾਰਟconcurrentਅਤੇ ਆਟੋਸਕੇਲਰਨੀਤੀਆਂਜਿਨ੍ਹਾਂ ਵਿੱਚ ਅਧਿਕਤਮ ਸਮੇਂ ਤੋਂ ਬਾਹਰidle_count = 0ਹੈ, ਅਤੇ (3) ਕਲਸਟਰ/ਨੋਡ ਆਟੋਸਕੇਲਿੰਗ ਤਾਂ ਜੋ ਖਾਲੀ ਨੋਡਸ ਪੂਲ ਤੋਂ ਬਾਹਰ ਜਾਣ — ਜਿਵੇਂ ਕਿ ਖੰਡ 6–7 ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ।

16. ਵੀਡੀਓ ਅਤੇ ਰਿਪੋ ਵਿੱਚ ਮੈਪਿੰਗ ਵਾਪਸ

ਯੂਟਿਊਬ ਸੈਸ਼ਨ —ਲਗਭਗ ~20 ਮਿੰਟਾਂ ਵਿੱਚ ਪੂਰਾ GitLab। Kubernetes ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ GitLab Runner ਵਰਕਲੋਡਾਂ ਨੂੰ ਆਟੋਸਕੇਲਿੰਗ ਕਰਨਾ— GitLab ਨੂੰ Kubernetes 'ਤੇ ਦਿਖਾਉਂਦਾ ਹੈ, Helm ਰਾਹੀਂ ਰਨਨਰਸ, ਅਤੇ ਹਾਈਪਰਸਕੇਲ ਕੋਸਟ ਕਹਾਣੀ: ਇਨਫਰਾਸਟਰਕਚਰ ਨੂੰ ਡਾਇਨਾਮਿਕ ਤੌਰ 'ਤੇ ਪ੍ਰੋਵਾਈਜ਼ਨ ਅਤੇ ਡੀ-ਪ੍ਰੋਵਾਈਜ਼ਨ ਕਰੋ ਤਾਂ ਜੋ ਤੁਸੀਂ ਆਰਾਮੀ ਰਾਤਾਂ ਅਤੇ ਹਫ਼ਤੇ ਖਰਚੇ ਦੀਆਂ ਸਿਖਰ ਦਰਾਂ ਨੂੰ ਨਾ ਭੁਗਤਾਨ ਕਰ ਰਹੇ ਹੋ। ਇਸ ਰਿਪੋ ਵਿੱਚ ਕੋਰਸ ਬਿਲਡ ਪ੍ਰਮਪਟgitlab-runners-k3s-hyperscale-course.prompt.mdਦੀ ਵਰਤੋਂ ਕਰੋ, ਅਤੇ ਉੱਪਰ ਦਿੱਤੇ ਅਧਿਕਾਰਤ ਡਾਕੂਮੈਂਟਸ ਨੂੰ ਵਰਜ਼ਨਡ ਸੋਚੇ ਜਾਣ ਵਾਲੇ ਸੱਚ ਦੇ ਰੂਪ ਵਜੋਂ ਵਰਤੋ। ਇਸੇ ਆਭਾਸਾਂ ਦੇ ਗੈਰ-ਤਕਨੀਕੀ ਫਰੇਮਿੰਗ ਲਈ, ਦੇਖੋਆਰਾਮੀ CI ਲਈ ਭੁਗਤਾਨ ਬੰਦ ਕਰੋ।

ਬੰਦ ਹੋਣਾ

Kubernetes ਸਿਰਫ਼ GitLab ਰਨਨਰਸ ਨੂੰ ਹੋਸਟ ਨਹੀਂ ਕਰਦਾ। ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਵਰਤਿਆ ਜਾਵੇਗਾ, ਇਹ CI ਦੀ ਅਰਥਵਿਵਸਥਾ ਨੂੰ ਬਦਲਦਾ ਹੈ:ਡਿਮਾੰਡ 'ਤੇ ਪ੍ਰੋਵਾਈਜ਼ਨ ਕਰੋ, ਆਰਾਮੀ ਹੋਣ 'ਤੇ ਡੀ-ਪ੍ਰੋਵਾਈਜ਼ਨ ਕਰੋ, ਜਦੋਂ ਮਨੁੱਖ ਘਰ ਜਾਣ ਤੇ CPU/RAM/ਸਟੋਰੇਜ ਨੂੰ ਵਾਪਸ ਕਰੋ। ਇਹ ਹੀ ਹਾਈਪਰਸਕੇਲ ਪੈਟਰਨ ਹੈ — ਜੋ ਕਿਸੇ ਟੀਮ ਨੂੰ ਉਪਲਬਧ ਹੈ ਜੋ ਇੱਕ ਖੜ੍ਹੀ ਫਲੀਟ ਨੂੰ ਪੋਡਾਂ ਦੀ ਕਤਾਰ ਨਾਲ ਬਦਲਣ ਲਈ ਤਿਆਰ ਹੈ।

ਵੀਡੀਓ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ, ਲੈਬ ਵਿੱਚ ਓਪਰੇਟਰ + ਰਨਨਰ Helm ਨੂੰ ਖੜ੍ਹਾ ਕਰੋ, ਨੋਡ ਆਟੋਸਕੇਲਿੰਗ ਨੂੰ ਚਾਲੂ ਕਰੋ, ਅਤੇ ਫਿਰ ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਸ਼ਨੀਵਾਰ ਅੰਤ ਵਿੱਚ ਬਿਲ 'ਤੇ ਸ਼ਾਂਤ ਲੱਗਦਾ ਹੈ।

Workstation ਦੁਆਰਾ ਪ੍ਰਕਾਸ਼ਿਤ।

ਇਹ ਲੇਖ ਸਾਂਝਾ ਕਰੋ

Technology ਵਿੱਚ ਹੋਰ

Big Prometheus at Scale: Pros, Cons, and a MoSCoW Map of Observability Tools

Big Prometheus at Scale: Pros, Cons, and a MoSCoW Map of Observability Tools

Workstation rewrite of the Big Prometheus problem space: Thanos, Cortex/Mimir, VictoriaMetrics, M3/Chronosphere — plus MoSCoW across OTEL, Grafana, SaaS APM and more

ਹੋਰ ਪੜ੍ਹੋ
WSL Vault Technical Deep Dive: Zero-Trust Secrets, Dual Control, MFA & Multi-Region HA

WSL Vault Technical Deep Dive: Zero-Trust Secrets, Dual Control, MFA & Multi-Region HA

Technical deep dive: envelope hierarchy, dual-control workflows, MFA, leases, active/active multi-region HA, feature tours, and presentation chapters

ਹੋਰ ਪੜ੍ਹੋ
Workstation AI Shop on Ring Promoter: Orbit, Version-Verified Health and the Path from INT to PROD

Workstation AI Shop on Ring Promoter: Orbit, Version-Verified Health and the Path from INT to PROD

Technical guide: shop Helm/CI mapping, Orbit semantics, version-verified health for the AI agent, secrets per ring, promote API, and a production checklist

ਹੋਰ ਪੜ੍ਹੋ