虚拟化容器,大数据,DBA,中间件,监控。

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

11 11月
作者:admin|分类:容器虚拟化

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:8080 k8s maste api地址
/api api服务
/v1 api的版本
/proxy 表示代理的意思
/namespaces 使用的namespace是什么
/default 使用的namespace是默认的default
/services 资源类型是service
/nginx-proxy-svc svc资源的名称
浏览391 评论0
返回
目录
返回
首页
k8s部署dns组件和heapster监控(十二) k8s实现tomcat+mysql容器之间相互访问(九)