编译安装Kubernetes 1.29 高可用集群(8)--Dashboard和Traefik安装部署

news/2024/11/18 17:48:19/文章来源:https://www.cnblogs.com/cn-jasonho/p/18290275

1.部署Dashboard

1.1 在任意k8s-master节点上安装dashboard

# helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
# helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
Release "kubernetes-dashboard" does not exist. Installing it now.
NAME: kubernetes-dashboard
LAST DEPLOYED: Mon Jul  8 16:16:08 2024
NAMESPACE: kubernetes-dashboard
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
*************************************************************************************************
*** PLEASE BE PATIENT: Kubernetes Dashboard may need a few minutes to get up and become ready ***
*************************************************************************************************Congratulations! You have just installed Kubernetes Dashboard in your cluster.To access Dashboard run:kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443NOTE: In case port-forward command does not work, make sure that kong service name is correct.Check the services in Kubernetes Dashboard namespace using:kubectl -n kubernetes-dashboard get svcDashboard will be available at:https://localhost:8443

1.2 更改dashboard的svc为NodePort

# kubectl edit svc kubernetes-dashboard-kong-proxy -n kubernetes-dashboard
###第34行
nodePort:
修改为nodePort:30000
###第43行
type: ClusterIP
修改为type: NodePort# kubectl get serviceAccount,svc,deploy,pod -n kubernetes-dashboard
NAME                                                  SECRETS   AGE
serviceaccount/default                                0         3h2m
serviceaccount/kubernetes-dashboard-api               0         38m
serviceaccount/kubernetes-dashboard-kong              0         38m
serviceaccount/kubernetes-dashboard-metrics-scraper   0         38m
serviceaccount/kubernetes-dashboard-web               0         38mNAME                                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                         AGE
service/kubernetes-dashboard-api               ClusterIP   10.66.213.106   <none>        8000/TCP                        38m
service/kubernetes-dashboard-auth              ClusterIP   10.66.242.177   <none>        8000/TCP                        38m
service/kubernetes-dashboard-kong-manager      NodePort    10.66.97.228    <none>        8002:31851/TCP,8445:32487/TCP   38m
service/kubernetes-dashboard-kong-proxy        NodePort    10.66.156.15    <none>        443:30000/TCP                   38m
service/kubernetes-dashboard-metrics-scraper   ClusterIP   10.66.179.209   <none>        8000/TCP                        38m
service/kubernetes-dashboard-web               ClusterIP   10.66.252.176   <none>        8000/TCP                        38mNAME                                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kubernetes-dashboard-api               1/1     1            1           38m
deployment.apps/kubernetes-dashboard-auth              1/1     1            1           38m
deployment.apps/kubernetes-dashboard-kong              1/1     1            1           38m
deployment.apps/kubernetes-dashboard-metrics-scraper   1/1     1            1           38m
deployment.apps/kubernetes-dashboard-web               1/1     1            1           38mNAME                                                        READY   STATUS    RESTARTS   AGE
pod/kubernetes-dashboard-api-6dbd5dc685-n6vl2               1/1     Running   0          38m
pod/kubernetes-dashboard-auth-7f697c4d47-5gzlg              1/1     Running   0          38m
pod/kubernetes-dashboard-kong-75bb76dd5f-kz9x5              1/1     Running   0          38m
pod/kubernetes-dashboard-metrics-scraper-555758b9bf-ppxrc   1/1     Running   0          38m
pod/kubernetes-dashboard-web-846f5f49b-5xwgf                1/1     Running   0          38m

1.3 创建token

cat > dashboard-user.yaml << EOF
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kube-system
EOF# kubectl apply -f dashboard-user.yaml# kubectl create token admin-user -n kube-system
eyJhbGciOiJSUzI1NiIsImtpZCI6IlNEUC1RVDNMRWU0RElRWFZ3MDBkRFhpazVyOE9YT1NjUHg5SEMxcG82cWcifQ.eyJhdWQiOlsiYXBpIl0sImV4cCI6MTcyMDQzMTIyMCwiaWF0IjoxNzIwNDI3NjIwLCJpc3MiOiJhcGkiLCJrdWJlcm5ldGVzLmlvIjp7Im5hbWVzcGFjZSI6Imt1YmUtc3lzdGVtIiwic2VydmljZWFjY291bnQiOnsibmFtZSI6ImFkbWluLXVzZXIiLCJ1aWQiOiIwMjcxZDUyNy0xN2Y3LTRkNmUtYmZiZi1mMDdmZTg4OWY3N2IifX0sIm5iZiI6MTcyMDQyNzYyMCwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmFkbWluLXVzZXIifQ.0Xb07oFa6F8iMPqyTJWhj802nisLDUdRyh9W_tV_qAw7wVHGV5mTnqqKoKp13xuDNBDYgayx_0zM7EFn7XouwjvM0S3jUCvz1OkOc0-s-OPGRJF9cGJfm3h-3ssoaMPiXzXf7IWeyBOR1S0QJQQrphE5XDz097zx0-MvnqZQuwSImzJ6DVad4vsUiH-yVi1TN_q_Eqshfos-lyLU-sandVf7Hcl9NGY3f-f59-NurUh4xLkrtNPGffaZ_aGR-nEKdUpm2XlaZzUzy8YxjxVzBwHMRt-UhfRxicoTd3bgVN2wXVMG1HRfj5SAPfJLvIhYuCzkOE6s27ETO0Y2HXBnZg

