VK Cloud logo

Жылдам бастау

Жылдам бастау сервиспен жұмысты бастауға және оның мүмкіндіктерімен танысуға көмектеседі.

Жылдам бастаудың барлық қадамдарынан өткен соң, сіз:

  1. Шағын Kubernetes кластерін жасайсыз.
  2. Оған қосылуды үйренесіз.
  3. Kubernetes-пен және оған арналған аддондармен танысасыз:
    1. Басқару мен мониторингке арналған құралдарды қосасыз.
    2. Docker-образдарды Docker тізіліміне жүктейсіз.
    3. Жүктелген образдар негізінде қарапайым қолданбаларды, VK Object Storage қоймасын пайдалану мүмкіндігімен, орналастырасыз.
    4. Ingress-контроллер арқылы орналастырылған қолданбаларға қол жеткізуді ұсынасыз.
    5. Бұл қолданбалардың шынымен жұмыс істейтініне көз жеткізесіз.

1. Кластерді жасаңыз және баптаңыз

1.1. Кластерді жасаңыз

  1. Өтіңіз VK Cloud жеке кабинетіне.

  2. Кластер орналастырылатын жобаны таңдаңыз.

  3. КонтейнерлерКластеры Kubernetes бөліміне өтіңіз.

  4. Егер таңдалған жобада әлі бірде-бір кластер болмаса, Кластер жасау түймесін басыңыз. Әйтпесе Қосу түймесін басыңыз.

  5. Новое поколение опциясын таңдап, Жалғастыру түймесін басыңыз.

  6. Конфигурация блогында қолжетімді нұсқалардың ішінен Kubernetes-тің соңғы нұсқасын таңдаңыз.

  7. Мастер узлы блогындағы Баптау түймесін басып, мыналарды орнатыңыз:

    1. Кластер атауы: мысалы, vk-cloud-k8s-quickstart.

    2. Кластер түрі: Стандартный.

    3. Қолжетімділік аймағы: Москва (MS1).

    4. Қалған баптауларды өзгеріссіз қалдырыңыз.

  8. Желі және баптаулар блогындағы Баптау түймесін басып, мыналарды орнатыңыз:

    1. Желі: Жаңа желі жасау.
    2. Сыртқы IP тағайындау: осы опцияның таңдалғанына көз жеткізіңіз.
    3. Қалған баптауларды өзгеріссіз қалдырыңыз.
  9. Торап топтары блогындағы Баптау түймесін басып, мыналарды орнатыңыз:

    1. Node-тораптар түрі: STD3-4-4.

    2. Қолжетімділік аймағы: Москва (MS1).

    3. Қалған баптауларды өзгеріссіз қалдырыңыз.

  10. Жасау түймесін басыңыз.

Кластерді жасау аяқталғанша күтіңіз, бұл процесс ұзақ уақыт алуы мүмкін.

1.2. Кластерге аддондарды орнатыңыз

  1. docker-registry аддонын орнатыңыз.

    Docker тізіліміне қол жеткізу деректерін жазып алыңыз.

  2. kube-prometheus-stack аддонын орнатыңыз.

    Grafana веб-интерфейсіне қол жеткізу құпиясөзін жазып алыңыз.

  3. ingress-nginx аддонын әдепкі параметрлермен орнатыңыз.

    Жүктеме теңгергішіне арналған Floating IP-мекенжайды жазып алыңыз.

Одан әрі командалар мен конфигурациялық файлдарда мысал ретінде келесі мәндер пайдаланылады. Оларды өзіңіз үшін өзекті мәндермен ауыстырыңыз.

Параметр
Мәні
Ingress-контроллерге арналған
жүктеме теңгергішінің IP-мекенжайы
192.0.2.2
Docker тізілімінің эндпоинт URL-і
192.0.2.22:5000
Docker тізілімі пайдаланушысының логині
registry
Docker тізілімі пайдаланушысының құпиясөзі
registry-password-123456
Grafana үшін admin пайдаланушысының құпиясөзі
grafana-password-123456

1.3. Кластермен жұмыс істеуге арналған ортаны баптаңыз

Кластермен жұмыс істейтін хостты баптаңыз. Бұл нақты компьютер де, виртуалды машина да болуы мүмкін.

Хостқа келесі құралдарды орнатыңыз:

