docker kubernetes dashboard安装部署详细介绍

docker之kubernetes dashboard部署

1. 环境说明:

1). 架构:

注: 本次实验服务器环境均采用centos 7. 服务安装均采用yum install.

192.168.3.7 master
192.168.3.16 node

2).使用的软件包:

master: docker kubernetes-master etcd flannel
nodes: docker kubernetes-node flannel

3). 软件版本:

docker: 1.10.3
kubernetes*: 1.2.0
etcd: 2.3.7

4). 软件包说明:

docker: 主角,不用说了
kubernetes-master: kubernetes 服务端
kubernetes-node: kubernetes 客户端
etcd: 服务器发现的键值存储
flannel: 打通多台服务器上的docker容器之间的网络互通

2. 环境初始化:

你都搞docker了,初始化该做些什么,我就不教你了.
备份现有的yum源文件,搞一个阿里云的yum源,epel源.
地址: http://mirrors.aliyun.com

3. 安装配置docker:

注: docker采用net模式. 确保device-mapper软件包已经安装,否则docker无法启动.

1). 安装
# yum install docker -y
2). 配置
# cat /etc/sysconfig/docker|egrep -v "^#|^$"
OPTIONS=''
DOCKER_CERT_PATH=/etc/docker

4. 配置master

1). 安装软件包.
# yum install kubernetes-master etcd flannel-y
2). 配置etcd.
# cat /etc/etcd/etcd.conf |egrep -v "^#|^$"
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ## 监听地址端口
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.3.7:2379" ## etcd集群配置;多个etcd服务器,直接在后面加url

##启动etcd服务
# systemctl start etcd

3). 配置kubernetes.

在/etc/kubernetes 目录中有以下几个文件:
apiserver: kubernetes api 配置文件
config: kubernetes 主配置文件
controller-manager: kubernetes 集群管理配置文件
scheduler: kubernetes scheduler配置文件

# cd /etc/kubernetes
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" ## kube启动时绑定的地址
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.3.7:2379" ## kube调用etcd的url
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=172.17.0.0/16" ## 此地址是docker容器的地址段
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""

注意KUBE_ADMISSION_CONTROL这一行的配置: 移除ServiceAccount 项目,否则在后期中会报出没有认证错误.

# cat config |egrep -v "^#|^$"
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://192.168.3.7:8080" ## kube master api url

controller-manager scheduler 两个文件采用默认配置即可.

5. 配置nodes

1). 安装软件包.

# yum install kubernetes-node flannel -y

2). 配置kubernetes node

安装完软件包之后,会在/etc/kubernetes目录下出现以下文件:

config: kubernetes 主配置文件
kubelet: kubelet node配置文件
proxy: kubernetes proxy 配置文件

# cd /etc/kubernetes
# cat config |egrep -v "^#|^$"
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://192.168.3.7:8080" ## kube master api url

# cat kubelet |egrep -v "^#|^$"
KUBELET_ADDRESS="--address=0.0.0.0" ## kubelet 启动后绑定的地址
KUBELET_PORT="--port=10250" ## kubelet 端口
KUBELET_HOSTNAME="--hostname-override=192.168.3.16" ##kubelet的hostname,在master执行kubectl get nodes显示的名字
KUBELET_API_SERVER="--api-servers=http://192.168.3.7:8080" ## kube master api url
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=""

proxy 配置默认即可.

6. 网络配置:

master和node均已经安装flannel

master配置:

# cat /etc/sysconfig/flanneld |egrep -v "^#|^$"
FLANNEL_ETCD="http://192.168.3.7:2379"
FLANNEL_ETCD_KEY="/kube/network"

# etcdctl mk /kube/network/config '{"Network":"172.17.0.0/16"}' ## 注意此处的ip和上文中出现的ip地址保持一致.

node配置:

# cat /etc/sysconfig/flanneld |egrep -v "^#|^$"
FLANNEL_ETCD="http://192.168.3.7:2379"
FLANNEL_ETCD_KEY="/kube/network"

7. 启动服务.

1). 启动docker服务.

# systemctl start docker
# ps aux|grep docker ## 确认下服务是否正常启动.如果没有启动请移步/var/log/message看问题

2). 启动etcd服务

# systemctl start etcd

3). 启动master 和node上的flanneld服务

# systemctl start flanneld

查看ip,会出现flannel0的网络接口设备,该地址和docker0地址是一致的,如果不一致请确认以上服务是否正常启动

4). 启动运行在master上的k8s服务.

启动顺序:kube-apiserver居首.
# systemctl start kube-apiserver
# systemctl start kube-controller-manager
# systemctl start kube-scheduler

请确认以上服务是否都有正常启动.

5). 启动运行在node上的k8s服务.
# systemctl start kube-proxy
# systemctl start kubelet

请确认以上服务是否都有正常启动.

