第十八章: Kubernetes - Rancher 和 Headlamap 控制面板使用
·
第十八章: Kubernetes - Rancher 和 Headlamap 控制面板使用
18.1 安装 Rancher
1. 安装 Helm(Linux 或 macOS)
curl https://get.helm.sh/helm-v3.14.4-linux-amd64.tar.gz -o helm-v3.14.4-linux-amd64.tar.gz
tar -zxvf helm-v3.14.4-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm
验证
helm version

2. 准备域名(必需)
Rancher 必须使用域名访问,不能裸 IP
# Windows / Linux / Mac
192.168.163.4 rancher.example.com
3. 安装 cert-manager(Rancher 依赖)
添加 Helm 仓库
helm repo add jetstack https://charts.jetstack.io
helm repo update
安装 cert-manager
kubectl create namespace cert-manager
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--set installCRDs=true
验证:全部 Running 才继续
kubectl get pods -n cert-manager

4. 安装 Rancher
添加 Rancher Helm 仓库
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo update
创建 Rancher 命名空间
kubectl create namespace cattle-system
安装 Rancher(推荐自动 TLS)
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--create-namespace \
--version 2.13.3 \
--set hostname=rancher.example.com \
--set replicas=2 \
--set 'livenessProbe.failureThreshold=1000' \
--set 'livenessProbe.periodSeconds=30' \
--set 'readinessProbe.failureThreshold=1000' \
--set 'readinessProbe.periodSeconds=10' \
--set 'startupProbe.failureThreshold=30' \
--set 'startupProbe.periodSeconds=10'
说明:
- hostname:必须与你的域名一致
- replicas=2:测试用,生产建议:replicas=3
5. 等 Rancher 启动(需要时间)
kubectl -n cattle-system get pods -w

给 Rancher Ingress 明确指定 nginx
kubectl patch ingress rancher -n cattle-system \
-p '{"spec":{"ingressClassName":"nginx"}}'
6. 进入 Rancher
获取 admin 密码
kubectl get secret bootstrap-secret \
-n cattle-system \
-o go-template='{{.data.bootstrapPassword | base64decode}}{{"\n"}}'
# 或
kubectl -n cattle-system exec -it \
$(kubectl -n cattle-system get pods -l app=rancher -o jsonpath='{.items[0].metadata.name}') \
-c rancher -- ensure-default-admin


18.2 Rancher 的使用
1. 重置 admin 密码
使用指令重置密码
kubectl -n cattle-system exec -it deploy/rancher -- reset-password
重置密码,设置自定义密码登录进去,最好重新设置一下 admin 密码

这里再次设置一下自定义密码,防止无法登录
18.3 Headlamp 安装步骤总结
- 添加 Helm 仓库并安装 Headlamp
# 添加官方 Helm 仓库
helm repo add headlamp https://kubernetes-sigs.github.io/headlamp/
helm repo update
# 在 headlamp 命名空间中安装 Headlamp
helm install headlamp headlamp/headlamp -n headlamp --create-namespace
- 将 Service 类型改为 NodePort
# 将 headlamp Service 的类型改为 NodePort,并指定端口为 14009
kubectl patch svc headlamp -n headlamp --type='json' -p='[{"op": "replace", "path": "/spec/type", "value": "NodePort"}, {"op": "add", "path": "/spec/ports/0/nodePort", "value": 14009}]'
或
kubectl edit svc headlamp -n headlamp
apiVersion: v1
kind: Service
metadata:
annotations:
field.cattle.io/publicEndpoints: '[{"port":14009,"protocol":"TCP","serviceName":"headlamp:headlamp","allNodes":true}]'
meta.helm.sh/release-name: headlamp
meta.helm.sh/release-namespace: headlamp
creationTimestamp: "2026-09-10T03:01:08Z"
labels:
app.kubernetes.io/instance: headlamp
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: headlamp
app.kubernetes.io/version: 0.45.0
helm.sh/chart: headlamp-0.45.0
name: headlamp
namespace: headlamp
resourceVersion: "746494"
uid: 8f902e8f-45aa-4a78-8107-a9de1b27f129
spec:
clusterIP: 10.96.66.181
clusterIPs:
- 10.96.66.181
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: http
nodePort: 14009
port: 80
protocol: TCP
targetPort: http
selector:
app.kubernetes.io/instance: headlamp
app.kubernetes.io/name: headlamp
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
- 手动创建新的 SA 并赋权
# 创建 ServiceAccount
kubectl -n headlamp create serviceaccount headlamp-admin
# 绑定 cluster-admin(测试环境方便用,生产建议最小权限)
kubectl create clusterrolebinding headlamp-admin-binding \
--clusterrole=cluster-admin \
--serviceaccount=headlamp:headlamp-admin
# 全部返回 yes 才算成功。
kubectl auth can-i list pods --as=system:serviceaccount:headlamp:headlamp-admin -n default
kubectl auth can-i list nodes --as=system:serviceaccount:headlamp:headlamp-admin
kubectl auth can-i watch pods --as=system:serviceaccount:headlamp:headlamp-admin --all-namespaces
- 短期 Token(推荐,K8s 1.24+ 标准方式)
kubectl create token headlamp -n headlamp --duration=24h
更多推荐

所有评论(0)