中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mac上學習k8s系列中helmchart的示例分析

發布時間:2021-09-18 10:11:51 來源:億速云 閱讀:161 作者:柒染 欄目:編程語言

mac上學習k8s系列中helmchart的示例分析,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

類似php 的composer ,go 的go vendor ,linux 的yum ,helm是k8s 應用部署的管理工具。

在mac上如何使用呢?

brew install helm

需要注意的是 helm2 和hlm3 相比變化非常大

helm2 和k8s之間有一層代理tiller,但是從kubernetes 1.6開始默認開啟RBAC。這是Kubernetes安全性/企業可用的一個重要特性。但是在RBAC開啟的情況下管理及配置Tiller變的非常復雜。為了簡化helm的嘗試成本我們給出了一個不需要關注安全規則的默認配置。但是,這會導致一些用戶意外獲得了他們并不需要的權限。并且,管理員/SRE需要學習很多額外的知識才能將Tiller部署的到關注安全的生產環境的多租戶K8S集群中并使其正常工作。

在了解了社區成員通常的使用場景后,我們發現Tiller的發布管理系統不需要依靠集群內的Operator來維護狀態或充當Helm發布信息的中央樞紐。相反,我們可以簡單地從Kubernetes API服務器中獲取信息,渲染Charts客戶端,并在Kubernetes中存儲安裝記錄。

helm2 需要安裝tiller

helm init --client-only --stable-repo-url https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts/

helm3 已經移除了 init 命令

helm 管理的包,被稱為chart,下面創建一個chart

%helm create mychart Creating mychart

看下chart里面有哪些東西呢?

% cd mychart% tree.|____Chart.yaml|____charts|____.helmignore|____templates| |____deployment.yaml| |____NOTES.txt| |____ingress.yaml| |____tests| | |____test-connection.yaml| |____service.yaml| |____hpa.yaml| |____serviceaccount.yaml| |_____helpers.tpl|____values.yaml

Templates 目錄下 YAML 文件模板(go template語法)填充的值默認都是在 values.yaml 里定義的,比如在 deployment.yaml 中定義的容器鏡像:

% cat mychart/values.yaml|grep repository  repository: nginx

以上變量值是在 create chart 的時候就自動生成的默認值,你可以根據實際情況進行修改。

編寫應用的介紹信息

 mychart/Chart.yaml

編寫應用具體部署信息

編輯 mychart/values.yaml,它默認會在 Kubernetes 部署一個 Nginx。下面是 mychart 應用的 values.yaml 文件的內容

#檢查依賴和模版配置是否正確

% helm lint mychart==> Linting mychart[ERROR] Chart.yaml: unable to parse YAML        error converting YAML to JSON: yaml: line 27: could not find expected ':'[ERROR] templates/: cannot load Chart.yaml: error converting YAML to JSON: yaml: line 27: could not find expected ':'[ERROR] : unable to load chart        cannot load Chart.yaml: error converting YAML to JSON: yaml: line 27: could not find expected ':'
Error: 1 chart(s) linted, 1 chart(s) failed
% helm lint mychart==> Linting mychart[INFO] Chart.yaml: icon is recommended
1 chart(s) linted, 0 chart(s) failed

打包應用

% helm package mychart  //將應用打包Successfully packaged chart and saved it to: /Users/xiazemin/go/src/github.com/xiazemin/helm_learn/mychart-0.1.0.tgz

mychart 目錄會被打包為一個 mychart-0.1.0.tgz 格式的壓縮包,該壓縮包會被放到當前目錄下。

如果你想看到更詳細的輸出,可以加上 --debug 參數來查看打包的輸出。

離線部署

注意: ~/.kube/config不存在的情況下要用 helm --kubeconfig 指定配置文件

# 方式一$ helm install demo-test ./mychart
# 可根據不同的配置來install,默認是values.yaml# helm install demo-test ./mychart -f ./mychart/values-prod.yaml
# 方式二$ helm install demo-test ./mychart-0.1.0.tgz
$ helm list
# 升級# $ helm upgrade demo-test ./mychart-0.2.0.tgz
helm install demo-test ./mychartNAME: demo-testLAST DEPLOYED: Sun Apr  4 16:53:14 2021NAMESPACE: defaultSTATUS: deployedREVISION: 1NOTES:1. Get the application URL by running these commands:  export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=mychart,app.kubernetes.io/instance=demo-test" -o jsonpath="{.items[0].metadata.name}")  export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")  echo "Visit http://127.0.0.1:8080 to use your application"  kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
% helm listNAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART         APP VERSIONdemo-test       default         1               2021-04-04 16:53:14.890414 +0800 CST    deployed        mychart-0.1.0 1.16.0

將應用發布到 Repository

harbor1.6+ 支持存儲 helm charts,這里使用 helm 安裝 harbor

這里為了簡化測試操作,我關閉了數據卷的掛載并使用的是 NodePort 方式進行訪問。

看完上述內容,你們掌握mac上學習k8s系列中helmchart的示例分析的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延寿县| 郁南县| 江阴市| 海门市| 新和县| 固镇县| 金湖县| 台南市| 疏勒县| 江口县| 玉林市| 耒阳市| 五华县| 东城区| 横山县| 烟台市| 石嘴山市| SHOW| 常宁市| 三江| 准格尔旗| 鹤山市| 东乡| 西平县| 建阳市| 肥城市| 九江县| 绥滨县| 本溪市| 神木县| 揭东县| 稷山县| 西宁市| 奉化市| 高台县| 桑植县| 遵化市| 桂阳县| 福海县| 嵊州市| 郎溪县|