Բեռնել Kubernetes-ի կոնֆիգուրացիան | B4N1

Բեռնել Kubernetes-ի կոնֆիգուրացիան

3 months ago · b4n1 Read time: 4 min

ZeroOps. DevOps-ի ավտոմատացման ապագան AI գործակալների հետ

Ներածություն

Ծրագրային ապահովման մշակման լանդշաֆտը արագորեն զարգանում է՝ պայմանավորված հավելվածների ավելի արագ, արդյունավետ և հուսալի առաքման աճող պահանջարկով: DevOps-ը՝ պրակտիկաների մի շարք, որը համատեղում է ծրագրային ապահովման մշակումն ու գործառնությունները, կարևոր դերակատարում է ունեցել այս նպատակին հասնելու համար: Այնուամենայնիվ, DevOps-ի ավանդական մոտեցումները հաճախ հիմնվում են ձեռքով գործընթացների, սկրիպտավորման և ավտոմատացման գործիքների վրա, որոնք կարող են ժամանակատար և սխալներ առաջացնել: Հենց այստեղ է գալիս ZeroOps-ը. նորարարական մոտեցում, որն օգտագործում է AI գործակալներին DevOps-ի առաջադրանքները ավտոմատացնելու համար՝ դարձնելով այն խաղի փոփոխող ժամանակակից ծրագրային ապահովման մշակման համար: Ի՞նչ է ZeroOps-ը:

ZeroOps-ը հեղափոխական հայեցակարգ է, որի նպատակն է վերացնել ձեռքով DevOps-ի առաջադրանքների անհրաժեշտությունը՝ օգտագործելով AI-ով աշխատող գործակալներ: Այս գործակալները սովորում են շրջակա միջավայրից, հարմարվում փոփոխվող պայմաններին և առաջադրանքներն ինքնուրույն կատարում՝ ազատելով մարդկային ռեսուրսները բարձր մակարդակի որոշումների կայացման և ռազմավարական պլանավորման համար: ZeroOps-ը միայն ավտոմատացման մասին չէ. դա ինքնաբուժող, ինքնաօպտիմիզացնող համակարգ ստեղծելու մասին է, որը կարող է հարմարվել ծրագրային ապահովման մշակման անընդհատ փոփոխվող լանդշաֆտին: AI-ի վրա աշխատող ZeroOps-ի տեխնիկական իրականացում

ZeroOps-ի տեխնիկական իրականացումը ներառում է մի քանի հիմնական բաղադրիչներ.

  1. AI Agents. Սրանք ծրագրային ծրագրեր են, որոնք օգտագործում են մեքենայական ուսուցման ալգորիթմներ՝ շրջակա միջավայրից սովորելու և փոփոխվող պայմաններին հարմարվելու համար: AI գործակալները կարող են վերապատրաստվել տվյալների մի շարք աղբյուրների վրա, ներառյալ տեղեկամատյանները, չափումները և կազմաձևման ֆայլերը: 2. Գիտելիքի գրաֆիկ. Գիտելիքի գրաֆիկը տվյալների կառուցվածք է, որը ներկայացնում է փոխհարաբերությունները տարբեր սուբյեկտների միջև, ինչպիսիք են հավելվածները, ծառայությունները և ենթակառուցվածքի բաղադրիչները: AI գործակալները օգտագործում են գիտելիքների գրաֆիկը շրջակա միջավայրի մասին տրամաբանելու և որոշումներ կայացնելու համար: 3. Նվագախմբի շարժիչ. Նվագախմբի շարժիչը պատասխանատու է AI գործակալների կողմից ընդունված որոշումների կատարման համար: Այն կարող է լինել բեռնարկղային նվագախմբի գործիք, ինչպիսին է Kubernetes-ը կամ ամպի վրա հիմնված հարթակ, ինչպիսին է AWS Lambda-ն: 4. Ինտեգրում DevOps Tools-ի հետ. ZeroOps գործակալները կարող են ինտեգրվել հայտնի DevOps գործիքներին, ինչպիսիք են Jenkins-ը, GitLab CI/CD-ն և Docker-ը, ավտոմատացնելու առաջադրանքները և աշխատանքային հոսքերը: Գործնական իրականացում. պարզ օրինակ

Եկեք դիտարկենք ZeroOps գործակալի մի պարզ օրինակ, որն ավտոմատացնում է վեբ հավելվածի տեղակայումը Docker-ի և Kubernetes-ի միջոցով: Այս օրինակի համար մենք կօգտագործենք Python-ը որպես ծրագրավորման լեզու: «Պիթոն». ներմուծում OS ներմուծման դոկեր kubernetes ներմուծման հաճախորդից, config

config.load_kube_config()

Ստեղծեք Docker հաճախորդ

docker_client = docker.from_env()

Ստեղծեք Kubernetes-ի հաճախորդ

k8s_client = հաճախորդ.ApiClient()

Սահմանեք տեղակայման կոնֆիգուրացիան

deployment_config = { "apiVersion": "apps/v1", «տեսակ»: «Տեղակայում», «մետատվյալներ»: { "name": "my-web-app" }, "spec": { «կրկնօրինակներ»՝ 3, «ընտրիչ»: { «matchLabels»: { "app": "my-web-app" } }, "կաղապար": { «մետատվյալներ»: { «պիտակներ»: { "app": "my-web-app" } }, "spec": { «կոնտեյներներ»: { "name": "my-web-app", "image": "my-web-app:last" } ] } } } }

Ստեղծեք Kubernetes տեղակայում

