K8S集群中部署 Rancher 2.5

准备工作

  1. 准备一个k8s集群

建议所有节点提前导入rancher镜像,减少部署时间,以rancher 2.5.6为例:

docker pull uhub.service.ucloud.cn/ucloud_pts/nginx-ingress:1.10.0
docker tag uhub.service.ucloud.cn/ucloud_pts/nginx-ingress:1.10.0 nginx/nginx-ingress:1.10.0

docker pull uhub.service.ucloud.cn/ucloud_pts/rancher:v2.5.6
docker tag uhub.service.ucloud.cn/ucloud_pts/rancher:v2.5.6 rancher/rancher:v2.5.6

  1. 安装 helm
wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz #或
wget https://mirrors.huaweicloud.com/helm/v3.5.2/helm-v3.5.2-linux-amd64.tar.gz 
tar -xf helm-v3.5.2-linux-amd64.tar.gz
mv linux-amd64/helm /usr/bin/

  1. 安装nginx-ingress
helm repo add nginx-stable https://helm.nginx.com/stable
helm repo update
kubectl create namespace nginx-ingress
helm install controller nginx-stable/nginx-ingress -n nginx-ingress

  1. 准备SSL/TLS证书,这里是自签名的证书
#!/bin/bash
openssl req -newkey rsa:2048       \
            -keyout ca.key         \
            -out ca.crt            \
            -days 3650             \
            -x509                  \
            -passout pass:ca_key_xxxxx \
            -subj '/C=CN/ST=beijing/L=BJ/O=RD/OU=RDTEAM/CN=admin.com'

for cert_name in rancher
do
   openssl genrsa -out ${cert_name}.key 2048             \
                  -passout pass:111111
   openssl req -new -key ${cert_name}.key                \
                    -out ${cert_name}.csr                \
                    -passin pass:111111                  \
                    -subj "/C=CN/ST=beijing/L=BJ/O=RD/OU=RDTEAM/CN=${cert_name}.admin.com"
   openssl x509 -req -sha256                             \
                 -extensions v3_req                      \
                 -days 3650                              \
                 -in ${cert_name}.csr                    \
                 -CAkey ca.key                           \
                 -CA ca.crt                              \
                 -CAcreateserial                         \
                 -passin pass:ca_key_xxxxx               \
                 -out ${cert_name}.crt
done
cat ca.crt  >> rancher.crt

  1. 创建 ingress需要的secret

rancher-server 在 k8s 环境中只提供 http 协议端口,tls 证书在ingress 中卸载,因此需要在ingress-nginx运行的命名空间,创建存放证书的 secret

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

部署 Rancher

  1. 创建Rancher Server 的 Secret
kubectl create namespace cattle-system 
kubectl -n cattle-system create secret generic tls-ca --from-file=cacerts.pem=./ca.crt
kubectl -n cattle-system create secret tls tls-rancher-ingress --cert=rancher.crt --key=rancher.key

  1. 完成 Rancher Server的部署
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo update
helm install rancher rancher-stable/rancher        \
--namespace cattle-system                          \
--set privateCA=true                               \
--set ingress.tls.source=tls-rancher-ingress       \
--set hostname=rancher.admin.com                     

  1. 配置说明
  • 创建 rancher 的 namespace
  • --set privateCA=true 使用自签证书是必选项
  • --set ingress.tls.source=ls-rancher-secret rancher-server服务用到的证书和密钥
  • --set hostname=rancher.my.com 配置访问 rancher-server 的域名,这个域名配置在 ingress 中,如果域名没有解析到 ingress 节点,也可以绑个 host 访问
  1. 其他可选配置
kubectl -n ingress-nginx create secret generic tls-ca-additional --from-file=ca-additional.pem= ca-additional.crt

--set additionalTrustedCAs=true (可选)访问各种 tls (https) 时额外信任的 ca 证书,比如自使用签证书的镜像仓库、git仓库、s3 对象存储,亦或是类似公司出网白名单代理网关、fiddler 抓 https 包之类的需要安装 ca 证书的情况

安装后配置

  1. 查看集群中的ingressClass
[root@10-9-156-147 ]# kubectl get ingressClass
NAME    CONTROLLER                     PARAMETERS   AGE
nginx   nginx.org/ingress-controller   <none>       44m

  1. 修改 ingress 配置,添加自定义 ingressClass配置

由于是自建的 ingress,修改ingress是配置正确,执行命令: kubectl edit ingress -n cattle-system 在 annotations 处添加一行注解: ( 修改为和集群中名称一致的 ingressClass,这里名为 nginx )

kubernetes.io/ingress.class: nginx

  1. 修改 ingress 配置,添加websocket支持

执行命令: kubectl edit ingress -n cattle-system 在 annotations 处添加注解:

nginx.org/websocket-services: rancher
nginx.ingress.kubernetes.io/configuration-snippet: |
  proxy_set_header Upgrade "websocket";
  proxy_set_header Connection "Upgrade";

验证

  • 检查 rancher ingress 配置 kubectl get ingress rancher -n cattle-system
  • 检查 ingress-controller 配置,kubectl get svc -n nginx-ingress
  • 确认 EXTERNAL-IP 和 ADDRESS 一致,说明配置正确
image
  1. 将 ADDRESS_IP 添加到rancher.admin.com 域名的DNS解析A记录,或本地域名解析
  2. 浏览器或系统导入创建的自签名根证书 ca.crt, 并设置为始终信任
  3. 浏览器访问 https://rancher.admin.com 检查是否能登陆成功,以及各项功能是否正常
image

参考文档

  1. Rancher官方文档:
    1. https://docs.rancher.cn/
    2. https://docs.rancher.cn/docs/rancher2/installation_new/install-rancher-on-k8s/chart-options/_index
  2. nginx-ingress 文档
    1. https://kubernetes.github.io/ingress-nginx/deploy/#using-helm
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容