6). 访问http://kube-apiserver:port
http://192.168.3.7:8080 查看所有请求url
http://192.168.3.7:8080/healthz/ping 查看健康状况

8. 开启k8s dashboard:

1). 在master上验证服务.
# kubectl get nodes ## 获取k8s客户端.
NAME STATUS AGE
192.168.3.16 Ready 6h
# kubectl get namespace ## 获取k8s所有命名空间
NAME STATUS AGE
default Active 17h
2). 在master上新建kube-system的namespace
# cd /usr/local/src/docker
# cat kube-namespace.yaml
{
"kind": "Namespace",
"apiVersion": "v1",
"metadata": {
"name": "kube-system"
}
}
# kubectl create -f kube-namespace.yaml
namespace "kube-system" created
# kubectl get namespace ## 获取k8s所有命名空间
NAME STATUS AGE
default Active 17h
kube-system Active 17h

3). 在master上新建kube-dashboard.yaml

wget http://docs.minunix.com/docker/kubernetes-dashboard.yaml -O /usr/local/src/docker/kube-dashboard.yaml

请将文件中apiserver-host修改为自己的kebu-apiserver

创建pod:

# kubectl create -f kube-dashboard.yaml
deployment "kubernetes-dashboard" created
You have exposed your service on an external port on all nodes in your
cluster. If you want to expose this service to the external internet, you may
need to set up firewall rules for the service port(s) (tcp:31576) to serve traffic.

See http://releases.k8s.io/release-1.2/docs/user-guide/services-firewalls.md for more details.
service "kubernetes-dashboard" created

验证:

# kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
kubernetes-dashboard-3138400848-grtfm 1/1 ContainerCreating 0 27s

查看该容器的详细过程:

# kubectl describe pods kubernetes-dashboard-3138400848-grtfm --namespace=kube-system

当有多个node,可以用该命令中看到容器被分配到哪个node上,启动后分配的ip地址等信息.
如果在结果中看到"State: Running"时,请移步到node查看容器运行状态,应该也是up的状态.

4). 此时可以通过http://kube-apiserver:port/ui访问

http://192.168.3.7:8080/ui

开始尽情使用docker吧!

9. 注意点&遇到的问题:

1). 注意服务的启动顺序,特别是master,在确保etcd启动的情况下,先启动apiserver

2). 注意yaml文件的格式缩进.

3). 如果发现刚创建的pod的status是depening,原因可能有几点:其一,客户端配置有listen 127.0.0.1的服务,master无法与其建立连接;其二,环境初始化没有做好;其三,移步node,使用docker logs 查看日志

4). kubernetes-dashboard.yaml文件中的containers images地址目前为公开的,09月30日会关闭.

