使用rancher管理现有的kubernetes集群-激情燃烧的岁月

Windows Windows 2个月前 (08-15) 5次浏览 未收录 0个评论 扫描二维码

k8s的自有的dashboard太过丑陋,目前比较流行的k8s WebUI界面有Rancher;

本文将介绍:如何使用Helm在k8s集群上安装rancher!

本文是在踩无数坑之后的总结,让你少走弯路!看似不多的总结,花费了好几天时间才搞定

安装前约定:

????1.?使用的版本为rancher稳定版

????2.?ingress-nginx:k8s集群使用ingress-nginx作为代理(测试traefik,rancher?web无法访问)

????3.?cert-manager:安装此helm(看后边介绍)

????4.?rancher用helm管理,只能使用https的方式,http的方式将无法访问,要配置ssl证书;

第一步:安装rancher的helm仓库

helm?repo?add?rancher-stable??

#helm?repo?list
NAME??????????	URL???????????????????????????????????????????????????????
stable????????	https://kubernetes-charts.storage.googleapis.com??????????
local?????????	http://127.0.0.1:8879/charts??????????????????????????????
incubator?????	https://kubernetes-charts-incubator.storage.googleapis.com
bitnami???????	https://charts.bitnami.com????????????????????????????????
rancher-stable	https://releases.rancher.com/server-charts/stable

第二步:安装cert-manager的helm chart仓库

Rancher依靠来自官方Kubernetes Helm图表存储库的cert-manager版本v0.5.2来发布Rancher自己生成的CA的证书或请求Let的加密证书。

helm?install?stable/cert-manager?--name?cert-manager?--namespace?kube-system?--version?v0.5.2

#helm?list
NAME????????	REVISION	UPDATED?????????????????	STATUS??	CHART??????????????	APP?VERSION	NAMESPACE????
cert-manager	1???????	Mon?May?20?22:32:19?2019	DEPLOYED	cert-manager-v0.5.2	v0.5.2?????	kube-system

如果不安装cert-manager将会报如下错误:

Error:?validation?failed:?unable?to?recognize?"":?no?matches?for?kind?"Issuer"?in?version?"certmanager.k8s.io/v1alpha1"

第三步:使用自签名或者权威SSL证书安装Rancher server

权威证书参考:https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/ha-install/helm-rancher/tcp-l4/rancher-install/

自签证书参考:https://www.cnrancher.com/docs/rancher/v2.x/cn/install-prepare/self-signed-ssl/#%E5%9B%9B-%E7%94%9F%E6%88%90%E8%87%AA%E7%AD%BE%E5%90%8D%E8%AF%81%E4%B9%A6

本例使用的域名:rancher.staplescn.com

受信任客户的访问IP:10.78.99.34(如果有多个IP,以逗号隔开)

生成证书命令:./create_self-signed-cert.sh –ssl-domain=rancher.staplescn.com –ssl-trusted-ip=10.78.99.34

生成的没有此名字的证书:tls.key和tls.cry(如果有这2个证书,下面重命名的步骤可以省略)

重命名证书操作:

mv?rancher.staplescn.com.key?tls.key
mv?rancher.staplescn.com.crt?tls.crt

创建secret:

kubectl?create?ns?cattle-system
kubectl?-n?cattle-system?create?secret?tls?tls-rancher-ingress?--cert=./tls.crt?--key=./tls.key
kubectl?-n?cattle-system?create?secret?generic?tls-ca?--from-file=cacerts.pem

[root@ansible?ssl]#?kubectl?get?secret?-n?cattle-system?|?grep?tls
tls-ca???????????????????????Opaque????????????????????????????????1??????99m
tls-rancher-ingress??????????kubernetes.io/tls?????????????????????2??????99m

第四步:通过helm安装rancher

helm?install?rancher-stable/rancher?\
??--name?rancher?\
??--namespace?cattle-system?\
??--set?hostname=rancher.staplescn.com?\
??--set?ingress.tls.source=secret?\
??--set?privateCA=true

第五步:登陆WebUI

绑定本机hosts:10.10.5.217rancher.staplescn.com

登陆:设置密码

使用rancher管理现有的kubernetes集群-激情燃烧的岁月

设定server的url:

????此操作会在每个node上安装cattle-node-agent的pod;

????每个pod都需要正确解析此server的url,如果不能解析,则此pod的状态为CrashLoopBackOff;

????建议此server url可以被内网或者公网的DNS所解析;(如果没有,则可通过patch的方式暂时解决)

使用rancher管理现有的kubernetes集群-激情燃烧的岁月

未正确解析server url的状态:

使用rancher管理现有的kubernetes集群-激情燃烧的岁月

通过patch的方式为控制器打补丁:

kubectl?patch?deploy?cattle-cluster-agent?-p?'{"spec":{"template":{"spec":{"hostAliases":[{"ip":"10.10.5.217","hostnames":["rancher.staplescn.com"]}]}}}}'?-n?cattle-system

kubectl?patch?ds?cattle-node-agent?-p?'{"spec":{"template":{"spec":{"hostAliases":[{"ip":"10.10.5.217","hostnames":["rancher.staplescn.com"]}]}}}}'?-n?cattle-system

使用rancher管理现有的kubernetes集群-激情燃烧的岁月

登陆后:稍等几分钟,状态将会变为Active

使用rancher管理现有的kubernetes集群-激情燃烧的岁月

开始从集群中获取信息:

使用rancher管理现有的kubernetes集群-激情燃烧的岁月

到此,rancher已成功管理k8s集群!

喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址