k8s_client.create_namespaced_deployment(body=deployment_config, namespace=default")

Կառուցեք և մղեք Docker պատկերը

docker_client.images.build(path="/path/to/my-web-app", tag="my-web-app:latest") docker_client.images.push ("my-web-app: վերջին")

Թարմացրեք Kubernetes-ի տեղակայումը նոր պատկերով

k8s_client.patch_namespaced_deployment(body={"spec": {"template": {"spec": {"containers": [{"name": "my-web-app", "image": "my-web-app:latest"}]}}}}, name="my-web-app", namespace")="default"


Կոդի այս հատվածը ցույց է տալիս, թե ինչպես է ZeroOps գործակալը կարող է ավտոմատացնել վեբ հավելվածի տեղակայումը Docker-ի և Kubernetes-ի միջոցով: Գործակալն օգտագործում է Kubernetes API-ն՝ տեղակայում ստեղծելու, Docker պատկեր ստեղծելու և մղելու և տեղակայումը նոր պատկերով թարմացնելու համար: **Թոփ 5-10 ամենաշատ օգտագործվող հրամաններ/հատվածներ**

Ահա ZeroOps-ի համար առավել հաճախ օգտագործվող հրամաններից և հատվածներից մի քանիսը.

1. **`docker build`**. Dockerfile-ից կառուցում է Docker պատկեր: Բաշ
docker build -t my-web-app . ```
2.

**`docker push`**. Դոկերի պատկերը մղում է գրանցամատյան: Բաշ
docker push my-web-app:last
  1. kubectl create. Ստեղծում է Kubernetes ռեսուրս, օրինակ` տեղակայում կամ pod: Բաշ kubectl ստեղծել տեղակայում my-web-app --image=my-web-app:last
4.

**`kubectl patch`**. Թարմացնում է Kubernetes-ի ռեսուրսը, օրինակ` տեղակայումը կամ pod-ը: Բաշ
kubectl patch-ի տեղակայում my-web-app --patch '{"spec":{"template":{"spec":{"containers":[{"name":"my-web-app","image":"my-web-app:latest"}]}}}}'
  1. k8s_client.create_namespaced_deployment. Ստեղծում է Kubernetes տեղակայում` օգտագործելով Kubernetes API: «Պիթոն». k8s_client.create_namespaced_deployment(body=deployment_config, namespace=default")
6. **`docker_client.images.build`**. Ստեղծում է Docker պատկեր՝ օգտագործելով Docker API: «Պիթոն».
docker_client.images.build(path="/path/to/my-web-app", tag="my-web-app:latest")
  1. docker_client.images.push. Docker պատկերը մղում է գրանցամատյան՝ օգտագործելով Docker API: «Պիթոն». docker_client.images.push ("my-web-app: վերջին")
8. **`k8s_client.patch_namespaced_deployment`**. Թարմացնում է Kubernetes-ի տեղակայումը` օգտագործելով Kubernetes API: «Պիթոն».
k8s_client.patch_namespaced_deployment(body={"spec": {"template": {"spec": {"containers": [{"name": "my-web-app", "image": "my-web-app:latest"}]}}}}, name="my-web-app", namespace")="default"
  1. config.load_kube_config. բեռնում է Kubernetes-ի կոնֆիգուրացիան` օգտագործելով Kubernetes API-ը: «Պիթոն». config.load_kube_config()
10. **`docker.from_env()`**. Ստեղծում է Docker հաճախորդ՝ օգտագործելով Docker API: «Պիթոն».
docker_client = docker.from_env()

Վիզուալիզացիա

Ահա մի պարզ գծապատկեր, որը ցույց է տալիս օրական տեղակայումների քանակը 30 օրվա ընթացքում.

{
  «տեսակ»՝ «բար»,
  "տվյալներ": {
    "labels": ["Day 1", "Day 2", "Day 3", "Day 4", "Day 5", "Day 6", "Day 7", "Day 8", "Day 9", "Day 10", "Day 11", "Day 12", "Day 13", "Day 14", "Day 15", "Day 16", "Day 17", «Օր 18», «Օր 19», «Օր 20», «Օր 21», «Օր 22», «Օր 23», «Օր 24», «Օր 25», «Օր 26», «Օր 27», «Օր 28», «Օր 29», «Օր 30»],
    «տվյալների հավաքածուներ»:
      {
        «պիտակ»: «Տեղակայումներ»,
        «տվյալներ»: [10, 12, 15, 18, 20, 22, 25, 28, 30, 32, 35, 38, 40, 42, 45, 48, 50, 52, 55, 58, 60, 66, 7, 65, 65, 58, 60, 66, 7, 65 80, 82]
      }
    ]
  },
  «ընտրանքներ»: {
    «վերնագիր»: {
      «ցուցադրում»: ճշմարիտ,
      "text": "Օրական տեղակայումներ"
    },
    «կշեռքներ»: {
      «yAxes»:
        {
          «ցուցադրում»: ճշմարիտ,
          "ticks": {
            «beginAtZero»: ճիշտ է
          }
        }
      ]
    }
  }
}

Այս գծապատկերը ցույց է տալիս տեղակայումների կայուն աճ 30-օրյա ժամանակահատվածում, որի գագաթնակետն է 25-րդ օրը: Եզրակացություն

ZeroOps-ը DevOps-ի ավտոմատացման հեղափոխական մոտեցում է, որն օգտագործում է AI գործակալները՝ առաջադրանքները և աշխատանքային հոսքերը ավտոմատացնելու համար: Օգտագործելով AI-ի վրա աշխատող գործակալներ՝ ծրագրավորողները կարող են կենտրոնանալ ավելի բարձր մակարդակի որոշումների կայացման և ռազմավարական պլանավորման վրա, մինչդեռ գործակալները կատարում են առօրյա խնդիրները: ZeroOps-ի տեխնիկական իրականացումը ներառում է մի քանի հիմնական բաղադրիչներ, ներառյալ AI գործակալները, գիտելիքների գրաֆիկները, նվագախմբային շարժիչները և DevOps գործիքների հետ ինտեգրումը: ZeroOps-ի օգնությամբ ծրագրավորողները կարող են հասնել ավելի արագ, արդյունավետ և հուսալի հավելվածների առաքում, ինչը այն դարձնում է կարևոր գործիք ժամանակակից ծրագրային ապահովման մշակման համար:


Have Questions?

Let's Talk

Contact me on LinkedIn