写点什么

CentOS7 环境部署 kubenetes1,数据库 mysql 面试题

作者:Java高工P7
  • 2021 年 11 月 09 日
  • 本文字数:1816 字

    阅读完需:约 6 分钟

前提

本次实战需要科学上网,才能 kubernetes 相关的操作用于学习和实践;

实战

  1. 在 master 节点的控制台上,执行以下命令创建 dashboard 相关资源:


kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml


  1. 执行以下命令,查看所有服务:


kubectl get services --all-namespaces


控制台输出服务相关信息:


[root@localhost ~]# kubectl get services --all-namespaces


NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE


default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6h25m


default tomcat001 NodePort 10.109.30.238 <none> 8080:30006/TCP 80m


kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 6h25m


kube-system kubernetes-dashboard ClusterIP 10.102.251.175 <none> 443/TCP 15m


可见 dashboard 服务的 namespace 是 kube-system,但是该服务的类型是 ClusterIP,不便于我们通过浏览器访问,因此需要改成 NodePort 型的;


  1. 执行以下命令,创建 dashboard 服务的配置文件:


cat <<EOF > ~/dashboard-svc.yaml


kind: Service


apiVersion: v1


metadata:


labels:


k8s-app: kubernetes-dashboard


name: kubernetes-dashboard


namespace: kube-system


spec:


type: NodePort


ports:


  • port: 443


targetPort: 8443


selector:


k8s-app: kubernetes-dashboard


EOF


  1. 删除现有的 dashboard 服务:


kubectl delete service kubernetes-dashboard --namespace=kube-system


  1. 用刚刚创建的 yaml 文件创建新的 dashboard 服务:


kubectl create -f ~/dashboard-svc.yaml


  1. 再次用 kubectl get 命令查看服务,可见 dashboard 服务的类型已经变成了 NodePort,映射的端口是 32073:


[root@localhost ~]# kubectl get services --all-namespaces


NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE


default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6h33m


default tomcat001 NodePort 10.109.30.238 <none> 8080:30006/TCP 88m


kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 6h33m


kube-system kubernetes-dashboard NodePort 10.108.210.180 <none> 443:32073/TCP 13s


  1. 想要访问 dashboard 服务,就要有访问权限,这里需要先设置一个 dashboard 服务的权限和绑定关系,执行以下命令创建对应的资源文件 dashboard-svc-account.yaml:


cat <<EOF > ~/dashboard-svc-account.yaml


apiVersion: v1


kind: ServiceAccount


metadata:


labels:


k8s-app: kubernetes-dashboard


name: kubernetes-dashboard-admin


namespace: kube-system




apiVersion: rbac.authorization.k8s.io/v1beta1


kind: ClusterRoleBinding


metadata:


name: kubernetes-dashboard-admin


labels:


k8s-app: kubernetes-dashboard


roleRef:


apiGroup: rbac.authorization.k8s.io


kind: ClusterRole


name: cluster-admin


subjects:


  • kind: ServiceAccount


name: kubernetes-dashboard-admin


namespace: kube-system


EOF


  1. 执行命令创建 ServiceAccount 和 ClusterRoleBinding:


kubectl create -f ~/dashboard-svc-account.yaml


  1. 找出 secret,这个 secret 中有 token,该 token 是登录 dashboard 时用到的:


kubectl -n kube-system get secret | grep kubernetes-dashboard-admin


执行的结果如下图所示,红框中的 kubernetes-dashboard-admin-token-wc5tf 就是 dashboard 的 secret:


![在


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


这里插入图片描述](https://static001.geekbang.org/infoq/a6/a6cfdb786bf3bcdd43500f246bcfb335.jpeg)


  1. 查看 kubernetes-dashboard-admin-token-wc5tf 的详情,里面有对应的 token 信息:


kubectl describe -n kube-system secret/kubernetes-dashboard-admin-token-wc5tf \


|grep token:


如下图所示,token:右侧的"eyJhbGciOiJSU…"这一长串字符串就是 token,这是个永久生效的 token,请保存下来:



  1. 接下来需要知道 dashboard 对应的 pod 是部署在哪个 node 上的,执行命令:

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
CentOS7环境部署kubenetes1,数据库mysql面试题