1.4 使用任意k8s-node节点IP访问dashboard

https://192.168.83.221:30000

2.部署Traefik(在任意k8s-master几点上执行)

2.1 创建ClusterRole资源的角色文件

cat > role.yml << EOF
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: traefik-rolerules:- apiGroups:- ""resources:- services- endpoints- secretsverbs:- get- list- watch- apiGroups:- extensions- networking.k8s.ioresources:- ingresses- ingressclassesverbs:- get- list- watch- apiGroups:- extensions- networking.k8s.ioresources:- ingresses/statusverbs:- update
EOF

2.2 为traefik创建专用服务帐户

cat > account.yml << EOF
apiVersion: v1
kind: ServiceAccount
metadata:name: traefik-account
EOF

2.3 将traefik的角色与服务账号绑定

cat > role-binding.yml << EOF
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: traefik-role-bindingroleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: traefik-role
subjects:- kind: ServiceAccountname: traefik-accountnamespace: default
EOF

2.4 创建traefik dashboard文件

cat > traefik.yml << EOF
kind: Deployment
apiVersion: apps/v1
metadata:name: traefik-deploymentlabels:app: traefikspec:replicas: 1selector:matchLabels:app: traefiktemplate:metadata:labels:app: traefikspec:serviceAccountName: traefik-accountcontainers:- name: traefikimage: traefik:v3.0args:- --api.insecure- --providers.kubernetesingressports:- name: webcontainerPort: 80- name: dashboardcontainerPort: 8080
EOF

2.5 创建反向代理文件

cat > traefik-services.yml << EOF
apiVersion: v1
kind: Service
metadata:name: traefik-dashboard-servicespec:type: LoadBalancerports:- port: 8080targetPort: dashboardselector:app: traefik
---
apiVersion: v1
kind: Service
metadata:name: traefik-web-servicespec:type: LoadBalancerports:- targetPort: webport: 80selector:app: traefik
EOF

2.6 在k8s集群部署traefik

# kubectl apply -f role.yml \
-f account.yml \
-f role-binding.yml \
-f traefik.yml \
-f traefik-services.ymlclusterrole.rbac.authorization.k8s.io/traefik-role created
serviceaccount/traefik-account created
clusterrolebinding.rbac.authorization.k8s.io/traefik-role-binding created
deployment.apps/traefik-deployment created
service/traefik-dashboard-service created
service/traefik-web-service created

2.7 查看部署状况

# kubectl get pod -A -o wide | grep traefik
default                traefik-deployment-8478c7684c-kq7ct                     1/1     Running   0              25m     172.31.0.59      k8s-node01   <none>           <none># kubectl get svc -o wide | grep traefik
traefik-dashboard-service   LoadBalancer   10.66.125.39   <pending>     8080:31680/TCP   25m    app=traefik
traefik-web-service         LoadBalancer   10.66.182.2    <pending>     80:30330/TCP     25m    app=traefik

2.8 修改dashboard-service和web-service访问端口

# kubectl edit svc traefik-dashboard-service
### 修改27行为
- nodePort: 30001# kubectl edit svc traefik-web-service
### 修改27行为
- nodePort: 30002# kubectl get svc -o wide | grep traefik
traefik-dashboard-service   LoadBalancer   10.66.125.39   <pending>     8080:30001/TCP   25m    app=traefik
traefik-web-service         LoadBalancer   10.66.182.2    <pending>     80:30002/TCP     25m    app=traefik

 2.9 使用任意k8s-node节点IP访问traefik dashboard

http://192.168.83.221:30001

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741009.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我跟你说@RefreshScope跟Spring事件监听一起用有坑!

