基于kubernetes构建Docker集群管理详解

一、环境部署
1、平台版本说明
    1)Centos7.0 OS
    2)Kubernetes V0.6.2
    3)etcd version 0.4.6
    4)Docker version 1.3.2

2、平台环境说明

192.168.1.20  kubernetes etcd

192.168.1.21  kubernetes docker

192.168.1.22  kubernetes docker

192.168.1.23  kubernetes docker





wKiom1muZjWjQ8QQAAQXYH6zf9M753.png


在这张系统架构图中,我们把服务分为运行在工作节点上的服务和组成集群级别控制板的服务。

Kubernetes节点有运行应用容器必备的服务,而这些都是受Master的控制。

每次个节点上当然都要运行Docker。Docker来负责所有具体的映像下载和容器运行。

Kubernetes主要由以下几个核心组件组成:

  • etcd保存了整个集群的状态;

  • apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;

  • controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;

  • scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;

  • kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;

  • Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);

  • kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;


3、环境安装
    1)系统初始化工作(所有主机)
    系统安装-选择[最小化安装]

    # yum -y install wget ntpdate bind-utils lrzsz vim 

    # wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/epel-release-7-6.noarch.rpm    

    # yum update

 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙(熟悉度更高,非必须)。
    1.1、关闭firewall:

    # systemctl stop firewalld.service #停止firewall
    # systemctl disable firewalld.service #禁止firewall开机启动

    

    2 )安装Etcd Kubernetes(192.168.1.20主机)

    #yum install etcd kubernetes -y

    

    3 )安装Kubernetes docker(192.168.1.21,192.168.1.22,192.168.1.23主机)

    #yum install  kubernetes docker -y



4、启动服务

    1) master 启动服务(192.168.1.20)

    #systemctl daemon-reload
    #systemctl enable kube-apiserver.service
    #systemctl start kube-apiserver.service

    #systemctl enable kube-controller-manager
    #systemctl start kube-controller-manager

    #systemctl enable kube-controller-manager
    #systemctl start kube-controller-manager

    ####通过systemctl status <service>  查看服务是否启动成功

    wKiom1m2D-_AupwzAABMIazlVLw208.png

此处修改过的配置文件

    

    #cat /etc/kubernetes/config | grep -v ^# | grep -v ^$

    KUBE_LOGTOSTDERR="--logtostderr=false"            #设置为false表示将日志写入文件
    KUBE_LOG_LEVEL="--v=2"                                        #日志级别
    KUBE_ALLOW_PRIV="--allow-privileged=false"        #如果设置为true,则kubernetes将允许pod中运行拥有系统特权的容器应用
    KUBE_MASTER="--master=http://192.168.1.20:8080"        


    #cat /etc/kubernetes/apiserver | grep -v ^# | grep -v ^$

    KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"        #apiserver绑定主机的非安全ip地址
    KUBE_API_PORT="--port=8080"            #apiserver绑定主机的非安全端口号,默认8080  

    KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.1.20:2379"
    KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"    #server地址段,不能与实际ip冲突
    KUBE_ADMISSION_CONTROL="--admission-                      control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"            #kubernetes集群的准入控制设置
    KUBE_API_ARGS="" 

    

    

    2) slave启动服务 (192.168.1.21,192.168.1.22,192.168.1.23)

    #systemctl daemon-reload 
    #systemctl enable kubelet
    #systemctl start kubelet
    #systemctl enable kube-proxy
    #systemctl start kube-proxy

    wKiom1m2EA6DAbwgAAA8Iu3nxks954.png

        

     #cat /etc/kubernetes/kubelet | grep -v ^# | grep -v ^$

    KUBELET_ADDRESS="--address=127.0.0.1"
    KUBELET_HOSTNAME="--hostname-override=192.168.1.21"        #master里获取的minion名字
    KUBELET_API_SERVER="--api-servers=http://192.168.1.20:8080"            
    KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7    /podinfrastructure:latest"
    KUBELET_ARGS="--logtostderr=true --log-dir=/var/log/kubernetes --v=2"


    使用kubectl get nodes 查看已经加进来的node

    wKioL1m2OY_hsJ6TAAAQPAVJLoA224.png



本文转自 转身撞墙角 51CTO博客,原文链接:http://blog.51cto.com/chentianwang/1957398

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/535166

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。