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

    1. # 指定配置文件
    2. export kubeconfig=xxx/xxx/xx.kubeconfig.yaml
    3. kubectl --kubeconfig=$kubeconfig \
    4. create namespace cattle-system
    5. kubectl --kubeconfig=$kubeconfig \
    6. -n cattle-system create \
    7. secret tls tls-rancher-ingress \
    8. --cert=./tls.crt \
    9. --key=./tls.key
    • 安装rancher server

    注意: 1.创建证书对应的域名需要与hostname选项匹配,否则ingress将无法代理访问Rancher。

    • 如果没有自签名ssl证书,可以参考,一键生成ssl证书;

    • 使用kubectl在命名空间cattle-system中创建tls-catls-rancher-ingress两个secret;

    1. # 指定配置文件
    2. kubeconfig=xxx/xxx/xx.kubeconfig.yaml
    3. # 创建命名空间
    4. kubectl --kubeconfig=$kubeconfig \
    5. create namespace cattle-system
    6. # 服务证书和私钥密文
    7. kubectl --kubeconfig=$kubeconfig \
    8. -n cattle-system create \
    9. secret tls tls-rancher-ingress \
    10. --cert=./tls.crt \
    11. --key=./tls.key
    12. # ca证书密文
    13. kubectl --kubeconfig=$kubeconfig \
    14. -n cattle-system create secret \
    15. generic tls-ca \
    16. --from-file=cacerts.pem
    • 安装rancher server

    修改

    Rancher chart有许多配置选项,可用于自定义安装以适合您的特定环境,点击查看Rancher高级设置

    确保保存了所有的配置参数,Rancher下一次升级时,helm需要使用相同的配置参数来运行新版本Rancher。

    如果您没有内部DNS服务器而是通过添加/etc/hosts主机别名的方式指定的Rancher server域名,那么不管通过哪种方式(自定义、导入、Host驱动等)创建K8S集群,K8S集群运行起来之后,因为cattle-cluster-agent Podcattle-node-agent无法通过DNS记录找到Rancher server,最终导致无法通信。

    • 解决方法可以通过给cattle-cluster-agent Podcattle-node-agent添加主机别名(/etc/hosts),让其可以正常通信(前提是IP地址可以互通)

    • cattle-cluster-agent pod

    1. kubectl --kubeconfig=$kubeconfig -n cattle-system \
    2. patch deployments cattle-cluster-agent --patch '{
    3. "spec": {
    4. "template": {
    5. "spec": {
    6. "hostAliases": [
    7. {
    8. "hostnames":
    9. [
    10. "demo.cnrancher.com"
    11. ],
    12. "ip": "192.168.1.100"
    13. }
    14. ]
    15. }
    16. }
    17. }
    • cattle-node-agent pod

    注意1、替换其中的域名和IP 2、别忘记json中的引号。