暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何配置Kubernetes仪表板dashboard支持http方式并使用ingress-nginx代理访问实践

WeiyiGeek 2022-05-17
2378

公众号关注「WeiyiGeek

设为「特别关注」,每天带你玩转网络安全运维、应用开发、物联网IOT学习!


本章目录:配置 Kubernetes-dashboard 以支持 http 方式访问


原文地址: https://blog.weiyigeek.top/2021/12-1-583.html



1.配置 Kubernetes-dashboard 以支持 http 方式访问

描述: 当前默认安装配置的 Kubernetes-dashboard 都是启用了https, 然而在当我们环境中存在ingress时,可能会有需要将其通过虚拟主机进行暴露时,此时将会在ingress端进行设置证书而不是在 Kubernetes-dashboard Pod中设置证书。

步骤 01.打开下载的Kubernetes-dashboard
资源清单文件或者使用kubelet edit
命令编辑已部署的资源清单,首先配置 kubernetesui/dashboard:v2.5.1
 镜像的启动参数,主要是--enable-insecure-login
--insecure-port=8080
参数。


$ kubectl edit deployments.apps -n kubernetes-dashboard kubernetes-dashboard
args:
# - --auto-generate-certificates
- --namespace=kubernetes-dashboard
- --enable-insecure-login
- --insecure-port=8080

# Pod 端口暴露
ports:
- name: https
containerPort: 8443
protocol: TCP
- name: http
containerPort: 8080
protocol: TCP

# Pod 健康检查
livenessProbe:
# httpGet:
# scheme: HTTPS
# path:
# port: 8443
httpGet:
scheme: HTTP
path:
port: 8080


步骤 02.配置 kubernetes-dashboard 的 Service 资源管理器


$ kubectl edit svc -n kubernetes-dashboard kubernetes-dashboard
ports:
- name: https
port: 443
protocol: TCP
targetPort: 8443
- name: http
port: 8080
protocol: TCP
targetPort: 8080
selector:
k8s-app: kubernetes-dashboard
sessionAffinity: None
type: ClusterIP

$ kubectl get svc -n kubernetes-dashboard kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard ClusterIP 11.19.103.247 <none> 443/TCP,8080/TCP 3h39m


步骤 03.服务验证以及部署ingress转发规则URL设置,最后浏览器访问如下URL(devops.weiyigeek.top/dashboard/
)即可。


$ curl 11.19.103.247:8080

$ tee kubernetes-dashboard-ingress.yaml <<'EOF'
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "75"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
nginx.ingress.kubernetes.io/rewrite-target: $2
labels:
app: devops-weiyigeek
name: devops-weiyigeek
namespace: kubernetes-dashboard
spec:
ingressClassName: nginx
rules:
- host: devops.weiyigeek.top
http:
paths:
- backend:
service:
name: kubernetes-dashboard
port:
number: 8080
path: dashboard(/|$)(.*)
pathType: ImplementationSpecific
tls:
- hosts:
- devops.weiyigeek.top
secretName: devops-weiyigeek-top
EOF


# 部署 ingress 规则
$ kubectl apply -f kubernetes-dashboard-ingress.yaml
$ kubectl get ingress -n kubernetes-dashboard devops-weiyigeek
NAME CLASS HOSTS ADDRESS PORTS AGE
devops-weiyigeek nginx devops.weiyigeek.top 11.19.12.210 80, 443 3h52m


本文至此完毕,更多技术文章,尽情期待下一章节!


原文地址: https://blog.weiyigeek.top/2021/12-1-583.html


欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】
或者个人公众号【WeiyiGeek】
联系我。


更多文章来源于【WeiyiGeek Blog 个人博客 - 为了能到远方,脚下的每一步都不能少 】

个人主页: 【 https://weiyigeek.top

博客地址: 【 https://blog.weiyigeek.top 


专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注,转个发,留个言】(人间六大情),这将对我的肯定,谢谢!。



  • echo  "【点个赞】,动动你那粗壮的拇指或者芊芊玉手,亲!"

  • printf("%s", "【投个币】,万水千山总是情,投个硬币行不行,亲!")

  • fmt.Printf("【收个藏】,阅后即焚不吃灰,亲!")  

  • console.info("【转个发】,让更多的志同道合的朋友一起学习交流,亲!")

  • System.out.println("【关个注】,后续浏览查看不迷路哟,亲!")

  • cout << "【留个言】,文章写得好不好、有没有错误,一定要留言哟,亲! " << endl;

 往期相关文章

1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(上)

2.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(下)

3.Containerd容器运行时的配置浅析与知识扩充实践

4.如何使用nerdctl工具并配合Containerd容器运行时来替代Docker容器环境




更多网络安全、系统运维、应用开发、全栈文章,尽在【个人博客 - https://blog.weiyigeek.top】站点,谢谢支持!


↓↓↓ 更多文章,请点击下方阅读原文。


文章转载自WeiyiGeek,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论