5). 如果自己有国外vps,可在服务器上创建docker registry;先pull下google的k8s dashboard,然后push到自己的registry,自己修改下yaml中的image即可.

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 详解ASP.NET Core 网站在Docker中运行

    Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署,到处运行. 本文介绍如何把ASP.NET Core网站部署在Docker中运行. 软件环境清单 CentOS 7.3.1611 Docker 1.12.6 .NET Core 1.1 安装Docker $ #安装Docker $ yum install docker $ #启动docker服务 $

  • 利用docker-compose搭建AspNetCore开发环境

    使用docker-compose搭建AspNetCore开发环境 1 使用docker-compose搭建开发环境 我们的目标很简单:使用docker-compose把若干个docker容器组合起来就成了. 首先使用Nginx代理所有的Web程序,这样只需要在主机上监听一个端口就可以了,不污染主机.再组合各Web程序.Redis/Memcached.SqlServerOnLinux. 新建一个目录sites,所有和集群相关的都放在这里,目录结构如下所示 sites     nginx      

  • Visual studio 2017如何发布dotnet core到docker

    docker的好处不用多说,有不了解的可移步<docker入门>,作为一个.net方面的老鸟也想早点搭上docker末班车,减少布署中的各种坑.以下我是在Visual Studio 2017正式版发布后(其实VS2015也是可以的),完全跑起来的步骤. 第一步:安装docker 下载地址:https://www.docker.com/docker-windows,下载的同时先去"控制面板""程序"里启用"Hyper-V",启用完了,下

  • 详解ASP.NET Core Docker部署

    前言 在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序. ASP.NET Nginx 发布和部署 :http://www.cnblogs.com/savorboard/p/dotnet-core-publish-nginx.html. Asp.Net Jexus 发布和部署:http://www.cnblogs.com/savorboard/p/dot-n

  • docker kubernetes dashboard安装部署详细介绍

    docker之kubernetes dashboard部署 1. 环境说明: 1). 架构: 注: 本次实验服务器环境均采用centos 7. 服务安装均采用yum install. 192.168.3.7 master 192.168.3.16 node 2).使用的软件包: master: docker kubernetes-master etcd flannel nodes: docker kubernetes-node flannel 3). 软件版本: docker: 1.10.3 k

  • 极验验证码 安装部署详细介绍

    随着互联网在人们生活中的地位越来越高,互联网安全问题也开始变得重要起来. 互联网黑色产业链就是互联网安全领域最强劲的敌人. 想必大家对于黑产都有所了解,那么黑产具体是怎么运作盈利的呢?大家可以查看下图哦~ 所以,保护账户安全是抗击黑产的第一步!而验证码就是确保账户安全的重要途径! 传统验证码不仅给用户带来了非常差的体验,而且在安全性上也开始抵抗不了黑客的恶意攻击!因此,安全性高.用户体验好的新型验证码才是我们需求的! 目前市场上,广受好评的"极验验证码",我觉得就很不错~ 大家可以体验

  • 生产库自动化MySQL5.6安装部署详细教程

    自动化运维是一个DBA应该掌握的技术,其中,自动化安装数据库是一项基本的技能,本文中的安装脚本已通过测试,作为生产库来说没有问题,鉴于每个公司存储规划要求不同,可以按需自行修改脚本. 脚本中已经注释说明一些基本的安装信息 本脚本默认启用5.6部分新特性 innodb_buffer_pool_dump_at_shutdown=1 它dump的不是数据,是Id号 innodb_buffer_pool_load_at_startup=1 开启这个两个参数当数据库重启后把这些热数据重新加载回去 只有正常

  • Nginx Linux安装部署详细教程

    一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二.Nginx安装 1.下载Nginx及相关组件 Linux系统是Centos 6.5 64位,我直接切换到root用户下安装 进入用户目录下载程序 下载相关组件 [root@localhost src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz 省略安装内容...

  • Dubbo 2.7X 安装部署详细流程分析

    目录 一.安装注册中心zookeeper 二.安装dubbo amdin 三.dubbo-admin-ui服务配置 一.安装注册中心zookeeper 下载地址:https://mirrors.bfsu.edu.cn/apache/zookeeper/ 1.下载直接解压,进入../conf/目录下复制一份zoo_sample.conf, 改名为zoo.cfg # dataDir里放的是内存数据结构的snapshot dataDir=../data # 客户端连接zookeeper服务的端口 cl

  • Python 通过pip安装Django详细介绍

    Python 通过pip安装Django详细介绍 经过前面的 Python 包管理工具的学习,接下来我们就要基于前面的知识,来配置 Django 的开发与运行环境. 首先是安装 Django(通过pip安装): pip install Django 输出的结果在我这里是这样的: Downloading/unpacking Django Downloading Django-1.5.2.tar.gz (8.0MB): 8.0MB downloaded Running setup.py egg_in

  • mysql zip archive 版本(5.7.19)安装教程详细介绍

    1.  从官网下载zip archive版本http://dev.mysql.com/downloads/mysql/ MySQL v5.7.19 官方正式版(32/64位 安装版与zip解压版) 2. 解压缩至相应目录,并配置环境变量(将*\bin添加进path中): 3. 理论上现在这样就可以直接安装服务了,但是因为是默认配置,我们使用的时候会出现很多问题.比如里面的汉字全是乱码之类的,所以建议先配置一下默认文件.在解压的mysql目录下,新建个my.ini,//在根目录新建my.ini文件

  • zabbix 2.2安装步骤详细介绍

    Zabbix简介 Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利. 官方网站:http://www.zabbix.com 官方文档:http://www.zabbix.com/documentation/2.0/manual/quickstart. Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置. Zabbix运行条件: Server:Zabbix Server需运行在LAMP(Lin

  • 各种Python库安装包下载地址与安装过程详细介绍(Windows版)

    在用Python开发时(Windows环境),会碰到需要安装某个版本的第三方库,为了以后查找.安装方便,总结如下: windows版的各种Python库安装包下载地址: http://www.lfd.uci.edu/~gohlke/pythonlibs/ 一.打开cmd 二.将cmd当前目录切换到Downloads,命令为cd Downloads 三.在文章开头链接地址下载所需第三方库,以SciPy为例:0.18.1是库版本号:cp27.cp35分别对应Python2.7.Python3.5:w

  • Nginx下SSL证书安装部署步骤介绍

    目录 问题描述: 安装步骤 1.准备工作 2.远程连接服务器 3.拷贝证书和私钥文件 4.编辑 Nginx 根目录下的 conf/nginx.conf 文件 5.在 Nginx 根目录下,通过执行以下命令验证配置文件问题 6.重启 Nginx,访问网站 问题描述: 小编遇到https协议过期了,于是重新申请,在Nginx服务器部署SSL证书 安装步骤 1.准备工作 在 SSL 证书管理控制台 中下载并解压缩 cloud.tencent.com 证书文件包到本地目录. 解压缩后,可获得相关类型的证

随机推荐