4-11 搭建 Kubernetes容器集群管理系统

 

本节所讲内容:

Kubernetes和相关组件的介绍

配置yum源安装kubernetes及组件

配置etcd-master

配置minion1节点

配置minion2结点-启动kubernetes容器云平台

 

 实验环境:需要三台全新的RHEL7.2系统

1          Kubernetes概述

   Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件。 基于容器的云平台

Kubernetes基于docker容器的云平台,简写成: k8s 。

openstack基于kvm虚拟机云平台。

官网:https://kubernetes.io/

 

 

 Kubernetes的架构设计图:

 

 

Kubernetes常见组件介绍

先按以一下顺序来介绍:

 

 

1、master: kubernetes管理结点

2、apiserver : 提供接口服务,用户通过apiserver来管理整个容器集群平台

3、scheduler kubernetes调度服务

4、Replication Controllers 复制, 保证pod的高可用

Replication ControllerKubernetes系统中最有用的功能,实现复制多个Pod副本,往往一个应用需要多个Pod来支撑,并且可以保证其复制的副本数,即使副本所调度分配的宿主机出现异常,通过Replication Controller可以保证在其它宿主机启用同等数量的PodReplication Controller可以通过repcon模板来创建多个Pod副本,同样也可以直接复制已存在Pod,需要通过Label selector来关联。

 

接下介绍,从下往上说,从你最熟悉的知识开始

 

 

5、minion : 真正运行容器container的物理机。 kubernets中需要很多minion机器,来提供运算。

minion [ˈmɪniən] 爪牙

6、container : 容器 ,可以运行服务和程序

7、 Pod

在Kubernetes系统中,调度的最小颗粒丌是单纯的容器,而是抽象成一个Pod,Pod是一个可以被创建、销毁、调度、管理的最小的部署单元。pod中可以包括一个或一组容器。

pod [pɒd] 豆荚

 

 

8、Kube_proxy 代理 做端口转发,相当于LVS-NAT模式中的负载调度器器

Proxy解决了同一宿主机,相同服务端口冲突的问题,还提供了对外服务的能力,Proxy后端使用了随机、轮循负载均衡算法。

 

 

 

 

 

 

 

daemon [ˈdi:mən] 守护迚程

9、etcd etcd存储kubernetes的配置信息, 可以理解为是k8s的数据库,存储着k8s容器云平台中所有节点、pods、网络等信息。

互动: linux 系统中/etc 目录作用什么,存配置文件。 所以etcd (daemon) 是一个存储配置文件的后台服务。

接下几个名词丌在

 

10Services ServicesKubernetes最外围的单元,通过虚拟一个访问IP及服务端口,可以访问我们定义好的Pod资源,目前的版本是通过iptablesnat转发来实现,转发的目标端口为Kube_proxy生成的随机端口。

 

 

 

11.Labels 标签

   Labels是用于区分PodServiceReplication Controllerkey/value键值对,仅使用在PodService Replication Controller之间的关系识别,但对这些单元本身迚行操作时得使用name标签。

 

 

 

 

12、 Deployment

