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 Controller是Kubernetes系统中最有用的功能,实现复制多个Pod副本,往往一个应用需要多个Pod来支撑,并且可以保证其复制的副本数,即使副本所调度分配的宿主机出现异常,通过Replication Controller可以保证在其它宿主机启用同等数量的Pod。Replication 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) 是一个存储配置文件的后台服务。
接下几个名词丌在
10、Services : Services是Kubernetes最外围的单元,通过虚拟一个访问IP及服务端口,可以访问我们定义好的Pod资源,目前的版本是通过iptables的nat转发来实现,转发的目标端口为Kube_proxy生成的随机端口。
11.Labels 标签
Labels是用于区分Pod、Service、Replication Controller的key/value键值对,仅使用在Pod、Service、 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
注:kubeproxy和master的8080进行通信
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 IP:node1和node2是不一样
[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