k8s部署dashboard.及反向代理services(十一)

it2025-12-11  2

k8s部署dashboard

dashboard就是k8s的图形管理工具,可以查看node、pod、namespace等各种资源

1.准备镜像并上传至私有仓库

[root@k8s-master dashboard]# docker load -i kubernetes-dashboard-amd64_v1.4.1.tar.gz [root@k8s-master dashboard]# docker tag index.tenxcloud.com/google_containers/kubernetes-dashboard-amd64:v1.4.1 192.168.81.240/k8s/kubernetes-dashboard-amd64:v1.4.1 [root@k8s-master dashboard]# docker push 192.168.81.240/k8s/kubernetes-dashboard-amd64:v1.4.1 The push refers to a repository [192.168.81.240/k8s/kubernetes-dashboard-amd64] 5f70bf18a086: Mounted from k8s/tomcat-app 2e350fa8cbdf: Pushed v1.4.1: digest: sha256:e446d645ff6e6b3147205c58258c2fb431105dc46998e4d742957623bf028014 size: 1147

2.准备dashboard-deployment yaml文件

[root@k8s-master ~]# mkdir /k8s/dashboard [root@k8s-master dashboard]# vim dashboard.yaml apiVersion: extensions/v1beta1 #api版本 kind: Deployment #资源类型 metadata: name: kubernetes-dashboard-latest-deploy #资源名称 namespace: kube-system #名称空间,不同业务对应不同的命名空间 spec: replicas: 1 #pod数量 template: metadata: labels: k8s-app: kubernetes-dashboard #标签 version: latest #版本 kubernetes.io/cluster-service: "true" spec: containers: - name: kubernetes-dashboard #容器名称 image: 192.168.81.240/k8s/kubernetes-dashboard-amd64:v1.4.1 #镜像地址 resources: limits: cpu: 100m #CPU最大限制 memory: 50Mi #内存最大限制 requests: cpu: 100m #CPU最小限制 memory: 50Mi #内存最小限制 ports: - containerPort: 9090 #容器端口 args: - --apiserver-host=http://192.168.81.210:8080 #与api进行关联 livenessProbe: #资源检测 httpGet: path: / #首页 port: 9090 #端口 initialDelaySeconds: 30 timeoutSeconds: 30

3.准备dashboard-svc yaml文件

[root@k8s-master dashboard]# vim dashboard_svc.yaml apiVersion: v1 #api版本 kind: Service #资源类型 metadata: name: kubernetes-dashboard-svc #资源名称 namespace: kube-system #名称空间 labels: k8s-app: kubernetes-dashboard #与deployment关联的标签 kubernetes.io/cluster-service: "true" spec: selector: k8s-app: kubernetes-dashboard #标签关联 ports: - port: 80 #虚拟ip端口 targetPort: 9090 #pod端口

4.创建dashoard组件

由于yaml文件中定义了名称空间,因此这里要指定名称空间才能查看对应的资源

真实企业环境也是不同资源对应不同的名称空间

1)创建deployment资源 [root@k8s-master dashboard]# kubectl create -f dashboard.yaml deployment "kubernetes-dashboard-latest-deploy" created 2)创建svc资源 [root@k8s-master dashboard]# kubectl create -f dashboard_svc.yaml service "kubernetes-dashboard" created 3)查看资源状态 [root@k8s-master dashboard]# kubectl get all --namespace=kube-system -o wide NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE deploy/kubernetes-dashboard-latest-deploy 1 1 1 1 19s NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR svc/kubernetes-dashboard 10.254.72.0 <none> 80/TCP 14s k8s-app=kubernetes-dashboard NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR rs/kubernetes-dashboard-latest-deploy-3050469117 1 1 1 19s kubernetes-dashboard 192.168.81.240/k8s/kubernetes-dashboard-amd64:v1.4.1 k8s-app=kubernetes-dashboard,kubernetes.io/cluster-service=true,pod-template-hash=3050469117,version=latest NAME READY STATUS RESTARTS AGE IP NODE po/kubernetes-dashboard-latest-deploy-3050469117-5mknc 1/1 Running 0 19s 172.16.54.2 192.168.81.230 kubectl get pod --namespace=kube-system -o wide kubectl get svc --namespace=kube-system -o wide kubectl get deployment --namespace=kube-system -o wide

5.页面访问

浏览器输入http://192.168.81.210:8080/ui

6.dashboard操作

创建资源

workloads—deployment—create

默认创建为rc

7.反向代理service

反向代理service就是用master地址去访问pod

不配置nodeport默认是clusterip类型,不配置nodeport就可以用matser地址加上名称空间资源名即可访问到站点内容,即使配置了nodeport也可以使用以上方式来访问

http://master地址:端口/api/v1/proxy/namespaces/命名空间/名称/资源类型/资源名

7.1.准备反向代理目录

[root@k8s-master fxdl]# mkdir /k8s/fxdl

7.2.准备deployment资源yaml文件

[root@k8s-master fxdl]# vim proxy_deploy.yaml apiVersion: extensions/v1beta1 #api版本 kind: Deployment #资源类型 metadata: name: nginx-proxy #资源名称 spec: replicas: 3 #启动的pod数量 template: metadata: labels: app: nginx-proxy #标签 spec: containers: - name: nginx #容器名 image: 192.168.81.240/k8s/nginx:1.13 #镜像地址 ports: - containerPort: 80 #端口

7.3.准备svc资源yaml文件

[root@k8s-master fxdl]# vim proxy_svc.yaml apiVersion: v1 #api版本 kind: Service #资源类型 metadata: name: nginx-proxy-svc #资源名称 spec: selector: app: nginx-proxy #标签,与deployment的标签进行关联 ports: - port: 888 #虚拟ip,clusterip的端口,可以自己定义 targetPort: 80 #pod端口,应用的端口,nginx容器默认是80

7.4.创建资源

[root@k8s-master fxdl]# kubectl create -f proxy_deploy.yaml deployment "nginx-proxy" created [root@k8s-master fxdl]# kubectl create -f proxy_svc.yaml service "nginx-proxy-svc" created

7.5.查看资源状态

[root@k8s-master fxdl]# kubectl get all -o wide

deployment管理rs,rs管理pod,hpa管理deployment

7.6.用master访问资源

浏览器访问:http://192.168.81.210:8080/api/v1/proxy/namespaces/default/services/nginx-proxy-svc/ http://192.168.81.210:8080/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard dashboard用的namespace是kube-system 链接目录含义http://192.168.81.210:8080k8s maste api地址/apiapi服务/v1api的版本/proxy表示代理的意思/namespaces使用的namespace是什么/default使用的namespace是默认的default/services资源类型是service/nginx-proxy-svcsvc资源的名称
最新回复(0)