Deployment [dɪ'plɔɪmənt] 部署

Kubernetes Deployment用于更新Pod和Replica Set(下一代的Replication Controller)的方法,你可以在Deployment对象中只描述你所期望的理想状态(预期的运行状态),Deployment控制器会将现在的实际状态转换成期望的状态。例如,将所有的webapp:v1.0.9升级成webapp:v1.1.0,只需创建一个Deployment,Kubernetes会按照Deployment自动迚行升级。通过Deployment可以用来创建新的资源如:pod,替换已经存在的资源等。

Deployment集成了上线部署、滚动升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某一版本(成功/稳定)的Deployment等功能,在某种程度上,Deployment可以帮我们实现无人值守的上线,大大降低我们的上线过程的复杂沟通、操作风险。还像svn 。

13、Kubelet : Kubelet和Kube-proxy都运行在minion节点上。

Kube-proxy 实现Kubernetes网络相关内容。

Kubelet组件管理Pod、Pod中容器及容器的镜像和卷等信息。

 

 

总结: 总结各组件之间的关系

1、Kubernetes的架构由一个master和多个minion组成,master通过api提供服务,接受kubectl的请求来调度管理整个集群。 kubectl: 是k8s平台的一个管理命令。

2、Replication controller定义了多个pod或者容器需要运行,如果当前集群中运行的pod或容器达丌到配置的数量,replication controller会调度容器在多个minion上运行,保证集群中的pod数量。

3、service则定义真实对外提供的服务,一个service会对应后端运行的多个container。

4、Kubernetes 是个管理平台,minion上的proxy 拥有提供真实服务公网IP。客户端访问kubernetes中提供的服务,是直接访问到kube-proxy上的。

5、在Kubernetes中pod是一个基本单元,一个pod可以是提供相同功能的多个container,这些容器会被部署在同一个minion上。minion是运行Kubelet中容器的物理机。minion接受master的指令创建pod或者容器。

 

 

 

2         实战:搭建Kubernetes容器集群管理系统

平台版本说明

节点角色 IP地址 CPU 内存

master 192.168.10.12  4核 2GB 这里master和etcd 共用一台机器

etcd 192.168.10.12   4核 2GB

node1(minion) 192.168.10.12  4核 2GB

node2(minion) 192.168.10.13  4 核 2GB

注:正常需要4台机器,如果你内存不够,master和etcd可以运行在同一台机器上。

实验拓扑图:

 

 

注:前几天我们学的docker都是单机版的,使用着就像单机版本的KVM一样。

 

2.1     首先在所有节点添加k8s组件yum源

注:大家可以使用腾讯云主机直接yum安装,我这里是把腾讯云主机中的yum安装k8s时的包下载到本地,做了一个本地yum源。 下载的是docker-1.12版本

 

方法1:配置本地yum源:

把k8s-package-qq.tar.gz上传到xuegod63 系统中::

[root@xuegod63 ~]# tar zxvf k8s-package-qq.tar.gz

[root@xuegod63 ~]# vim /etc/yum.repos.d/k8s-package-qq.repo

[k8s-package-qq]

name=k8s-package-qq

baseurl=file:///root/k8s-package

enabled=1

gpgcheck=0

 

方法2:

自己在线安装:

配置yum源

[root@xuegod63 ~]# vim /etc/yum.repos.d/CentOS-Base.repo #插入以下内容,使用aliyun的源

[base]

name=CentOS-$releasever - Base

failovermethod=priority

baseurl=http://mirrors.aliyun.com/centos/7.3.1611/os/x86_64/

gpgcheck=1

gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

http://mirrors.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

 

#released updates

[updates]

name=CentOS-$releasever - Updates

failovermethod=priority

baseurl=http://mirrors.aliyun.com/centos/7.3.1611/updates/x86_64/

gpgcheck=1

gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

http://mirrors.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

 

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

failovermethod=priority

baseurl=http://mirrors.aliyun.com/centos/7.3.1611/extras/x86_64/

gpgcheck=1

gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

http://mirrors.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

 

#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus

failovermethod=priority

baseurl=http://mirrors.aliyun.com/centos/7.3.1611/centosplus/x86_64/

gpgcheck=1

enabled=0

gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

http://mirrors.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

 

#contrib - packages by Centos Users

[contrib]

name=CentOS-$releasever - Contrib

failovermethod=priority

baseurl=http://mirrors.aliyun.com/centos/7.3.1611/contrib/x86_64/

gpgcheck=1

enabled=0

gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

http://mirrors.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

 

[epel]

name=Extra Packages for Enterprise Linux 7 - $basearch

baseurl=http://mirrors.aliyun.com/epel/7/x86_64/

failovermethod=priority

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

 

注:阿里云最新地址:https://mirrors.aliyun.com/centos/7.5.1804/extras/x86_64/

复制k8s yum源相关文件到其他两台机器上:

[root@xuegod63 ~]# scp -r /root/k8s-package 192.168.1.62:/root/

[root@xuegod63 ~]# scp /etc/yum.repos.d/k8s-package-qq.repo 192.168.1.62:/etc/yum.repos.d/

[root@xuegod63 ~]# scp -r /root/k8s-package 192.168.1.64:/root/

[root@xuegod63 ~]# scp /etc/yum.repos.d/k8s-package-qq.repo 192.168.1.64:/etc/yum.repos.d/

 

2.2     接下来就开始在各个节点上面安装k8s组件了

注意:Kubernetes 目前尚不能支持 Docker 的最新版,如果本机已经安装最新版本的Docker,需要先删除 Docker。

配置xuegod63 为master 和etcd 结点:

[root@xuegod63 ~]# yum install -y kubernetes etcd flannel ntp

注:Flannel,类似于交换机硬件中的VXLAN功能,为Docker提供一种可配置的虚拟重叠网络。

1、Flannel在每一台主机上运行一个 agent。

2、flanneld,负责在提前配置好的地址空间中分配子网租约。Flannel使用etcd来存储网络配置。

3、ntp:主要用于同步容器云平台中所有结点的时间。云平台中结点的时间需要保持一致。

xuegod62

[root@xuegod62 ~]# yum install -y kubernetes flannel ntp

xuegod64:

[root@xuegod64 ~]# yum install -y kubernetes flannel ntp

到此安装已经成功。下面开始配置kubernetes

 

2.3     更改Hostname为 master、etcd、node1、node2,配置IP地址,配置4台测试机的/etc/hosts文件

修改主机名:

[root@xuegod63 ~]# echo master > /etc/hostname #修改主机名

[root@xuegod63 ~]# echo etcd > /etc/hostname # 我这里只有三台机器,不需要执行这个命令,如果你是4台,需要执行这个。

[root@xuegod62 ~]# echo node1 > /etc/hostname

[root@xuegod64 ~]# echo node2 > /etc/hostname

修改hosts文件:

[root@xuegod63 ~]# vim /etc/hosts #插入

192.168.1.63 master

192.168.1.63 etcd

192.168.1.62 node1

192.168.1.64 node2

[root@xuegod63 ~]# scp /etc/hosts 192.168.1.62:/etc/

[root@xuegod63 ~]# scp /etc/hosts 192.168.1.64:/etc/

 

2.4     关闭自带的防火墙服务, 设置开机启动

如果不关闭firewall,需要开放k8s相关服务的端口:

[root@xuegod63 ~]# systemctl disable firewalld; systemctl stop firewalld

2.5     配置etcd服务器 xuegod63

[root@xuegod63 ~]# grep -v '^#' /etc/etcd/etcd.conf #可以直接在配置文件中写入以下内容,也可以修改原文件,只需要以下红色标记的内容:

ETCD_NAME=default

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

改:9 ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"

为:ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://192.168.1.63:2379"

改:20 ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"

为:ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.63:2379"

 

etcd通讯使用2379端口

启动服务

[root@xuegod63 ~]#systemctl start etcd

[root@xuegod63 ~]#systemctl status etcd

[root@xuegod63 ~]#systemctl enable etcd

 

查看:

[root@xuegod63 ~]# netstat -antup | grep 2379

tcp 0 0 127.0.0.1:2379 0.0.0.0:* LISTEN 15901/etcd

tcp 0 0 192.168.1.63:2379 0.0.0.0:* LISTEN 15901/etcd

 

检查etcd cluster状态

[root@master ~]# etcdctl cluster-health

member 8e9e05c52164694d is healthy: got healthy result from http://192.168.1.63:2379

cluster is healthy

 

检查etcd集群成员列表,这里只有一台

[root@master ~]# etcdctl member list

8e9e05c52164694d: name=default peerURLs=http://localhost:2380 clientURLs=http://192.168.1.63:2379 isLeader=true

 

2.6     配置master服务器 xuegod63

1) 配置kube-apiserver配置文件

