4 - Helm安装Rancher
使用命令添加Rancher chart仓库地址,访问Rancher tag和Chart版本
替换<CHART_REPO>
为您要使用的Helm仓库分支(即latest或stable)。
Rancher server设计默认需要开启SSL/TLS配置来保证安全,将ssl证书以Kubernetes Secret
卷的形式传递给rancher server或Ingress Controller
。首先创建证书密文,以便Rancher和Ingress Controller
可以使用。
将
服务证书
和CA中间证书链
合并到tls.crt
,将私钥
复制到或者重命名为tls.key
;使用
kubectl
创建tls
类型的secrets
;
注意:
证书、私钥
名称必须是tls.crt、tls.key
。
# 指定配置文件
export kubeconfig=xxx/xxx/xx.kubeconfig.yaml
kubectl --kubeconfig=$kubeconfig \
create namespace cattle-system
kubectl --kubeconfig=$kubeconfig \
-n cattle-system create \
secret tls tls-rancher-ingress \
--cert=./tls.crt \
--key=./tls.key
- 安装rancher server
注意: 1.创建证书对应的
域名
需要与hostname
选项匹配,否则ingress
将无法代理访问Rancher。
如果没有自签名ssl证书,可以参考,一键生成ssl证书;
使用
kubectl
在命名空间cattle-system
中创建tls-ca
和tls-rancher-ingress
两个secret
;
# 指定配置文件
kubeconfig=xxx/xxx/xx.kubeconfig.yaml
# 创建命名空间
kubectl --kubeconfig=$kubeconfig \
create namespace cattle-system
# 服务证书和私钥密文
kubectl --kubeconfig=$kubeconfig \
-n cattle-system create \
secret tls tls-rancher-ingress \
--cert=./tls.crt \
--key=./tls.key
# ca证书密文
kubectl --kubeconfig=$kubeconfig \
-n cattle-system create secret \
generic tls-ca \
--from-file=cacerts.pem
- 安装rancher server
修改
Rancher chart有许多配置选项,可用于自定义安装以适合您的特定环境,点击查看Rancher高级设置
确保保存了所有的配置参数,Rancher下一次升级时,helm需要使用相同的配置参数来运行新版本Rancher。
如果您没有内部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地址可以互通)
。cattle-cluster-agent pod
kubectl --kubeconfig=$kubeconfig -n cattle-system \
patch deployments cattle-cluster-agent --patch '{
"spec": {
"template": {
"spec": {
"hostAliases": [
{
"hostnames":
[
"demo.cnrancher.com"
],
"ip": "192.168.1.100"
}
]
}
}
}
- cattle-node-agent pod
注意1、替换其中的域名和IP 2、别忘记json中的引号。