Helm Kubernetes lưu trữ thông tin Release ở đâu ? – Cuongquach.com | Khi bạn dùng công cụ Helm để quản lý các ứng dụng dịch vụ được deploy lên hệ thống Kubernetes Cluster. Hẳn đã bao giờ bạn nghĩ thử Helm quản lý thông tin về các Release như thế nào không ? Do hiện tại Helm đã phát hành phiên bản 3, nên mình sẽ chỉ đề cập đến phiên bản Helm version 3 trong bài viết này nhé.
Helm Kubernetes lưu trữ thông tin Release ở đâu ?
Trong phiên bản Helm 3, thông tin trạng thái về ứng dụng dịch vụ sẽ được lưu trữ trên hệ thống Kubnernetes Cluster gồm :
- Release object : là một “running instance” của Chart kết hợp với Config.
- Release version secret : chứa thông tin thể hiện trạng thái của ứng dụng tại một thời điểm.
Khi Helm khởi tạo deploy một dịch vụ mới sẽ khởi tạo một Release object và một Release version secret . Khi mà Helm upgrade dịch vụ, sẽ yêu cầu một Release object đã tồn tại rồi từ đó chỉ cần tạo ra một phiên bản revision kế tiếp của Release version secret để lưu trữ thông tin của lần Release Object trong lần upgrade deploy mới.
Thông tin về các Release được lưu trữ ở phần cấu hình Secrets trong Kubernetes Cluster:
- Storage lưu trữ nằm trong namespace của Release.
- Cú pháp tên của secret helm release sẽ là : sh.helm.release.v1<release_name>.v<revision_version>
- Loại secret type là ‘helm.sh/release.v1’
- Dữ liệu thông tin Helm Release được chứa trong key ‘data.release’ của Secrets.
Giả sử mình đã khởi tạo một Helm Release dịch vụ Nginx.
# helm list --all-namespaces -a NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION nginx-test default 2 2020-03-06 16:49:08.618294 +0700 +07 deployed nginx-0.1.0 1.16.0
Ta sẽ kiểm tra xem công cụ Helm version 3 này sẽ lưu trữ thông tin dữ liệu về Release mà nó đã tạo ra ở đâu, từ đó hiểu thêm về cách Helm quản lý thông tin Release. Đầu tiên chúng ta biết là Helm 3 sẽ lưu trữ thông tin Release ở phần Secrets của Kubernetes.
# kubectl get secret -l "owner=helm" --all-namespaces NAMESPACE NAME TYPE DATA AGE default sh.helm.release.v1.nginx-test.v1 helm.sh/release.v1 1 22h default sh.helm.release.v1.nginx-test.v2 helm.sh/release.v1 1 22h
Chúng ta thấy có 2 Secret liên quan đến 2 revision của Release Helm ‘nginx-test’. Giờ chúng ta coi nội dung của một Secret Helm Release xem có gì nhé.
# kubectl get secrets -n default sh.helm.release.v1.nginx-test.v1 -o=yaml apiVersion: v1 data: release: SDRzSUFBQUFBQUFDLzdSWmUyK2p1cmIvS2hIM3o1dDJnSlJPRStuK0VXaER5SU0ycElIZ00wZEh0bkdBeGdZMmp5UmsxTzkrWlFoNXRKbk9uaTJkU2xXeFdWN3Y5VnNMOTZjUVFVYUVuaEQ1WWJTN3lVbVdDMjBoakZheDBQc3ByTUkweS8vamtZVEdKZkdFbmlDTHNuZ2pkbTdFKzFmcHZ0ZDU2TW5pclhML1hiNlQvbGY4M2hORm9TMVErTWRIUEVKSlhoRlhpd3luWVpLSGNTVDBCQ1BLY2tocEM4Y3M0VVJDVzhoeW1CZVowQk95SWlGcFJqemlDZTl0QVFjd3piblNqT1RRZ3pua3orZkdDVzFoUTlLczVpdmVTcmZpSjJuOTFwQlExcXBZdFZaeDJob1hpS1FSeVVrbXRBV1loUGFSd1VhdWRwTFRqblFyM1ZjODh6TGhRbUdTMEJERGl2VjdXNkF4WGd1OXFLQzBMZVNFSlJSeXJyMS9IWlU4Ym43N1QwQW9OKzAyVHlqWHNUSkdJSjFzTXc1VkdUcml2VEUwcWFlcEREbzc2ZzNwRnJ4S3ViYzBSZGN4WS9BYSsrT3cyMTNOa3Ura2ZQaExXOXQzV0I4VVFGTkZxQzk4eEFZNW1Lc2JFTlpyVnc0Q0hNMEtMWXczcTZVNEpwMHNOM1NMQWtZTE1PK0hpSGtKaXZ5aVBtZjRrNlhVMWFMOCsyU3Vyb0VEQXMvWmlZYW1QRUo5VUhxYTh1dzZFalUweFhHZG5RU1cwL3Jjb2l1RDVhaUVqa1dONGRiM2hpTUpzYWx2dmszOWxhYUttTkY4MGJFWllQVE8wSXpjQ1B2NVNSZTdBRnE5cnVTVzhYaldHVkYzYVZGRGYvS0Jiak4zYVdmY0g1Nnp5OGhjM1huT0lJTU9TSUF6ODkybHVqVjBKVURPb3RDb1I0MmhWWHFPOGxhZkg0akdvN3MzZEROMmw2TzlvWStvS3c4a0xDOThMSGU1bnlhZU02S1lLZFRUN2YyQmp3OFlwVWkzOW9ZK0tNRmN6YUFqSlo1dXI0Mmh0VEdHVmd5WFUzK3NqeFQrRE9icTB5dWRWbjZIamhJWlEzTUxuR2t5OFpNUkNOVVNPRHZxTGszYThIYmxidUhwZ3dSRjB5WTJUY3dTVDFNNzBObGxYRTlqYU85cis2YStPNjl0UDlyNW0xaUN5TTVRVFJzYW1uVElGZEdIanV0UEtBalEwS2E0VkNxZW4rSjNSdjliMmorUGRjWjlmOHF4L3JxMnZYLy84ay96N1lOOTUvNGRIWHcrb1NPS2REdkE4cUo0cmVXZGROS1VlUk9qeWJxbXIreUk3TUl0Ky9LMFZCOTRUa0ZIZXZVY3dPRFM5NDFRdlBBcmNIYjdDNTVEdFlTT0lvS3dINDZXMDN5MG5JYlg1RFQ2L2JrOFpmMzMxdkc0d2hVL2VjVE1EcndUSGpRNUZ5QTI4ejFtbDFpbUd4U3FBUzVWQ2N2MjJqamw5MXNkQ3pWem5SRkYydDM0aEQ5aVZaL1FVYWloalFvZzA0Sm95b0grQWt1Mm1OSEMwMTNmQ08zOVpHN3ZqYkJmekE3WWRJakpjVzJmOUhrd2hpT0s5VjNneWd2ZkNMUFEwRVlySTZ4OXhPdThxdTg2RHhOa214SmdJQ0ZhUDV4Y1lobmxkbFpydjhGTmM0TWNpY3VvN1JwT2YyZFhROWZFSWdiT0xwOUVaanlSSzN3Um4wUDFPeW5WQkRFejg2cmN2T0tUVUQzSXVFcTNyM0trWTIzd2VoZTR6TTV3ZVg3bVVNUHJXdDVrUGRqaUFhQTRNaE1rMy9rOC96Z2VUbGd1dWN3dUViTkZYalBRZWRnY1kvd1crNlNUL1pxSHh2RzFLNEs1ZXBsUFE2bXJzY0VXYTBwNmpwa1RSamNUV1FvUUcwVEFtZVZ1dEw0M2h2bjNpM3luSnNVUlNIZ012OEw5aFd4bndERkYxREY4cEE5Q1hsZS93enA4UERPYWZvaFBnSWY5QW5ic0VDeEhCVmhhSE1jU1ZIWUxqaWxmeEtwNnovUHphNXRwZ1R0V2dKaDU0TlV2Rm96ck10aUQrUUczaGwvbVh3bWNBZmZ6MWI2TlpidjBHSDNqTmVySzVzWnpGTEh1UC9ZZXpPSy9KcDJMUHAwZ3R2QU5wa1RRVWU0bVVlTnZXMjNPdm43dTd3a0krNFhOQnBubjJQdHJaeWFzMGJHT2s2SDEvU3EyVlJ3R0Vock8vTEZPQzFmZVNVQS9rOCtBaFBUZDBZL2orZS9rSEhEd1dwOEkrNzZoVmJFNjZ3K2owM1A0eDd5UGVmZHhMYnkzcjh4cjliVExTSlRmbHBDZGpXenVVazNzczdMaXBZZkxyanlkSlNsMGxQVnpxRDZCcFpxaERzMkJvNGdhazZpbkQ5YnUwZ3FlL2RnL3RQTzZYUDZHRzZ0MEN2dkgwcWg0YUgyL051UGErUXNJZVRCMEpVSE1vaWlhK2FaV2xmY2U2L1pieGFlRzJjU1ZCL3NtblU5dVBiNTdSQjI3OEtxei9JekoyK3FicDNmTFJoZmtERVJYRHBwU3ZLL0RWNmNOVDdrL2dMeExmY05HcGtYUlVzMzRlSGVTYVl1dVl3V2UvblNTcHg5NDdlTTZiYlVtalRpRUttOW9hSzkvRHlNVkhCWThsangreHFQdm44cWdHdlB1VCtrcCtwNU1SYWlkK1kzUjNIVTh1aGphR1JxWTFPMk1xRGVjbm5ob2ZSODZVZ0JrZThiSHE0VnN2MkZtaTlkMDl2UXVjQjBwKzFxbkU5U2N5emhDeVdMdzVzcGRDVVhXODI4Z2NBK1dJeGs2SnAwNTVsc1Y4NmRtbkx6N3lQdk5XNDRTYjBnZmtheUlZQm1JVFZ6T2RCS1JSQVBrYk05SHlpMlNyVmZnbUJKbVZDUUxjNE1paTVMaDdOZjJhZjNUZU1mcjdzSlAvZnlpbmo2T2tNTUdTbzUrM1YrUmZYOUo4NlgrKzkvci9sUmVrWnNnWnhEeHp6Z2pxdlE4anJaMUxpd0t6T3d0NnBnSnJ5dkMyL0JyVXRWak14N05sdXIyYkVUcXJ1YkcrRUpuL1R6djFBM1M2UnQ1UGJUOWsvNjFIbk5sVytXZTNzMmdZeXBYOU4yaXp1aERUdGEvazduYXROTFlHMXJiVDc3N0VLK0YzaTI5eDloL2Z1eC80c1hsWU5ZVmtXeHUwR1BzMjAvbTdJTWVHVndDaXBpOXg1SmFJbmxFTC9Lc3BxbjBzR1JiL1B5T3gxSU5QTjIvTjdTSHEvSzVuZGR0NFo5eGd6VWZCM0hIbkdIV0RjSHJaMy9Bb1NYaUo0OTZqL0ZWL3U3U2lwL0QvdWFhbi9EQk54V1AvcVh1bU5sNzFMRkxWN2IzVjJ6K2dBK25mRG8veDBka3hFY25uZU4zZnpkdDhGVDdDcitVRGREdDF5TStYNTRwa0d6UnM1SHRvbmJxenlCcjR6aURIR204ZDEzSXY3dklzMnU0VmU5MTROS0t6MjF5K1NlUm95VGVjSDJKQzZmOWY2aUhlam5xZm9YcmtiVkJ1bDI2U3l0QnNySy90T1h5M1pkWStLSEhQV3NuLzU1R2sycnYvNFQzZjdlRkRhUUZ5WVRlVHdHdVZtRVU1cVhRKy9uZUZsWUZwWHhzZWQ2UU5BMDlVbCsxaFF6NmhCTW5CYVV2TVExeEtmUUVZMlhHK1V0S01oTGxRbHRJU1JKbllSNm41ZkVpN2YxdzlLV2dkRTV3U3ZKTTZQM3IzMjBoalB5VVpMWDhLSXJ6NnZJcnExVWdFVVNVZUVKdkJXbEcya0lRWjNsOS84V2ZoRjU5Z1hkRGRwQWxsTnpTR0VNK1NTVXdEeXJ1M0x5YzFvOXQ0Yk14VWV5Uk9hRUU1M0ZhUzB4aWIwNXdrWVo1cWNWUlRuWjV2WitTNm1KT2k0c29GM29TMzhqaUlzWGtvR2wyN1ZCRzBrMklhMi9GYVM3MEhzVGpUWjlHaXl3bnFmRWluQWo3R05mOHI3Z0Nwd1RtUk9qbGFVSGFoM0V5S2loOWJ3dDVURW5hMEZhV1pqZ2dERFkzaDZ1UVh0NGEzZ2FFc3RDUDRwU2M1azZqVkdmdTBoTDVadzB1VlJHVmFnSmtaWVBad3Zma2dLSlFEVDJIWmtDbkJTalZyZXVZS2U4SHVMd2JHNlc2Z0RyZEcwTlR3a04xZ3lPTFAvTlAyY3pRdlF6SlJqUERKWWpoak0rRlNCK0lISHNQK0huNVhoOFVvQisvR2JwQ2dUd1FvZE10REMzWVltWXp1QXdvMEpvYWZrb21vZnFDMkU0eDlHNEI1aFVlVmpZWVE1WGlVTTA0dms3OHVMQUc1bXJCOFlZdHVMNlBTSlp5L21scXI4MVhRN2NTSEUzSEUrWWxudlpRLzlWcGhGaTNCTE80Y0tPa25HenJ2OUR4Q3RRWlVTMVVZbEJ5MmlBNjI5dDc3RzZqaFZOL0puZHp4UFhXUjRFcjV4SStYTDNpYmZ6WEpESTd1Qi8vTldHakFGWnJLK2ZybFIrL0dRTVFZRVkzM25McXp4ZldBRy9qQWc5SEc4anNONjhmRjlDeHFEdC9HSTlEUlVSTDNyUGk4U1FDZTFmdXJzSDhZU3k4OHd4Z01BcFhwS3FSbTV1Ykg5SC90T1pWdXZaYVZUbCsrK1dIeUkvb2RHWGRhOEVreWI1dHBCL1JPb3k4WHV2eFNQc2phcTdNZXoraVZvc24xb0YxOWY4QXZrY2hJalNyWHJkYVBPTnVzK0JiVmJBTlpYV2hYcitIU1hLN1BsNmMzNGJ4dHpPV3Z5SUpveXlIRWY0aytScnRwakhweCtIUy9ZZndLMUlHSStnVDd3YVZ2ZXB1LzBlVUpRUlhoaHhnSU91MUpMN01EdGh4TUpMQkhBZVRjN1AvbG1GL1lsb1R0MGJpZVJENEQ3MlUvamZsLzVsemo5Nm9GaGZRWlY3Smc1cnFBaDdQOVB2NTNqempPTXBoR0pIMFhQMmIxbFYxditKNHlaWC9WSTJIUjc3aTBydU0veG5KeTdHbDlWcm5IZTJja0FONTlrRmFvMlNRNThubG16T3JYbUtlK0EvaVI0SWtqZk1ZeDdUWGV0VmV6bC9TY0VNaWttVXZhWXpJQjRsY2trNCtXdDFxOGM3WGEzMzd0RjNKL3FoZVNxQVgvcGNsSEpya2xmQ2MvMnROcWp0YWxrRGVMUVdQckdCQmMrSDkvd01BQVAvL2NFZVlQMm9jQUFBPQ== kind: Secret metadata: creationTimestamp: "2020-03-06T09:38:20Z" labels: modifiedAt: "1583488149" name: nginx-test owner: helm status: superseded version: "1" name: sh.helm.release.v1.nginx-test.v1 namespace: default resourceVersion: "3336498" selfLink: /api/v1/namespaces/default/secrets/sh.helm.release.v1.nginx-test.v1 uid: 378252ed-5f8e-11ea-8383-06daf3d9b0f6 type: helm.sh/release.v1
Yup, thông tin data.release đã được encode định dạng base64. Vậy là bạn đã biết nơi lưu trữ thông tin Helm Release ở đâu rồi đấy nhé.
Nếu bạn muốn coi thông tin của data.release
, bạn có thể decode base64 online hoặc command line, rồi decompress gzip data ở trang online ví dụ như : http://www.txtwizard.net/compression
Nguồn: https://cuongquach.com/