Kubernetes部署(一):架構及功能說明
Kubernetes部署(二):系統環境初始化
Kubernetes部署(三):CA證書製做
Kubernetes部署(四):ETCD集羣部署
Kubernetes部署(五):Haproxy、Keppalived部署
Kubernetes部署(六):Master節點部署
Kubernetes部署(七):Node節點部署
Kubernetes部署(八):Flannel網絡部署
Kubernetes部署(九):CoreDNS、Dashboard、Ingress部署
Kubernetes部署(十):儲存之glusterfs和heketi部署
Kubernetes部署(十一):管理之Helm和Rancher部署
Kubernetes部署(十二):helm部署harbor企業級鏡像倉庫html
helm官方下載地址:https://github.com/helm/helm/releasesnode
官方可用的chart列表:https://hub.kubeapps.comlinux
全部的軟件及配置文件都保存在前面文章提到的百度網盤裏 :百度共享連接在此文章裏git
Helm是一種簡化Kubernetes應用程序安裝和管理的工具。能夠把它想象成apt/yum/homebrew。github
Helm可在您的筆記本電腦,或在任何位置運行。docker
[root@node-01 ~]# ll .kube/ total 12 drwxr-xr-x 3 root root 23 Dec 25 11:28 cache -rw------- 1 root root 6264 Dec 25 16:15 config drwxr-xr-x 3 root root 4096 Jan 2 15:09 http-cache
[root@node-01 k8s]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.12.1-linux-amd64.tar.gz [root@node-01 k8s]# tar zxf helm-v2.12.1-linux-amd64.tar.gz [root@node-01 k8s]# cd linux-amd64/ [root@node-01 linux-amd64]# mv helm /usr/bin/
因某些緣由咱們沒法直接從google下載tiller鏡像,因此須要下載我網盤共享的鏡像tiller-image-v2.12.1.tar.gz
,而後在每一個node節點加載鏡像api
[root@node-04 ~]# docker load < tiller-image-v2.12.1.tar.gz
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
[root@node-01 helm]# kubectl create -f rbac-config.yaml [root@node-01 helm]# helm init --service-account tiller Creating /root/.helm Creating /root/.helm/repository Creating /root/.helm/repository/cache Creating /root/.helm/repository/local Creating /root/.helm/plugins Creating /root/.helm/starters Creating /root/.helm/cache/archive Creating /root/.helm/repository/repositories.yaml Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com Adding local repo with URL: http://127.0.0.1:8879/charts $HELM_HOME has been configured at /root/.helm. Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster. Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy. To prevent this, run `helm init` with the --tiller-tls-verify flag. For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation Happy Helming! [root@node-01 helm]# kubectl -n kube-system get pod|grep tiller tiller-deploy-85744d9bfb-cm5jz 1/1 Running 0 11m [root@node-01 helm]# helm version Client: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
release管理: 瀏覽器
至此helm就已經部署完了,下面會經過helm安裝k8s的管理平臺,也順便演示helm的使用。服務器
helm官方倉庫沒有rancher的chart包,因此咱們須要添加rancher官方chart倉庫。網絡
[root@node-01 helm]# helm repo add rancher-stable https://releases.rancher.com/server-charts/stable "rancher-stable" has been added to your repositories [root@node-01 helm]# helm search rancher-stable/rancher NAME CHART VERSION APP VERSION DESCRIPTION rancher-stable/rancher 2018.12.4 v2.1.4 Install Rancher Server to manage Kubernetes clusters acro...
[root@node-01 helm]# helm install stable/cert-manager --name cert-manager --namespace kube-system NAME: cert-manager LAST DEPLOYED: Thu Jan 3 15:35:22 2019 NAMESPACE: kube-system STATUS: DEPLOYED RESOURCES: ==> v1/ServiceAccount NAME SECRETS AGE cert-manager 1 1s ==> v1beta1/ClusterRole NAME AGE cert-manager 1s ==> v1beta1/ClusterRoleBinding NAME AGE cert-manager 1s ==> v1beta1/Deployment NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE cert-manager 1 1 1 0 1s ==> v1/Pod(related) NAME READY STATUS RESTARTS AGE cert-manager-7d4bfc44ff-5flvg 0/1 ContainerCreating 0 0s NOTES: cert-manager has been deployed successfully! In order to begin issuing certificates, you will need to set up a ClusterIssuer or Issuer resource (for example, by creating a 'letsencrypt-staging' issuer). More information on the different types of issuers and how to configure them can be found in our documentation: https://cert-manager.readthedocs.io/en/latest/reference/issuers.html For information on how to configure cert-manager to automatically provision Certificates for Ingress resources, take a look at the `ingress-shim` documentation: https://cert-manager.readthedocs.io/en/latest/reference/ingress-shim.html [root@node-01 helm]#
[root@node-01 helm]# helm install rancher-stable/rancher --name rancher --namespace cattle-system --set hostname=rancher.cnlinux.club
默認狀況下,Rancher會自動生成CA根證書並使用cert-manager頒發證書,所以,這裏設置了 hostname=rancher.cnlinux.club,後續只能經過域名訪問UI
若是你沒有內部DNS服務器而是經過添加/etc/hosts主機別名的方式指定的Rancher server域名,那麼無論經過哪一種方式(自定義、導入、Host驅動等)建立K8S集羣,K8S集羣運行起來以後,由於cattle-cluster-agent Pod和cattle-node-agent沒法經過DNS記錄找到Rancher server,最終致使沒法通訊。
能夠經過給cattle-cluster-agent Pod和cattle-node-agent添加主機別名(/etc/hosts),讓其能夠正常通訊(前提是IP地址能夠互通)。
注意:替換如下命令中的域名和IP
[root@node-01 helm]# kubectl -n cattle-system patch deployments cattle-cluster-agent --patch '{ "spec": { "template": { "spec": { "hostAliases": [ { "hostnames": [ "rancher.cnlinux.club" ], "ip": "10.31.90.200" } ] } } } }'
[root@node-01 helm]# kubectl -n cattle-system patch daemonsets cattle-node-agent --patch '{ "spec": { "template": { "spec": { "hostAliases": [ { "hostnames": [ "rancher.cnlinux.club" ], "ip": "10.31.90.200" } ] } } } }'
3.至此就能夠經過rancher來管理pod、ingress、service等資源了。
後續會陸續更新全部的k8s相關文檔,若是你以爲我寫的不錯,但願你們多多關注點贊,很是感謝!