2. Кластерге қосылыңыз

  1. Жеке кабинетте кластерге қосылу орындалатын пайдаланушы үшін Администратор Kubernetes рөлін қосыңыз:

    1. Өтіңіз VK Cloud жеке кабинетіне.
    2. Бұрын жасалған кластер орналасқан жобаны таңдаңыз.
    3. Қолжетімділіктерді басқару бөліміне өтіңіз.
    4. Қажетті пайдаланушы үшін  батырмасын басып, Өңдеу тармағын таңдаңыз.
    5. Ашылмалы тізімнен Администратор Kubernetes рөлін таңдаңыз.
    6. Өзгерістерді сақтаңыз.
  2. Осы пайдаланушы үшін API арқылы қолжетімділікті белсендіріңіз.

  3. VK Cloud жеке кабинетінде кластер үшін kubeconfig алыңыз:

    1. Кластеры KubernetesКластеры Kubernetes бөліміне өтіңіз.
    2. Қажетті кластер үшін  батырмасын басып, Кластерге қол жеткізу үшін Kubeconfig алу тармағын таңдаңыз.
  4. kubectl пайдалану кезінде қосымша аргументтерді көрсетпеу үшін kubeconfig-ті ~/.kube директориясына жылжытыңыз.

    Төмендегі командаларда kubeconfig ~/Downloads директориясына mycluster_kubeconfig.yaml атауымен жүктелген деп есептеледі.

    mkdir ~/.kube && \mv ~/Downloads/mycluster_kubeconfig.yaml ~/.kube/config
  5. kubeconfig-ке жолды $KUBECONFIG орта айнымалысында көрсетіңіз:

    export KUBECONFIG=/home/user/.kube/mycluster_kubeconfig.yaml
  6. kubectl кластерге қосыла алатынын тексеріңіз:

    1. Команданы орындаңыз:

      kubectl cluster-info
    2. VK Cloud жеке кабинетінің пайдаланушы құпиясөзін енгізіңіз.

    Егер кластер қалыпты жұмыс істесе және kubectl онымен жұмыс істеуге бапталған болса, мынаған ұқсас ақпарат шығарылады:

    Kubernetes control plane is running at...CoreDNS is running at...To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

3. Кластер мониторингі құралдарына қол жеткізіңіз

Кластерде Prometheus және Grafana негізіндегі мониторинг құралдары бар аддон орнатылды.

  1. Терминалдың бөлек сессиясында команданы орындаңыз:

    kubectl -n prometheus-monitoring port-forward service/kube-prometheus-stack-grafana 8001:80
  2. Grafana веб-интерфейсін ашыңыз:

    1. Браузерде http://127.0.0.1:8001/ URL-іне өтіңіз.
    2. admin/grafana-password-123456 логин/құпиясөз жұбы арқылы авторизациядан өтіңіз.
    3. Егер құпиясөзді ауыстыру сұралса, оны ауыстырыңыз.
  3. Кластер ресурстары туралы ақпарат алу үшін бүйірлік мәзірден кез келген алдын ала бапталған дашбордты Dashboards → Browse таңдаңыз.

4. Қажетті образдарды Docker тізіліміне жүктеңіз

Кластерде Docker-образдар сақталатын Docker тізілімі аддоны орнатылды.

Өз образдарыңызды Docker тізіліміне орналастыру үшін:

  1. Docker тізілімін сенімді тізілімдер тізіміне қосыңыз:

    1. Docker daemon.json конфигурациялық файлына Docker тізілімі эндпоинтінің URL-і бар келесі параметрді қосыңыз:

      {  ...  "insecure-registries": [    "192.0.2.22:5000"  ],  ...}

      Бұл файлдың әртүрлі Docker Engine орнатылымдары үшін орналасуы Docker ресми құжаттамасында келтірілген.

    2. Docker Engine-ді қайта іске қосыңыз.

      Келесі әрекеттердің бірін орындаңыз:

      • Қайта іске қосу үшін командалардың бірін пайдаланыңыз:

        sudo systemd restart docker
        sudo service docker restart
      • Егер орнатылған болса, Docker Desktop графикалық интерфейсінен Docker Engine-ді қайта іске қосыңыз.

  2. Docker-образды жинаңыз:

    1. Файлдарға арналған директорияны жасап, оған өтіңіз:

      mkdir ~/image-build && cd ~/image-build
    2. Осы директорияға келесі файлдарды орналастырыңыз:

    3. Образды жинауды іске қосыңыз:

      docker build . -t 192.0.2.22:5000/nginx-k8s-demo:latest

    Образды жинаудың аяқталуын күтіңіз.

  3. Жиналған образды Docker тізіліміне орналастырыңыз:

    1. Тізілімге кіріңіз:

      docker login 192.0.2.22:5000 --username registry --password registry-password-123456
    2. Образды пуштаңыз:

      docker push 192.0.2.22:5000/nginx-k8s-demo:latest
    3. Образдың тізілімде бар екенін тексеріңіз:

      curl -k -X GET -u registry:registry-password-123456 https://192.0.2.22:5000/v2/_catalog

      Мынаған ұқсас ақпарат шығуы тиіс:

      {"repositories":["nginx-k8s-demo"]}
    4. Kubernetes-тен жүктелген образға қол жеткізу үшін Kubernetes құпиясын жасаңыз:

      kubectl create secret docker-registry k8s-registry-creds --docker-server=192.0.2.22:5000 --docker-username=registry --docker-password=registry-password-123456