[root@master ~]# grep -v '^#' /etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=0"

KUBE_ALLOW_PRIV="--allow-privileged=false"

22 KUBE_MASTER="--master=http://192.168.1.63:8080"

#master监听端口,默认8080

 

[root@master ~]# grep -v '^#' /etc/kubernetes/apiserver

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.1.63:2379"

KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

KUBE_ADMISSION_CONTROL="--admission-control=AlwaysAdmit"

KUBE_API_ARGS=""

admission [ədˈmɪʃn] 承认;准讲迚入

Admit [ədˈmɪt] 承认

#apiserver监听接口,如果配置为127.0.0.1则只监听localhost,配置为0.0.0.0会监听所有接口,这里配置为0.0.0.0。

 

2) 配置kube-controller-manager配置文件

[root@master ~]# grep -v '^#' /etc/kubernetes/controller-manager #不需要修改

KUBE_CONTROLLER_MANAGER_ARGS=""

 

3) 配置kube-scheduler配置文件

[root@master ~]# grep -v '^#' /etc/kubernetes/scheduler

KUBE_SCHEDULER_ARGS="--address=0.0.0.0"

 

4) 启动master上3个服务:

 

 

[root@xuegod63 ~]# systemctl restart kube-apiserver kube-controller-manager kube-scheduler

