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部署)相关推荐

  1. k8s的 Yaml文件编写与测试用例展示

    什么是Yaml 文件? Yaml 是一种用来写配置文件的语言.结构上它有两种可选的类型:Lists [1,2,3,4] 和 Maps {1:111}.List 用 -(破折号)来定义每一项,Map 则 ...

  2. k8s使用volume将ConfigMap作为文件或目录直接挂载_从零开始入门 K8s | 如何实现应用配置管理?...

    作者 | 何淋波(新胜) 阿里云容器服务技术专家 需求来源 背景问题 首先一起来看一下需求来源.大家应该都有过这样的经验,就是用一个容器镜像来启动一个 container.要启动这个容器,其实有很多需 ...

  3. yaml文件编写格式

    Yaml提供了多种方法,常用的为yaml.load()和yaml.dump(). 它的基本语法规则如下: 1. 大小写敏感 2. 使用缩进表示层级关系 3. 缩进时不允许使用Tab键,只允许使用空格. ...

  4. ROS中yaml文件编写格式

    目录 键值对 键值对书写格式 键值对的引用 强制类型转换 字符串 时间与日期 已知偏移时区和当地时间 已知UTC世界时间 数组 普通数组 键值对数组 数组的引用 多维数组 命名空间 命名空间下普通变量 ...

  5. 不会写K8S资源编排yaml文件?一文教会你如何掌握编写yaml文件的技巧

    不会写K8S资源编排yaml文件?一文教会你如何掌握编写yaml文件的技巧 文章目录 不会写K8S资源编排yaml文件?一文教会你如何掌握编写yaml文件的技巧 一.熟悉下K8S常用命令参数以及资源管 ...

  6. 怎么传文件到服务器上,怎样传文件到服务器上

    怎样传文件到服务器上 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 安装传输工 ...

  7. yaml存储到文件服务器,通过编写k8s的资源清单yaml文件部署gitlab服务

    搭建nfs服务器 1.为什么搭建nfs服务器? 因为我们要使用nfs作为持久化存储,创建的pv后端存储时需要nfs,所以需要搭建nfs服务. 2.安装nfs服务 选择自己的任意一台机器,我选择k8s的 ...

  8. 通过编写k8s的资源清单yaml文件部署gitlab服务

    微信公众号搜索DevOps和k8s全栈技术 ,即可关注我的公众号,也可通过扫描文章最后的二维码关注,每天都会分享技术文章供大家参考阅读~,拥抱开源,同大家共同进步~~!!! 搭建nfs服务器 1.为什 ...

  9. k8s查看pod的yaml文件_【大强哥-k8s从入门到放弃04】Yaml语法解析

    依然小福利[Python-零基础入门]2020感谢走进我的生命,Python!(已更新至206集)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 一.K8S名称 ...

最新文章

  1. C++_STL——deque and vector
  2. XSS学习-初出茅庐
  3. linux 发送邮件
  4. [AGC014D] Black and White Tree(树形DP,博弈)
  5. 如何让CloudStack使用KVM创建Windows实例成功识别并挂载数据盘
  6. python之做一个简易的翻译器(一)
  7. mysql 绕过权限检查_跳过权限检查,强制修改mysql密码
  8. oem718d 基准站设置_华测口袋RTK正式发布!-华测导航
  9. 如何在 Linux 中复制文件到多个目录中
  10. Linux中的任务调度
  11. 如何创建您自己的I爱纽约T恤
  12. EditText光标始终保持在文字末尾
  13. jquery日历插件daterangepicker全面详解汇总
  14. OpenCV—直线拟合fitLine
  15. HTTPS为什么安全
  16. Win11找不到gpedit.msc怎么办?Win11无法打开gpedit.msc解决教程
  17. Fama-French五因子模型
  18. Mac使用技巧:Mac读写外接NTFS格式硬盘
  19. 福大软工1816 · 第三次作业 - 结对项目1
  20. 2020年感冒人群大幅度减少,不感冒意味着身体变好?

热门文章

  1. 喜提 redir contributor
  2. 一个卑微的程序员友链
  3. 一站式体验腾讯云音视频及融合通信技术
  4. Instagram视频上传延迟优化
  5. 音视频技术开发周刊 73期
  6. MSU发布2018年视频压缩评比报告
  7. 腾讯DCI网络SDN SR-TE方案详解
  8. centos虚拟机ping不通 报错 name or service not known
  9. Java 中各种锁的介绍
  10. 如何设计第三方账号登陆?