5. Демо-қосымшаларды жайылдырыңыз

Docker тізіліміне жүктелген nginx-k8s-demo образы негізінде tea және coffee атты екі қосымша жайылдырылады. Әрбір қосымша үшін мыналар жасалады:

  • Деректер томдарын қосымша ішіне монтирлеу үшін Persistent Volume Claim.
  • Deployment, онда мыналар беріледі:
    • Реплика саны.
    • Подқа монтирлеуге арналған том.
  • Қосымшаға қолжетімділікті қамтамасыз ету үшін Service. Кейіннен Ingress-контроллер кіріс сұрауларын осы Service-ке қайта жібереді.

Қосымшаларды жайылдыру үшін:

  1. Файлдарға арналған директорияны жасап, оған өтіңіз:

    mkdir ~/k8s-deployments && cd ~/k8s-deployments
  2. Осы директорияға келесі файлдарды орналастырыңыз:

  3. Қосымшаларды жайылдырыңыз:

    kubectl apply -f deploy-coffee.yaml -f deploy-tea.yaml
  4. Жайылдырудың дұрыстығын тексеріңіз:

    Тәсілдердің бірін пайдаланыңыз:

    • kubectl: команданы орындаңыз.

      kubectl get pv
    • Grafana: Kubernetes → Compute Resources → Persistent Volumes дашбордын ашыңыз.

    tea және coffee deployments үшін Persistent Volume Claim арқылы жасалған көлемі 1 ГБ тұрақты томдардың бар екені туралы ақпарат көрінеді.

6. Демо-қосымшалар үшін Ingress баптаңыз

Кластерде пайдаланушылардың кіріс сұрауларын кластерде жайылдырылған қосымшаларға бағдарлауға мүмкіндік беретін NGINX Ingress-контроллері аддоны орнатылды.

Ingress-контроллер tea және coffee демо-қосымшалары жарияланған тиісті Service ресурстарына сұрауларды бағыттауы үшін:

  1. ~/k8s-deployments директориясына келесі файлды орналастырыңыз:

  2. Ingress ресурсын жайылдырыңыз:

    kubectl apply -f deploy-ingress.yaml
  3. Команданы орындап, kubectl көмегімен жайылдырудың дұрыстығын тексеріңіз:

    kubectl get ingress

    Жұмыс істеп тұрған Ingress ресурсының бар екені туралы ақпарат көрінеді.

7. Кластерде жасалған барлық ресурстардың жұмысқа қабілеттілігін тексеріңіз

Мысалдың жұмысқа қабілеттілігін тексеру үшін curl көмегімен жүктеме теңгергішінің 192.0.2.2 IP-мекенжайына сұраулар орындаңыз. Теңгергішпен байланысқан Ingress-контроллер бұл сұрауларды кейін қажетті қосымшаларға жеткізеді.

Сұраулар:

curl --resolve cafe.example.com:80:192.0.2.2 http://cafe.example.com/tea

Мынаған ұқсас ақпарат шығуы тиіс:

Server address: 10.100.109.3:8080Server name: tea-8697dc7b86-s5vgnDate: 24/Aug/2022:09:27:34 +0000URI: /teaRequest ID: ed83bd555afd25c103bfa05ee12cbfffRemote address (NGINX Ingress Controller): <Ingress-контроллерінің IP-мекенжайы>X-Forwarded-For (Request source): <сұрау орындалған хосттың IP-мекенжайы>K8S Persistent Volume status: present

Мұндай нәтиже мынаны көрсетеді:

  1. Кластерлік Docker тізіліміндегі Docker-образдарды пайдаланатын қолданбаларды іске қосуға болады.
  2. Persistent Volume Claim көмегімен VK Cloud сақтау орнын подтарға монтирлеуге болады.
  3. Кластермен бірге берілетін Ingress-контроллер дұрыс бапталған, себебі ол сұрау көзіне тиесілі нақты IP-мекенжайды көрсетеді.

Пайдаланылмайтын ресурстарды жойыңыз

Жұмыс істеп тұрған кластер есептеу ресурстарын тұтынады. Егер ол сізге енді қажет болмаса:

Әрі қарай не істеу керек?