[root@xuegod63 ~]# systemctl status kube-apiserver kube-controller-manager

kube-scheduler

[root@xuegod63 ~]# systemctl enable kube-apiserver kube-controller-manager kube-scheduler

或:

for SERVICES in kube-apiserver kube-controller-manager kube-scheduler

do

systemctl restart SERVICES

systemctl status SERVICES

systemctl enable SERVICES

done

此到master节点成功。

 

 

 

3         配置etcd,指定容器云中docker的IP网段 ,在xuegod63上

[root@xuegod63 ~]# grep -v '^#' /etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://192.168.1.63:2379"

FLANNEL_ETCD_PREFIX="/k8s/network"

FLANNEL_OPTIONS="--iface=ens33" #指定 通信的物理网卡

[root@master ~]# systemctl start flanneld

[root@master ~]# systemctl enable flanneld

查看:

[root@master ~]# ifconfig

。。。

flannel0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1472

inet 10.255.48.0 netmask 255.255.0.0 destination 10.255.48.0

[root@xuegod63 ~]# etcdctl set /k8s/network/config '{"Network": "10.255.0.0/16"}'

[root@xuegod63 ~]# etcdctl get /k8s/network/config

{"Network": "10.255.0.0/16"}

#后面会被运行在minion上的flannel自劢获取并用来设置docker的IP地址

 

 

 

4         配置node1节点服务器 xuegod62

4.1     配置node1网络,本实例采用flannel方式来配置

[root@master ~]# grep -v '^#' /etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://192.168.1.63:2379"

FLANNEL_ETCD_PREFIX="/k8s/network"

FLANNEL_OPTIONS="--iface=ens33" #指定通信的物理网卡

[root@node1~]# systemctl restart flanneld

[root@node1 ~]# scp /etc/sysconfig/flanneld 192.168.1.63:/etc/sysconfig/

4.2     配置node1 kube-proxy

kube-proxy: 的作用主要是负责service的实现,具体来说,就是实现了内部从pod到service。

 

 

[root@node1 ~]# grep -v '^#' /etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=0"

KUBE_ALLOW_PRIV="--allow-privileged=false"

KUBE_MASTER="--master=http://192.168.1.63:8080"

 

[root@node1 ~]# grep -v '^#' /etc/kubernetes/proxy

KUBE_PROXY_ARGS=""

#不用修改,默认就是监听所有ip ,即: KUBE_PROXY_ARGS="--bind=address=0.0.0.0"

 

