目录贴:Kubernetes学习系列

  

在之前一篇文章:Centos7部署Kubernetes集群,中已经搭建了基本的K8s集群,本文将在此基础之上继续搭建K8s DashBoard。

1、yaml文件

  编辑dashboard.yaml,注意或更改以下红色部分:

  1. apiVersion: extensions/v1beta1
  2. kind: Deployment
  3. metadata:
  4. # Keep the name in sync with image version and
  5. # gce/coreos/kube-manifests/addons/dashboard counterparts
  6. name: kubernetes-dashboard-latest
  7. namespace: kube-system
  8. spec:
  9. replicas:
  10. template:
  11. metadata:
  12. labels:
  13. k8s-app: kubernetes-dashboard
  14. version: latest
  15. kubernetes.io/cluster-service: "true"
  16. spec:
  17. containers:
  18. - name: kubernetes-dashboard
  19. image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1
  20. resources:
  21. # keep request = limit to keep this container in guaranteed class
  22. limits:
  23. cpu: 100m
  24. memory: 50Mi
  25. requests:
  26. cpu: 100m
  27. memory: 50Mi
  28. ports:
  29. - containerPort:
  30. args:
  31. - --apiserver-host=http://10.0.251.148:8080
  32. livenessProbe:
  33. httpGet:
  34. path: /
  35. port:
  36. initialDelaySeconds:
  37. timeoutSeconds:

  编辑dashboardsvc.yaml文件:

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: kubernetes-dashboard
  5. namespace: kube-system
  6. labels:
  7. k8s-app: kubernetes-dashboard
  8. kubernetes.io/cluster-service: "true"
  9. spec:
  10. selector:
  11. k8s-app: kubernetes-dashboard
  12. ports:
  13. - port:
  14. targetPort:

2、镜像准备

  在dashboard.yaml中定义了dashboard所用的镜像:gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1(当然你可以选择其他的版本),另外,启动k8s的pod还需要一个额外的镜像:registry.access.redhat.com/rhel7/pod-infrastructure:latest(node中,/etc/kubernetes/kubelet的配置),由于一些众所周知的原因,这两个镜像在国内是下载不下来的,以下介绍如何准备这两个镜像。

2.1 国外下载,国内导入

  从海外的服务器上pull下来对应的镜像,之后通过docker save保存成tar包,将tar包传回国内,在每个node上执行docker load将镜像导入。类似的命令如下:

  1. 海外服务器执行:
  2. docker save gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1 > dashboard.tar
  3. docker save registry.access.redhat.com/rhel7/pod-infrastructure:latest > podinfrastructure.tar
  4. scp *.tar root@你国内的外网IP:/home/tar
  5. 各个node上执行:
  6. docker load < dashboard.tar
  7. docker load < podinfrastructure.tar

2.2 搭梯子

  在node所在同网段(相同交换机)内,搭建一个可以正常访问google、Facebook等网站的fq网关,将集群中所有机器的GATEWAY指向该地址,之后重启网络。这样,所有的机器就能够正常下载这两个镜像了。

3、启动

  在master执行如下命令:

  1. kubectl create -f dashboard.yaml
  2. kubectl create -f dashboardsvc.yaml

  之后,dashboard搭建完成。

4、验证

  命令验证,master上执行如下命令:

  1. [root@k8s-master ~]# kubectl get deployment --all-namespaces
  2. NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
  3. kube-system kubernetes-dashboard-latest 1h
  4. [root@k8s-master ~]# kubectl get svc --all-namespaces
  5. NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  6. default kubernetes 10.254.0.1 <none> /TCP 9d
  7. kube-system kubernetes-dashboard 10.254.44.119 <none> /TCP 1h
  8. [root@k8s-master ~]# kubectl get pod -o wide --all-namespaces
  9. NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE
  10. kube-system kubernetes-dashboard-latest--vsf3h / Running 1h 10.0.82.2 k8s-node-

  界面验证,浏览器访问:http://10.0.251.148:8080/ui

5、销毁应用

  在master上执行:

  1. kubectl delete deployment kubernetes-dashboard-latest --namespace=kube-system
  2. kubectl delete svc kubernetes-dashboard --namespace=kube-system