本文记录一下我在 Spring 自带的事件监听类添加 @RefreshScope 注解时遇到的坑,原本这两个东西单独使用是各自安好,但当大家将它们组合在一起时,会发现我们的事件监听代码被重复执行。希望大家引以为鉴,避免重复踩坑。耐心看完,你一定会有所收获! 前置描述 最近有一个用户…

Vue开发环境搭建教程

在搭建Vue开发环境时,通常需要遵循一系列步骤来确保环境配置正确且高效。以下是一个详细的步骤指南,用于在Windows系统上搭建Vue开发环境: 一、安装Node.js下载Node.js:访问Node.js官网(https://nodejs.org/zh-cn/)下载适合您操作系统的Node.js安装包。安装Node.js:双击…

数据血缘系列(2)——什么是数据血缘?

大家好,我是独孤风。在当今数据驱动的商业环境中,数据治理成为企业成功的关键因素之一。对于数据血缘的定义,一直都有争论,本文我们详细探讨下什么是数据血缘,并说明数据血缘能分析什么。 本文为《数据血缘分析原理与实践 》一书读书笔记,部分观点参考自书中原文,如需更…

windows 运行 java程序时 无故停止不动 问题

windows 运行 java程序时 无故停止不动 问题。是 cmd 程序 的 快速编辑模式 引起的。去掉即可。 右键点属性-》将 快速编辑模式 的多选框 去掉

盒子模型和浮动、溢出属性、圆形头像、定位、模态框z-index、透明度修改

【一】盒子模型和浮动 【1】盒子模型盒子模型(Box Model)是指在网页设计中,用于描述和布局元素的一种模型。 它将每个元素看作是一个具有四个边界的矩形盒子,包括内容区域(content)、内边距(padding)、边框(border)和外边距(margin)。【2】组成部分内容区域(Conte…

W外链短网址生成,他们家的短网址免费的吗?

W外链作为短网址服务的一种,体现了短网址技术的现代发展趋势,它不仅提供了基础的网址缩短功能,还扩展了一系列高级特性和增值服务,以适应更广泛的市场需求。根据相关参考内容,W外链具有以下特点和优势: 短域名与高级设置:W外链提供了非常短的域名,这有助于提高用户体验…

MTRec论文阅读笔记

MTRec: Multi-Task Learning over BERT for News Recommendation论文阅读笔记 Abstract 存在的问题: ​ 现有的新闻推荐方法通常仅根据新闻标题来学习新闻表征。为了充分利用新闻信息的其他字段(如类别和实体),一些方法将每个字段视为附加特征,并通过细心的池化将不同的特…

毕业设计:基于单片机的能耗分析系统

写在前面 笔者不才,过去一年中一半的时间在准备考研,博客园无心打理,显得荒芜了。到如今临近毕业,找的工作实事求是的讲也只是专业相关,并不完全对口,估计一段时间之内都没法亲自做开发了。虽然去的也是大公司,培养和各方面的保障都不错,但是对于学了四年技术(惭愧地说…

探索前端报表:如何实现无预览打印解决方案或静默打印?

最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/在前端开发中,除了将数据呈现后,我们往往需要为用户提供,打印,导出等能力,导出是为了存档或是二次分析,而打印则因为很多单据需要打印出来作为主要的单据来进行下一环节的票据支撑, 而前端打印可以说是…

【SVN】 设置过滤上传文件

项目级过滤文件 1.1 在项目空白处,右键选择SVN-Properties1.2 New -> Other -> 新建一个“svn:global-ignores”属性1.3 查看效果 选中上传项目,右键-》SVN->Add如图所示,.vs、bin、obj文件都过滤了全局过滤文件配置 2.1 在项目工作根目录上,右键 -> TortosieS…

如何通过文件分发系统,实现能源电力企业文件的安全分发流转?

随着企业业务的快速发展,能源电力企业会在全国乃至全球,设立总部-分部-办事处/网点等多层级的结构,因此会涉及自动化的文件分发的业务场景。文件分发系统是一种将文件从一个地方自动传输到多个接收者的过程,可以提高工作效率,确保信息的及时传递和文件的一致性。文件分发系…

跨境传输需要遵守哪些准则,如何做到有效管控?

在全球化的商业环境中,跨国企业面临着数据跨境传输的挑战。随着业务的扩展,企业需要在不同国家和地区之间高效、安全地传输大量数据。选择合适的跨境传输方案对于保障数据安全、提高业务效率、遵守法律法规至关重要。跨境传输数据需要遵守的准则和规定主要包括以下几点: 1.数…