4.3     配置node1 kubelet

Kubelet运行在minion节点上。Kubelet组件管理Pod、Pod中容器及容器的镜像和卷等信息。

[root@node1 ~]# grep -v '^#' /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=127.0.0.1"

KUBELET_HOSTNAME="--hostname-override=node1"

KUBELET_API_SERVER="--api-servers=http://192.168.1.63:8080"

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

KUBELET_ARGS=""

[root@node1 ~]#

 

4.4     启动node1服务

[root@node1 ~]# systemctl start flanneld kube-proxy kubelet docker

[root@node1 ~]# systemctl enable flanneld kube-proxy kubelet docker

[root@node1 ~]# systemctl status flanneld kube-proxy kubelet docker

或:

for SERVICES in flanneld kube-proxy kubelet docker ; do

systemctl restart $SERVICES

systemctl enable $SERVICES

systemctl status $SERVICES

done

 

查看:

[root@node1 ~]# ifconfig

docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500

inet 10.255.20.1 netmask 255.255.255.0 broadcast 0.0.0.0

。。。

flannel0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1472

inet 10.255.20.0 netmask 255.255.0.0 destination 10.255.41.0

 

查看:kube-proxy

[root@xuegod62 ~]# netstat  -antup | grep proxy

tcp        0      0 127.0.0.1:102490.0.0.0:*               LISTEN      51996/kubeproxy   

tcp        00 192.168.1.62:51593      192.168.1.63:8080   ESTABLISHED 51996/kubeproxy   

tcp        0      0 192.168.1.62:51594      192.168.1.63:8080       ESTABLISHED 51996/kubeproxy   

到此node1  minion 节点成了。

 

 

5         配置node2节点服务器 在xuegod64上

配置方法和node1一样

5.1     配置node2网络,本实例采用flannel方式来配置

[root@xuegod62 ~]# scp /etc/sysconfig/flanneld 192.168.1.64:/etc/sysconfig/

查看:

[root@node2 ~]# grep -v '^#' /etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://192.168.1.63:2379"

FLANNEL_ETCD_PREFIX="/k8s/network"

 

[root@node2 ~]# systemctl start flanneld

查看:

[root@node2 ~]# ifconfig

。。。

flannel0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1472

inet 10.255.24.0 netmask 255.255.0.0 destination 10.255.42.0

 

5.2     配置node2 kube-proxy

[root@xuegod62 ~]# scp /etc/kubernetes/config 192.168.1.64:/etc/kubernetes/

[root@node2 ~]# grep -v '^#' /etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=0"

KUBE_ALLOW_PRIV="--allow-privileged=false"

KUBE_MASTER="--master=http://192.168.1.63:8080"

 

[root@node2 ~]# grep -v '^#' /etc/kubernetes/proxy #不需要修改

KUBE_PROXY_ARGS=""

 

[root@node2 ~]# systemctl start kube-proxy

 

测试:

[root@xuegod64 ~]# netstat  -antup | grep proxy

tcp        0      0 127.0.0.1:10249 0.0.0.0:*       LISTEN      52337/kubeproxy   

注:kubeproxy监控听端口号是10249

tcp        0      0 192.168.1.64:46299      192.168.1.63:8080  ESTABLISHED 52337/kubeproxy   

注:kubeproxymaster8080进行通信

tcp        0      0 192.168.1.64:46301      192.168.1.63:8080       ESTABLISHED 52337/kubeproxy   

tcp        0      0 192.168.1.64:46300      192.168.1.63:8080       ESTABLISHED 52337/kubeproxy   

 

5.3     配置node2 kubelet

[root@xuegod62 ~]# scp /etc/kubernetes/kubelet 192.168.1.64:/etc/kubernetes/

[root@node2 ~]# grep -v '^#' /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=127.0.0.1"

KUBELET_HOSTNAME="--hostname-override=node2" #这里修改成node2

KUBELET_API_SERVER="--api-servers=http://192.168.1.63:8080"

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

