kubernetes二进制集群部署----web页面的部署

一、环境介绍

本博客将介绍在k8s多节点集群部署的基础上安装web页面。

二、部署web界面

在 master1节点上操作:
1、创建 dashborad(控制面板)工作目录,把yaml文件放在此路径下。

[root@master1 ~]# cd /root/k8s/
[root@master1 k8s]# ls
apiserver.sh                     k8s-cert
cfssl.sh                         kubeconfig
controller-manager.sh            kubernetes
etcd-cert                        kubernetes-server-linux-amd64.tar.gz
etcd.sh                          master.zip
etcd-v3.3.10-linux-amd64         scheduler.sh
etcd-v3.3.10-linux-amd64.tar.gz

[root@master1 k8s]# mkdir dashboard
[root@master1 k8s]# cd dashboard/

[root@master1 dashboard]# ls
dashboard-configmap.yaml   dashboard-rbac.yaml    dashboard-service.yaml
dashboard-controller.yaml  dashboard-secret.yaml  k8s-admin.yaml
注意:以上5个yaml文件是官方文档, k8s-admin.yaml是我自己创建的

2、按顺序加载所有的文件,创建Pod资源安装web界面

创建Pod资源有两种方式:

  • 1、kubectl run 服务 --images=镜像,例如:kubectl run nginx --images=nginx
  • 2、使用 yaml文件格式进行创建,即kubectl create -f yaml文件名
[root@master1 dashboard]# kubectl create -f dashboard-rbac.yaml    #创建角色

在这里插入图片描述

[root@master1 dashboard]# kubectl create -f dashboard-secret.yaml  #创建安全验证

在这里插入图片描述

[root@master1 dashboard]# kubectl create -f dashboard-configmap.yaml   #创建配置

在这里插入图片描述

[root@master1 dashboard]# kubectl create -f dashboard-controller.yaml

[root@master1 dashboard]# kubectl get ServiceAccount -n kube-system    #查看服务资源
[root@master1 dashboard]# kubectl get deployment -n kube-system    #查看控制器资源 
//命令格式: kubectl get 资源类型 -n 名称空间

在这里插入图片描述

[root@master1 dashboard]# kubectl create -f dashboard-service.yaml 
service/kubernetes-dashboard created

[root@master1 dashboard]# kubectl get service -n kube-system   
NAME                   TYPE       CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
kubernetes-dashboard   NodePort   10.0.0.89    <none>        443:30001/TCP   38s
#可以看到对外提供访问的端口是30001

3、完成创建后,可以查看创建在指定的 kube-system命名空间下的各种资源类型,比如:pod、service

//svc是service服务资源的简写
[root@master1 dashboard]# kubectl get pods,svc -n kube-system

NAME                                        READY   STATUS              RESTARTS   AGE
pod/kubernetes-dashboard-65f974f565-jwj67   0/1     ContainerCreating   0          15m

NAME                           TYPE       CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
service/kubernetes-dashboard   NodePort   10.0.0.89    <none>        443:30001/TCP   5m43s

查看资源创建在哪个node节点上

// -o wide可以查看所在的node节点
[root@master1 dashboard]# kubectl get pods -n kube-system -o wide
NAME                                    READY   STATUS              RESTARTS   AGE   IP       NODE              NOMINATED NODE
kubernetes-dashboard-65f974f565-jwj67   1/1     Running             1          82m   172.17.7.2   192.168.100.131   <none>

此时,我们用谷歌浏览器访问:https://192.168.100.131:30001/

但是谷歌浏览器需要TLS证书才能访问。
在这里插入图片描述
打开开发者工具查看:
在这里插入图片描述
在这里插入图片描述

三、谷歌浏览器制作自签证书

在 master01上编写脚本

[root@localhost dashboard]# vim dashboard-cert.sh
cat > dashboard-csr.json <<EOF
{
   "CN": "Dashboard",
   "hosts": [],
   "key": {
       "algo": "rsa",
       "size": 2048
   },
   "names": [
       {
           "C": "CN",
           "L": "BeiJing",
           "ST": "BeiJing"
       }
   ]
}
EOF
K8S_CA=$1
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

接下来,就是生成两个证书:dashboard-key.pem、dashboard.pem

[root@localhost dashboard]# bash dashboard-cert.sh /root/k8s/k8s-cert/

[root@localhost dashboard]# vim dashboard-controller.yaml
在 args目录下,添加生成的两个证书的路径:
 args:
          # PLATFORM-SPECIFIC ARGS HERE
          - --auto-generate-certificates
          - --tls-key-file=dashboard-key.pem
          - --tls-cert-file=dashboard.pem

在这里插入图片描述
//接下来,进行重新部署(用apply更新):

[root@localhost dashboard]#  kubectl apply -f dashboard-controller.yaml  #修改之后要更新

注意:重新部署可能会把pod资源分到另一个node节点上,故再次查看

[root@localhost dashboard]# kubectl get pods -n kube-system -o wide

四、访问web页面

然后,我们访问网站:https://https://192.168.100.136:30001/选择继续前往
在这里插入图片描述
选择接受风险并继续,选择令牌:
在这里插入图片描述
接下来,我们要做的就是生成令牌,在浏览器中填入即可:

//生成令牌:

[root@master1 dashboard]# kubectl create -f k8s-admin.yaml
serviceaccount/dashboard-admin created
clusterrolebinding.rbac.authorization.k8s.io/dashboard-admin created

k8s-admin.yaml内容:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: dashboard-admin
  namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: dashboard-admin
subjects:
  - kind: ServiceAccount
    name: dashboard-admin
    namespace: kube-system
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

//查看生成的安全资源名字

[root@master1 dashboard]# kubectl get secret -n kube-system

在这里插入图片描述
//查看令牌:

[root@master1 dashboard]# kubectl describe secret dashboard-admin-token-6ljj6 -n kube-system

而下面,就是生成令牌的一段密文:
在这里插入图片描述
我们把这段密文复制,然后粘贴到,浏览器上面的空白处即可:
在这里插入图片描述
然后,我们就可以在控制面板上,管理我们的各个组件,查看各类信息和概况等等,非常的方便。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值