基于kubernetes集群部署DashBoard的更多相关文章

  1. 基于Kubernetes集群部署skyDNS服务

    目录贴:Kubernetes学习系列 在之前几篇文章的基础,(Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard.为Kubernetes集群部署本地镜像仓库 ...

  2. 为Kubernetes集群部署本地镜像仓库

    目录贴:Kubernetes学习系列 经过之前两篇文章:Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard,我们基本上已经能够在k8s的集群上部署一个应用了 ...

  3. 基于kubernetes集群的Vitess最佳实践

    概要 本文主要说明基于kubernetes集群部署并使用Vitess; 本文假定用户已经具备了kubernetes集群使用环境,如果不具备请先参阅基于minikube的kubernetes集群搭建, ...

  4. 基于Kubernetess集群部署完整示例——Guestbook

    目录贴:Kubernetes学习系列 本文依赖环境:Centos7部署Kubernetes集群.基于Kubernetes集群部署skyDNS服务 该示例中,我们将创建一个redis-master.两个 ...

  5. 部署Bookinfo示例程序详细过程和步骤(基于Kubernetes集群+Istio v1.0)

    部署Bookinfo示例程序详细过程和步骤(基于Kubernetes集群+Istio v1.0) 部署Bookinfo示例程序   在下载的Istio安装包的samples目录中包含了示例应用程序. ...

  6. Kubernetes集群部署关键知识总结

    Kubernetes集群部署需要安装的组件东西很多,过程复杂,对服务器环境要求很苛刻,最好是能连外网的环境下安装,有些组件还需要连google服务器下载,这一点一般很难满足,因此最好是能提前下载好准备 ...

  7. kubernetes集群部署

    鉴于Docker如此火爆,Google推出kubernetes管理docker集群,不少人估计会进行尝试.kubernetes得到了很多大公司的支持,kubernetes集群部署工具也集成了gce,c ...

  8. Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

    在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...

  9. Docker学习-Kubernetes - 集群部署

    Docker学习 Docker学习-VMware Workstation 本地多台虚拟机互通,主机网络互通搭建 Docker学习-Docker搭建Consul集群 Docker学习-简单的私有Dock ...

随机推荐

  1. java字符串集合

    一,java的接口跟C语言所能做到的相比确实是让人眼前一亮的东西.利用接口可以将多种东西放到一起,在编程过程中就能省略掉相同类的很多重复代码,将代码进行分类别的,统一的处理. 二,java中的字符串处 ...

  2. js 执行上下文理解

    前端基础进阶(三):变量对象详解http://www.jianshu.com/p/330b1505e41d 1.创建阶段 a.生成变量对象    1.创建arguments对象   2.functio ...

  3. 关于windows下的虚拟机Homestead在推送代码上github 步骤

    1.ssh 秘钥登录配置 使用以下命令检查主机是否生成SSH Key: > ls -al ~/.ssh 2.如果有秘钥,那就跳过这个步骤,如果没有秘钥,则运行以下命令来生成秘钥: ssh-key ...

  4. prim算法,克鲁斯卡尔算法---最小生成树

    最小生成树的一个作用,就是求最小花费.要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光 ...

  5. python - 数据描述符(class 内置 get/set/delete方法 )

    数据描述符(class 内置 get/set/del方法 ): # 什么是描述符 # 官方的定义:描述符是一种具有“捆绑行为”的对象属性.访问(获取.设置和删除)它的属性时,实际是调用特殊的方法(_g ...

  6. RNN(1) ------ “理解LSTM”(转载)

    原文链接:http://www.jianshu.com/p/9dc9f41f0b29 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这 ...

  7. DFP算法(转载)

    转载链接:http://blog.csdn.net/itplus/article/details/21896981 注意:式(2.25)中,蓝色变量之所以是实数可以根据它们的矩阵系数相乘为1*1得到.

  8. 【vim】保存文件没有权限 :w !sudo tee %

    每当你打开一个你没有写入权限的文件(比如系统配置文件)并做了一些修改,Vim 无法通过普通的 ":w" 命令来保存. 你不需要重新以 root 方式打开文件再进行修改,只需要运行: ...

  9. secureCRT连接linux系统

    linux和secureCRT利用ssh协议22端口进行远程连接的 连接如果没有成功,请检查远程主机的端口和ssh是否开启 一.检查看SSH服务是否开启 当然有的linux系统使用的命令是/etc/i ...

  10. 使用NGINX+Openresty和unixhot_waf开源防火墙实现WAF功能

    使用NGINX+Openresty实现WAF功能 一.了解WAF1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 .英文:Web Application Firewall,简称: ...