KUBELET_ARGS=""

[root@node2 ~]# systemctl start kubelet

 

查看:已经建议连接

[root@node2 ~]# netstat -antup | grep 8080

tcp 0 0 192.168.1.64:57491 192.168.1.63:8080 ESTABLISHED 55885/kubelet

[root@xuegod62 ~]# netstat -antup | grep kubelet

tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN 52281/kubelet

tcp 0 0 127.0.0.1:10250 0.0.0.0:* LISTEN 52281/kubelet

tcp 0 0 127.0.0.1:10255 0.0.0.0:* LISTEN 52281/kubelet

注: 这个是kubelet 监听端口

tcp 0 0 192.168.1.62:51601 192.168.1.63:8080 ESTABLISHED 52281/kubelet

注:这个是kubelet和master的8080通信

tcp 0 0 192.168.1.62:51600 192.168.1.63:8080 ESTABLISHED 52281/kubelet

tcp 0 0 192.168.1.62:51598 192.168.1.63:8080 ESTABLISHED 52281/kubelet

tcp 0 0 192.168.1.62:51599 192.168.1.63:8080 ESTABLISHED 52281/kubelet

tcp6 0 0 :::4194 :::* LISTEN 52281/kubelet

注: kubelet 基于ipv6的监听端口4194

 

 

5.4     启动node2服务所有服务

[root@node2 ~]# systemctl restart flanneld kube-proxy kubelet docker

[root@node2 ~]# systemctl enable flanneld kube-proxy kubelet docker

[root@node2 ~]# systemctl status flanneld kube-proxy kubelet docker

或:

for SERVICES in flanneld kube-proxy kubelet docker; do

systemctl restart $SERVICES

systemctl enable $SERVICES

systemctl status $SERVICES

done

 

查看docker0 IPnode1node2是不一样

[root@xuegod64 ~]# ifconfig

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

inet 10.255.24.1netmask 255.255.255.0  broadcast 0.0.0.0

...

flannel0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1472

inet 10.255.24.0  netmask 255.255.0.0  destination 10.255.24.0

 

至此,整个Kubernetes集群搭建完毕

 

测试:登录xuegod63查看整个集群的运行状态:

[root@master ~]# kubectl get nodes

NAME STATUS AGE

node1 Ready 41m

node2 Ready 3m

说明运行正常。

 

总结:kubernetes每个节点需要启动的服务和开放端口号

在本实验中kubernetes 4个结点一共需要启动11个服务,开6个端口号。

详情如下:

etcd:一共1个服务 ,通讯使用2379端口

启动服务

[root@xuegod63 ~]#systemctl restart etcd

[root@xuegod63 ~]#systemctl status etcd

[root@xuegod63 ~]#systemctl enable etcd

 

master: 一共3个服务,通讯使用8080端口

[root@xuegod63 ~]# systemctl restart kube-apiserver kube-controller-manager kube-scheduler

[root@xuegod63 ~]# systemctl status kube-apiserver kube-controller-manager kube-scheduler

[root@xuegod63 ~]# systemctl enable kube-apiserver kube-controller-manager kube-scheduler

 

node1-minion: 一共4个服务

kubeproxy监控听端口号是10249,kubelet 监听端口10248、10250、10255三个端口

[root@node1 ~]# systemctl restart flanneld kube-proxy kubelet docker

[root@node1 ~]# systemctl status flanneld kube-proxy kubelet docker

[root@node1 ~]# systemctl enable flanneld kube-proxy kubelet docker

 

node2-minion: 一共4个服务

[root@node2 ~]# systemctl restart flanneld kube-proxy kubelet docker

[root@node2 ~]# systemctl status flanneld kube-proxy kubelet docker

[root@node2 ~]# systemctl enable flanneld kube-proxy kubelet docker

 

posted @ 2018-05-27 23:06  北极之光的博客  阅读(13)  评论(0编辑  收藏  举报