Helm Kubernetes lưu trữ thông tin Release ở đâu ?

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-luu-tru-thong-tin-release-the-nao

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/

Previous articleThứ tự khởi tạo tài nguyên hệ thống Kubernetes khi chạy Helm
Next article21 lợi ích công nghệ thông tin đem lại cho ngành bán lẻ
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !