K8S——关于K8S控制台的yaml文件编写(基于上一章多节点K8S部署)
K8S——关于K8S控制台的yaml文件编写(基于上一章多节点K8S部署)
- 一、yaml文件编写流程
- 二、证书自签
一、yaml文件编写流程
rbac.yaml---->secret.yaml---->configmap.yaml---->controller.yaml----->dashboard.yaml
#dashboard-rbac.yaml文件
vim dashboard-rbac.yaml
kind: Role #角色
apiVersion: rbac.authorization.k8s.io/v1 #api版本号(有专门的版本号控制)
metadata: #源信息labels:k8s-app: kubernetes-dashboardaddonmanager.kubernetes.io/mode: Reconcilename: kubernetes-dashboard-minimal #创建的资源名称namespace: kube-system
rules: #参数信息的传入# Allow Dashboard to get, update and delete Dashboard exclusive secrets.
- apiGroups: [""]resources: ["secrets"]resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"]verbs: ["get", "update", "delete"]# Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
- apiGroups: [""]resources: ["configmaps"]resourceNames: ["kubernetes-dashboard-settings"]verbs: ["get", "update"]# Allow Dashboard to get metrics from heapster.
- apiGroups: [""]resources: ["services"]resourceNames: ["heapster"]verbs: ["proxy"]
- apiGroups: [""]resources: ["services/proxy"]resourceNames: ["heapster", "http:heapster:", "https:heapster:"]verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: kubernetes-dashboard-minimalnamespace: kube-systemlabels:k8s-app: kubernetes-dashboardaddonmanager.kubernetes.io/mode: Reconcile
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: kubernetes-dashboard-minimal
subjects:
- kind: ServiceAccountname: kubernetes-dashboardnamespace: kube-system #名称空间的管理(默认为default)#创建dashboard-rbac.yaml资源
kubectl create -f dashboard-rbac.yaml #使用-n 查看Role角色kube-system名称空间中的资源
kubectl get Role -n kube-system
------------------------------------------------------------------------
#dashboard-secret.yaml文件
vim dashboard-secret.yaml
apiVersion: v1
kind: Secret #角色
metadata: #源信息labels:k8s-app: kubernetes-dashboard# Allows editing resource and makes sure it is created first.addonmanager.kubernetes.io/mode: EnsureExistsname: kubernetes-dashboard-certs #资源名称namespace: kube-system #命名空间
type: Opaque
--- #--- 分段
apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboard# Allows editing resource and makes sure it is created first.addonmanager.kubernetes.io/mode: EnsureExistsname: kubernetes-dashboard-key-holder #密钥namespace: kube-system
type: Opaque#创建dashboard-secret.yaml 资源
kubectl create -f dashboard-secret.yaml
kubectl get Secret -n kube-system
------------------------------------------------------------------------
#dashboard-configmap.yaml 配置管理文件
vim dashboard-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:labels:k8s-app: kubernetes-dashboard# Allows editing resource and makes sure it is created first.addonmanager.kubernetes.io/mode: EnsureExistsname: kubernetes-dashboard-settingsnamespace: kube-system#创建dashboard-configmap.yaml资源
kubectl create -f dashboard-configmap.yaml
kubectl get Configmap -n kube-system
------------------------------------------------------------------------
#dashboard-controller.yaml 控制器文件
vim dashboard-controller.yaml
apiVersion: v1
kind: ServiceAccount #控制器名称(服务访问)
metadata:labels:k8s-app: kubernetes-dashboardaddonmanager.kubernetes.io/mode: Reconcilename: kubernetes-dashboardnamespace: kube-system
---
apiVersion: apps/v1
kind: Deployment #控制器名称
metadata:name: kubernetes-dashboardnamespace: kube-systemlabels:k8s-app: kubernetes-dashboardkubernetes.io/cluster-service: "true"addonmanager.kubernetes.io/mode: Reconcile
spec:selector:matchLabels:k8s-app: kubernetes-dashboardtemplate:metadata:labels:k8s-app: kubernetes-dashboardannotations:scheduler.alpha.kubernetes.io/critical-pod: ''seccomp.security.alpha.kubernetes.io/pod: 'docker/default'spec:priorityClassName: system-cluster-critical containers: #资源指定的名称、镜像- name: kubernetes-dashboardimage: siriuszg/kubernetes-dashboard-amd64:v1.8.3resources: #设置了CPU和内存的上限limits:cpu: 100mmemory: 300Mirequests:cpu: 50mmemory: 100Miports:- containerPort: 8443 #8443提供对外的端口号(HTTPS协议)protocol: TCPargs:# PLATFORM-SPECIFIC ARGS HERE- --auto-generate-certificatesvolumeMounts: #容器卷- name: kubernetes-dashboard-certsmountPath: /certs- name: tmp-volumemountPath: /tmplivenessProbe:httpGet:scheme: HTTPSpath: /port: 8443initialDelaySeconds: 30timeoutSeconds: 30volumes:- name: kubernetes-dashboard-certssecret:secretName: kubernetes-dashboard-certs- name: tmp-volumeemptyDir: {}serviceAccountName: kubernetes-dashboardtolerations:- key: "CriticalAddonsOnly"operator: "Exists"#创建 dashboard-controller.yaml 资源
kubectl create -f dashboard-controller.yaml
kubectl get ServiceAccount -n kube-system
kubectl get deployment -n kube-system
------------------------------------------------------------------------
#dashboard-service.yaml 服务
vim dashboard-service.yaml
apiVersion: v1
kind: Service #控制器名称
metadata:name: kubernetes-dashboardnamespace: kube-systemlabels:k8s-app: kubernetes-dashboardkubernetes.io/cluster-service: "true"addonmanager.kubernetes.io/mode: Reconcile
spec:type: NodePort #提供的形式(访问node节点提供出来的端口,即nodeportselector:k8s-app: kubernetes-dashboardports:- port: 443 #内部提供targetPort: 8443 #Pod内部端口nodePort: 30001 #节点对外提供的端口(映射端口)#创建dashboard-service.yaml资源
kubectl create -f dashboard-service.yaml
kubectl get service -n kube-system
------------------------------------------------------------------------
#查看pod资源
kubectl get pods,svc -n kube-system#查看资源分配的位置
kubectl get pods -n kube-system -o wide#查看此pod资源的日志
kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous
clusterrolebinding.rbac.authorization.k8s.io/cluster-system-anonymous created
kubectl logs kubernetes-dashboard-65f974f565-bh5zh -n kube-system
二、证书自签
vim dashboard-cert.sh
cat > dashboard-csr.json <<EOF #创建json格式的csr签名文件
{"CN": "Dashboard","hosts": [],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "BeiJing","ST": "BeiJing"}]
}
EOFK8S_CA=$1
#以下产生CA证书
cfssl gencert -ca=$K8S_CA/ca.pem -ca-key=$K8S_CA/ca-key.pem -config=$K8S_CA/ca-config.json -profile=kubernetes dashboard-csr.json | cfssljson -bare dashboard#删除原本的证书凭据
kubectl delete secret kubernetes-dashboard-certs -n kube-system
#重新创建一个证书凭据
kubectl create secret generic kubernetes-dashboard-certs --from-file=./ -n kube-system
------》wq#生成证书
bash dashboard-cert.sh /root/k8s/k8s-cert/#编辑dashboard-controller.yaml,指向证书位置,完成证书自签
vim dashboard-controller.yaml
----47行左右添加/修改args:# PLATFORM-SPECIFIC ARGS HERE- --auto-generate-certificates- --tls-key-file=dashboard-key.pem- --tls-cert-file=dashboard.pem#重新部署
kubectl apply -f dashboard-controller.yaml#需要注意一个问题,在重新部署的时候,资源可能会分配到其他节点,再次查看pod资源位置
kubectl get pods -n kube-system -o wide#生成令牌 k8s-admin.yaml
vim k8s-admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:name: dashboard-admin #创建dashboard-admin的资源,相当于一个管理员账户namespace: kube-system
---
kind: ClusterRoleBinding #绑定群集用户角色
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:name: dashboard-admin #群集用户角色其实就是管理员的身份
subjects:- kind: ServiceAccountname: dashboard-adminnamespace: kube-system
roleRef:kind: ClusterRolename: cluster-adminapiGroup: rbac.authorization.k8s.io#先查看secret(安全角色)的命名空间中的资源
kubectl get secret -n kube-system#生成令牌
kubectl create -f k8s-admin.yaml #再次查看secret资源
kubectl get secret -n kube-system#详细查看令牌信息
kubectl describe secret dashboard-admin-token-dpjdk -n kube-system
(最下方为token令牌,进行复制,登录web控制台需要使用)
K8S——关于K8S控制台的yaml文件编写(基于上一章多节点K8S部署)相关推荐
- k8s的 Yaml文件编写与测试用例展示
什么是Yaml 文件? Yaml 是一种用来写配置文件的语言.结构上它有两种可选的类型:Lists [1,2,3,4] 和 Maps {1:111}.List 用 -(破折号)来定义每一项,Map 则 ...
- k8s使用volume将ConfigMap作为文件或目录直接挂载_从零开始入门 K8s | 如何实现应用配置管理?...
作者 | 何淋波(新胜) 阿里云容器服务技术专家 需求来源 背景问题 首先一起来看一下需求来源.大家应该都有过这样的经验,就是用一个容器镜像来启动一个 container.要启动这个容器,其实有很多需 ...
- yaml文件编写格式
Yaml提供了多种方法,常用的为yaml.load()和yaml.dump(). 它的基本语法规则如下: 1. 大小写敏感 2. 使用缩进表示层级关系 3. 缩进时不允许使用Tab键,只允许使用空格. ...
- ROS中yaml文件编写格式
目录 键值对 键值对书写格式 键值对的引用 强制类型转换 字符串 时间与日期 已知偏移时区和当地时间 已知UTC世界时间 数组 普通数组 键值对数组 数组的引用 多维数组 命名空间 命名空间下普通变量 ...
- 不会写K8S资源编排yaml文件?一文教会你如何掌握编写yaml文件的技巧
不会写K8S资源编排yaml文件?一文教会你如何掌握编写yaml文件的技巧 文章目录 不会写K8S资源编排yaml文件?一文教会你如何掌握编写yaml文件的技巧 一.熟悉下K8S常用命令参数以及资源管 ...
- 怎么传文件到服务器上,怎样传文件到服务器上
怎样传文件到服务器上 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 安装传输工 ...
- yaml存储到文件服务器,通过编写k8s的资源清单yaml文件部署gitlab服务
搭建nfs服务器 1.为什么搭建nfs服务器? 因为我们要使用nfs作为持久化存储,创建的pv后端存储时需要nfs,所以需要搭建nfs服务. 2.安装nfs服务 选择自己的任意一台机器,我选择k8s的 ...
- 通过编写k8s的资源清单yaml文件部署gitlab服务
微信公众号搜索DevOps和k8s全栈技术 ,即可关注我的公众号,也可通过扫描文章最后的二维码关注,每天都会分享技术文章供大家参考阅读~,拥抱开源,同大家共同进步~~!!! 搭建nfs服务器 1.为什 ...
- k8s查看pod的yaml文件_【大强哥-k8s从入门到放弃04】Yaml语法解析
依然小福利[Python-零基础入门]2020感谢走进我的生命,Python!(已更新至206集)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com 一.K8S名称 ...
最新文章
- C++_STL——deque and vector
- XSS学习-初出茅庐
- linux 发送邮件
- [AGC014D] Black and White Tree(树形DP,博弈)
- 如何让CloudStack使用KVM创建Windows实例成功识别并挂载数据盘
- python之做一个简易的翻译器(一)
- mysql 绕过权限检查_跳过权限检查,强制修改mysql密码
- oem718d 基准站设置_华测口袋RTK正式发布!-华测导航
- 如何在 Linux 中复制文件到多个目录中
- Linux中的任务调度
- 如何创建您自己的I爱纽约T恤
- EditText光标始终保持在文字末尾
- jquery日历插件daterangepicker全面详解汇总
- OpenCV—直线拟合fitLine
- HTTPS为什么安全
- Win11找不到gpedit.msc怎么办?Win11无法打开gpedit.msc解决教程
- Fama-French五因子模型
- Mac使用技巧:Mac读写外接NTFS格式硬盘
- 福大软工1816 · 第三次作业 - 结对项目1
- 2020年感冒人群大幅度减少,不感冒意味着身体变好?