Alan Moment
  • Introduction
  • 智慧家庭
    • Fibaro 系統整合便宜的 IP Cam
  • Life
    • 用AWS Glacier做最後的冷資料備份
    • 如何在macOS修改影音檔日期
  • 3D Printer
    • Atom2.5EX 之血淚組裝
    • 列印經驗紀錄
      • SpoolHolder
    • 製圖經驗
      • Turntable
      • 重製Atom3散熱風扇
    • 線材經驗
      • PETG
        • 首測
  • Kubernetes
    • 使用Kops建立Kubernetes
    • 使用HelmV2
    • Kubernetes的技術問題排解技巧
  • PHP
    • 管理PHP Library的利器Composer
    • PHP安裝JSON
    • Phalcon首發
    • Gearman Job Worker for PHP
    • Laravel 首發 !!!
    • Data Encrypt & Decrypt
  • Python
    • Django + Python 開發環境建置
  • Android
    • Android zipcode library of maven
    • Android use foreign object of OrmLite
    • ProgressBar while loading ListView of Android
    • AsyncTask download image by the Android
    • Use Thread control Android UI
    • Android Universal Image Loader
  • Ruby on Rails
    • Install rmagick on the Windows of Ruby on Rails
    • Ruby on Rails deploy on Heroku
    • Ruby on Rails 小問題
  • React
    • Ditched AngularJS for React
  • Tessel
    • 很潮的 Tessel
    • Connect to Slack on Tessel
    • Baby Help on Tessel
  • Node.js
    • CentOS 安装 Node.js 0.8.5
  • OOAD
    • Injection Principle Design Pattern
  • Linux
    • SSH免密碼登入遠端電腦
    • Apache與Tomcat的結合
    • The bash auto build
  • Hadoop
    • CentOS 5.5 + Hadoop 0.20
    • CentOS 5.5 + Hbase 0.94.8
    • Hadoop + Hbase 叢集環境
    • Hadoop 溝通橋梁之 Thrift 0.7
    • 使用MapReduce之替代方案Hive
    • 使用Sqoop將MySQL資料匯入Hbase
  • Database
    • 吃足苦頭的Mssql
  • IDE
    • Netbeans console中文亂碼解決方法
    • 用NetBeans開發Ruby On Rails
  • Agile
    • 淺談我的Agile
  • 協作工具
    • 建置專屬自己的Github之Gitlab
    • Gitlab 4.1 upgrade to Gitlab 6.0超偷懶方法
    • Install Phabricator and run on the Gitlab
    • Phabricator 基本應用
    • Phabricator review code應用
    • Redmine之基本建置與Scrum應用
    • Omnibus Gitlab 7 基礎操作
    • Git Push Notify to Slack on Gitlab
    • phabricator-extensions-Sprint 無法抓到正確的 Story Points
  • 其他
    • 慶祝Octopress開張
    • 走在時尚的尖端! Ghost
    • 大搬家
    • 網頁教學初體驗
    • 網路攻擊很猖狂
Powered by GitBook
On this page
  • 初始化
  • 從 brew
  • 自行下載
  • 基本操作及一些小技巧

Was this helpful?

  1. Kubernetes

使用HelmV2

有鑒於目前支援 Helm V3 的人還不是太多,我自己本身也還在使用 Helm V2,所以就先記錄一下這個版本的操作

初始化

Helm V2 需要在 Server 及 Client 都安裝套件,Client 還比較好解決,想要使用 brew 安裝也可以,想要自行下載 binary 的檔案也可以。

從 brew

brew install helm

自行下載

Download: https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-darwin-amd64.tar.gz

# tar zxvf helm-v2.13.1-darwin-amd64.tar.gz
# mv darwin-amd64/helm /usr/local/bin/helm

而 Server 的操作,我會這樣做避免遇到權限不足的情況。

先建立 helm-tiller.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

再建立資源

kubectl apply -f helm-tiller.yaml

最後在 init 的時候帶入參數

helm init --service-account tiller --upgrade 

而其實我避免 tiller 安裝到可能會被回收的 node 之上,我會放在固定不會回收的 node。再加上避免過多次的反覆刪除、安裝,會有大量不需要的歷史紀錄塞爆 etcd,我會這樣做。

helm init --service-account tiller --node-selectors "purpose=kube-service" --tiller-namespace kube-system --upgrade --override 'spec.template.spec.tolerations[0].key=CriticalAddonsOnly,spec.template.spec.tolerations[0].operator=Exists,spec.template.spec.tolerations[0].effect=NoSchedule' --history-max 30

如此一來 tiller 會被我安裝到具有 purpose=kube-service Tag 的 node,也被限制歷史紀錄不會超過 30 次

基本操作及一些小技巧

在寫完 Helm chart 之後,安裝前,我都會先執行 helm template 瀏覽一下之後會被套用在 Kubernetes 的 yaml config 長怎麼樣。

helm template --name <release-name> --output-dir ./output ./

因應自動化,避免繁複的判斷邏輯,安裝時,可以這樣做,避免已經安裝的 helm chart 不能被安裝

helm upgrade --install <release-name> <repo>/<release-name>

Apr 12th, 2020 16:13:00pm

Previous使用Kops建立KubernetesNextKubernetes的技術問題排解技巧

Last updated 3 years ago

Was this helpful?