Kube Prometheus Stack аддонын жаңарту
Cloud Containers сервисінде жасайтын Kubernetes кластерлерінде Kube Prometheus Stack аддонының бірнеше нұсқасы қолжетімді. Бұл аддонды VK Cloud құралдарымен жаңарту қолжетімсіз, бірақ аддонды қолмен жаңартуға болады.
Kube Prometheus Stack аддонын 36.2.0 нұсқасынан 54.2.2 нұсқасына жаңарту үшін аддонның ағымдағы нұсқасын жойып, содан кейін жаңа нұсқасын орнату қажет. Сондықтан жаңарту процесі аддонның ағымдағы нұсқасының ортасын сақтап, кейін оны аддонның жаңа нұсқасымен қайта пайдалану үшін дайындауды қамтиды.
-
Егер Cloud Containers сервисінде жаңарту қажет Kube Prometheus Stack аддоны бар бұрыннан бар Kubernetes кластері болса, бұл қадамды өткізіп жіберіңіз.
Әйтпесе, аддонды жаңарту орындалатын тестілік кластер жасаңыз:
-
1.26.5нұсқасындағы Kubernetes кластерін жасаңыз.Кластерді жасау кезінде Сыртқы IP тағайындау опциясын таңдаңыз. Кластердің қалған параметрлерін өз қалауыңыз бойынша таңдаңыз.
-
Кластерге
36.2.0нұсқасындағы Kube Prometheus Stack аддонын орнатыңыз.Аддонды жылдам орнатуды орындаңыз (аддон баптауының кодын өңдеусіз).
-
-
kubectlкөмегімен кластерге қосыла алатыныңызға көз жеткізіңіз.Қосылу үшін VK Cloud жеке кабинетінен жүктелген кластер конфигурациясы файлын (kubeconfig) пайдаланыңыз.
-
Аддонның қолжетімді және жұмыс істеп тұрғанын тексеріңіз. Ол үшін Grafana веб-интерфейсіне қол жеткізіңіз.
-
Егер утилита әлі орнатылмаған болса, Helm
3.0.0немесе одан жоғары нұсқасын орнатыңыз.Орнату үшін кластермен үйлесімді Helm нұсқасын таңдаңыз.
-
Кластер үшін kubeconfig-ті көрсететін орта айнымалысын орнатыңыз. Бұл аддонды жаңарту кезінде
kubectlжәнеhelmқұралдарымен жұмыс істеуді жеңілдетеді.kubeconfig файлдарыңызға дейінгі жол төмендегі мысалдан өзгеше болуы мүмкін.
Linux (bash)/macOS (zsh)Windows (PowerShell)export KUBECONFIG="/home/user/.kube/kubernetes-cluster-1234_kubeconfig.yaml"
-
Аддонды баптау кодының өңдеу режиміне өтіңіз.
Аддонды баптау кодын өзгертпеңіз.
Келесі мәліметтерді жазып алыңыз:
- Қолданба атауы (әдепкі бойынша
kube-prometheus-stack). - Аттар кеңістігінің атауы (әдепкі бойынша
prometheus-monitoring). - Аддонды баптаудың толық коды.
- Қолданба атауы (әдепкі бойынша
-
Қолданба мен аттар кеңістігінің осы атауларын көрсететін орта айнымалыларын орнатыңыз. Бұл жаңарту кезінде кейінгі жұмысты жеңілдетеді.
Айнымалыларыңыздың мәндері төмендегі мысалдан өзгеше болуы мүмкін.
Linux (bash)/macOS (zsh)Windows (PowerShell)export CHART_NAME="kube-prometheus-stack"export NAMESPACE="prometheus-monitoring" -
Аддон пайдаланатын Persistent Volume Claims (PVCs) және тұрақты томдар (persistent volumes, PVs) туралы ақпарат алыңыз. Олар жиналатын метрикаларды, сондай-ақ аддонның жұмысына қажет басқа деректерді сақтау үшін қолданылады.
kubectl -n $NAMESPACE get pvcКоманда шығысында томдардың өлшемі (
CAPACITY) көрсетілген PVCs (NAME) және оларға сәйкес PVs (VOLUMES) тізімі болады. Бұл ақпаратты жазып алыңыз, ол кейін қажет болады.
Егер сақтау класына қатысты өзгерістер аддонды баптау кодына енгізілмесе, әдепкі бойынша аддонға арналған томдар босату саясатын Retain қолдана отырып жасалады. Сондықтан аддонды жай ғана жойсаңыз, деректері бар тұрақты томдар жойылады. Бұл аддон жұмыс істеген уақыт ішінде жиналған метрикалардың, сондай-ақ аддонның жұмысына қажет басқа деректердің жоғалуына әкеледі.
Бұған қоса, аддон пайдаланатын келесі Kubernetes ресурстары да аддонның жаңа нұсқасын орнатуға кедергі келтіруі мүмкін:
- Аддонның жұмысына қажет Custom Resource Definitions (CRDs) жиынтығы.
- Аддонға тұрақты томдарды пайдалануға мүмкіндік беретін Persistent Volume Claims (PVCs) жиынтығы.
Аддонды жаңартпас бұрын, ол пайдаланатын тұрақты томдарды жойылудан қорғаңыз, сондай-ақ төменде келтірілген тәсілдердің бірімен аталған Kubernetes ресурстарын жойыңыз.
-
Скрипт коды бар файл жасаңыз:
Скрипт келесі әрекеттерді орындайды:
- Аддон орнатылған аттар кеңістігінде жасалған PVCs-пен байланысқан тұрақты томдарды анықтайды. Осы тұрақты томдар үшін скрипт
Retainбосату саясатын орнатады. Бұл ағымдағы аддон нұсқасы жойылғанда осы томдар жойылмауы үшін қажет. - Аддонның ағымдағы нұсқасының Helm-чартын (chart) жояды. Бұл аддон пайдаланатын PVCs және CRDs жиынтықтарын сәтті жою үшін қажет.
- Аддон орнатылған аттар кеңістігінен PVCs жиынтығын жояды. Бұл PVs-ті PVCs-тен ажыратып, кейін осы PVs-ті аддонның жаңа нұсқасымен қайта пайдалану үшін қажет.
- Осы PVCs-пен байланысқан тұрақты томдардағы жойылған PVCs-ке сілтемелерді тазартады. Бұл тұрақты томдар байланысу үшін қолжетімді болады (PVs күйі:
Available) және орнатылғаннан кейін оларды аддонның жаңа нұсқасы қайта пайдаланады. - Аддон пайдаланған CRDs жиынтығын жояды.
- Егер скрипт осы аттар кеңістігі үшін іске қосылса,
prometheus-monitoringаттар кеңістігін жояды.
- Аддон орнатылған аттар кеңістігінде жасалған PVCs-пен байланысқан тұрақты томдарды анықтайды. Осы тұрақты томдар үшін скрипт
-
Скрипт коды бар файлды орындалатын етіңіз:
chmod +x prepare-for-addon-update.sh -
Скрипт қандай параметрлермен орындалатынын анықтаңыз:
bash prepare-for-addon-update.sh -hҚолданыстағы параметрлер мен олардың әдепкі мәндері көрсетілетін анықтама шығарылады:
-h: анықтаманы шығару.-k: kubeconfig файлына дейінгі жол. Әдепкі мәні$KUBECONFIGорта айнымалысынан алынады, егер ол орнатылған болса.-c: кластермен жұмыс істеу кезінде пайдаланылатын kubeconfig контекстінің атауы. Әдепкі мәні: бос жол.-n: аддон орнатылған аттар кеңістігінің атауы. Әдепкі мәні:prometheus-monitoring.-r: аддон орнатылған қолданбаның атауы. Аддонға арналған Helm-чарт атауымен сәйкес келеді. Әдепкі мәні:kube-prometheus-stack.-d:kubectlүшін --dry-run аргументінің мәні. Әдепкі мәні:none. Скриптті сынақ режимінде іске қосу үшінserverнемесеclientпайдаланыңыз: кластерге ешқандай өзгеріс енгізілмейді.
-
Скриптті іске қосыңыз.
Қажетті параметрлерді көрсете отырып, команданы орындаңыз. Егер параметрдің әдепкі мәні сізге сәйкес келсе, оны көрсетпеуге болады.
bash prepare-for-addon-update.sh \-k <путь к файлу kubeconfig> \-c <название контекста kubeconfig> \-n <название пространства имен> \-r <название приложения> \-d <значение аргумента --dry-run для kubectl>Скрипт жұмысы туралы егжей-тегжейлі хабарламалар шығарылады. Соның ішінде шығыста келесі хабарламалар болуы тиіс:
Setting retain policy for the Prometheus PVs...Deleting Prometheus chart...Deleting Prometheus PVCs...Clearing Prometheus PV claim references...Clearing Prometheus CRDs...Deleting Prometheus namespace...Completed!
-
VK Cloud интерфейстерін пайдаланып, аддонның ағымдағы нұсқасын жойыңыз.
-
Кластерге
54.2.2нұсқасындағы Kube Prometheus Stack аддонын орнатыңыз.Стандартты орнатуды келесі түрде орындаңыз:
-
Аддонның алдыңғы нұсқасын орнату кезінде пайдаланылған қолданба мен аттар кеңістігінің сол атауларын беріңіз.
-
Бұрын алынған аддонның алдыңғы нұсқасының баптау кодын зерттеңіз. Аддонның келесі компоненттері үшін сақтау орнын баптауға жауап беретін код фрагменттерін табыңыз:
GrafanaAlert ManagerPrometheusgrafana:...persistence:enabled: truestorageClassName: "csi-ceph-hdd-gz1"accessModes:- ReadWriteOncesize: 1Gi... -
Орнату жоспарланған аддонның жаңа нұсқасының баптау кодын зерттеңіз.
Егер сақтау орнын баптауға жауап беретін код фрагменттері бұрын алынғандардан өзгеше болса, оларды түзетіңіз. Grafana, Alert Manager және Prometheus үшін сақтау орнының баптаулары аддонның алдыңғы нұсқасында пайдаланылған ұқсас баптаулармен дәл сәйкес келуі тиіс.
-
(Опционалды түрде) Аддонды баптау кодына басқа өзгерістер енгізіңіз.
Егер аддонның алдыңғы нұсқасын орнату кезінде
grafana.adminPasswordөрісінде Grafana-ға кіру құпиясөзін көрсеткен болсаңыз, оны қайта көрсету қажет емес. Аддонның жаңа нұсқасы сақтау орны ретінде бұрынғы PVs-ті пайдаланады, сондықтан құпиясөз өзгеріссіз қалады. Бұл өрісті бос қалдырсаңыз да, аддонның жаңа нұсқасын орнату Grafana-ға кіру құпиясөзін өзгертпейді: Grafana үшін құпиясөзі бар secret жасалады, бірақ ол пайдаланылмайды. -
Аддонды орнатыңыз.
Орнату процесі ұзақ уақыт алуы мүмкін. Оның аяқталуын күтіңіз.
-
-
Аддон пайдаланатын Persistent Volume Claims (PVCs) және тұрақты томдар (persistent volumes, PVs) туралы ақпарат алыңыз:
kubectl -n $NAMESPACE get pvcКоманда шығысы аддонның алдыңғы нұсқасы үшін бұрын орындалған команданың шығысына ұқсас болуы тиіс. Мысалы,
alertmanager...PVC-і бұрын Alert Manager пайдаланған сол PV-пен байланысқан болуы тиіс. Prometheus пен Grafana үшін де дәл солай.
Grafana веб-интерфейсіне қол жеткізіңіз. Қосылу үшін аддонның алдыңғы нұсқасымен пайдаланылған сол құпиясөзді қолданыңыз. Егер Grafana құпиясөзін ұмытып қалсаңыз, оны қалпына келтіріңіз.
Grafana-ға сәтті қосылу аддонның сәтті жаңартылғанын көрсетеді.
Жұмыс істеп тұрған кластер тарификацияланады және есептеу ресурстарын тұтынады. Егер сіз кластерді тестілеу мақсатында жасап, ол енді қажет болмаса:
- тоқтатыңыз оны кейінірек пайдалану үшін;
- жойыңыз оны біржола.