目录
写在前面
1.安装CentOS7
2.关闭SELinux
3.防火墙
4.yum源安装epel
5.修改主机名
6.安装k8s
6.1 准备环境
6.2 开始安装
6.3 配置k8s的config
6.4 配置master
6.4.1 配置etcd
6.4.2 配置apiserver
6.4.3 配置flanneld
6.4.4 启动etcd和master
6.5 配置node
6.5.1 修改kubelet和flanneld
6.5.2 启动node
6.5.3 配置kubectl
7.验证
8.参考文献
如果首次安装且是学习目的的话,CentOS一定要装CentOS7,不能装7以下的版本,不然你会发现网上很多博客里的安装方法都不管用。我之前就是用的CentOS6.1,但是发现一直装不上,尤其是使用yum安装的时候,根本就找不到任何安装包。后来偶然看到一篇关于在CentOS6.5上安装dockere及k8s的博文,才知道,7以下的内核需要升级之后才能安装,否则不行,如果现实中有必须在7以下系统中安装的情况,可以参考这里。
我本次安装的环境为在本机装了两台CentOS7的虚拟机,主机信息如下:
ID | 主机IP | 主机名 | 备注 |
---|---|---|---|
1 | 192.168.1.159 | k8s-master | master |
2 | 192.168.1.160 | k8s-salve | node |
etcd | etcd.x86_64 0:3.2.22-1.el7 |
---|---|
flannel | flannel.x86_64 0:0.7.1-4.el7 |
kubernetes | kubernetes.x86_64 0:1.5.2-0.7.git269f928.el7 |
这里提供一个下载链接,如果需要下载,点我。另外,在新建虚拟机的时候,网络选择桥接模式,这样就能和宿主主机共享网络,双方能互通。
基本步骤如下:
(1)加载后选择第一项,Install CentOS7
(2)选择中文-简体中文
(3)安装信息摘要页面,稍等下,安装位置里面选择好硬盘即可
(4)设置下ROOT密码,不用创建新用户,然后就是等大概30分钟左右,系统安装成功
(5)开启网卡,设置静态IP,输入如下命令
[root@k8s-master /]# cd /etc/sysconfig/network-scripts
[root@k8s-master /]# vi ifcfg-ens33
修改的内容如下:
ONBOOT=yes #打开网卡
BOOTPROTO=static #修改为静态ip
ZONE=public firewalld zone=piblic
PADDR=192.168.1.160 #设置本机IP地址
ATEWAY=192.168.1.1 #设置网关,和宿主主机保持一致
ETMASK=255.255.255.0 #设置子网掩码
DNS1=202.102.224.68 #设置DNS1
DNS2=202.102.227.68 #设置NDS2
修改完毕 ESC :wq 保存,然后重启网络,并查看ip以及使用ping查看网络是否成功,具体命令如下。
[root@k8s-master /]# systemctl restart network
[root@k8s-master /]# ip addr
[root@k8s-master /]# ping www.baidu.com
至此安装成功。
getenforce #查看状态 Enforcing 说明开启
setenforce 0 #临时关闭
vi /etc/selinux/config #修改 SELINUX=disable ECS :wq reboot永久生效
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #禁止开机自启
systemctl status firewalld #查看防火墙状态
yum repolist #查看
#安装epel,使用如下命令即可
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum makecache #缓存至电脑本地,提高安装速度
分别对两台主机都进行主机名的修改,master为k8s-master,node为k8s-slave,操作命令如下:
hostname #查看主机名
hostnamectl set-hostname k8s-master #设置主机名立即生效
exec bash #刷新显示生效
vi /etc/hosts
127.0.0.1 localhost k8s-slave localhost4 localhost4.localdomain4
::1 localhost k8s-slave localhost6 localhost6.localdomain6
192.168.1.159 k8s-master
192.168.1.160 k8s-slave
cat /etc/hosts #查看
两台主机上的前期的安装操作都一样,都要先设置环境,进行安装,配置k8s的config.
分别在每台主机上进行如下命令操作,新增一个/etc/yum.repos.d/virt7-docker-common-release.repo文件
vi /etc/yum.repos.d/virt7-docker-common-release.repo
# i 输入以下内容
[virt7-docker-common-release]
name=virt7-docker-common-release
baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/
gpgcheck=0
#ESC :wq
前面设置好之后,使用yum进行安装,相对比较简单一些,操作命令如下:
yum -y install --enablerepo=virt7-docker-common-release kubernetes etcd flannel
PS:正常情况下,刷刷刷就正常安装了,下面贴一下我的安装过程。
[root@k8s-master /]# yum -y install --enablerepo=virt7-docker-common-release kubernetes etcd flannel
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.huaweicloud.com
* epel: mirrors.aliyun.com
* extras: mirror.lzu.edu.cn
* remi-safe: mirrors.tuna.tsinghua.edu.cn
* updates: mirror.lzu.edu.cn
virt7-docker-common-release | 3.4 kB 00:00:00
virt7-docker-common-release/primary_db | 13 kB 00:00:07
正在解决依赖关系
--> 正在检查事务
---> 软件包 etcd.x86_64.0.3.2.22-1.el7 将被 安装
---> 软件包 flannel.x86_64.0.0.7.1-4.el7 将被 安装
---> 软件包 kubernetes.x86_64.0.1.5.2-0.7.git269f928.el7 将被 安装
--> 正在处理依赖关系 kubernetes-node = 1.5.2-0.7.git269f928.el7,它被软件包 kubernetes-1.5.2-0.7.git269f928.el7.x86_64 需要
--> 正在处理依赖关系 kubernetes-master = 1.5.2-0.7.git269f928.el7,它被软件包 kubernetes-1.5.2-0.7.git269f928.el7.x86_64 需要
--> 正在检查事务
---> 软件包 kubernetes-master.x86_64.0.1.5.2-0.7.git269f928.el7 将被 安装
--> 正在处理依赖关系 kubernetes-client = 1.5.2-0.7.git269f928.el7,它被软件包 kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 需要
---> 软件包 kubernetes-node.x86_64.0.1.5.2-0.7.git269f928.el7 将被 安装
--> 正在处理依赖关系 socat,它被软件包 kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 需要
--> 正在处理依赖关系 docker,它被软件包 kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 需要
--> 正在处理依赖关系 conntrack-tools,它被软件包 kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 需要
--> 正在检查事务
---> 软件包 conntrack-tools.x86_64.0.1.4.4-4.el7 将被 安装
--> 正在处理依赖关系 libnetfilter_cttimeout.so.1(LIBNETFILTER_CTTIMEOUT_1.1)(64bit),它被软件包 conntrack-tools-1.4.4-4.el7.x86_64 需要
--> 正在处理依赖关系 libnetfilter_cttimeout.so.1(LIBNETFILTER_CTTIMEOUT_1.0)(64bit),它被软件包 conntrack-tools-1.4.4-4.el7.x86_64 需要
--> 正在处理依赖关系 libnetfilter_cthelper.so.0(LIBNETFILTER_CTHELPER_1.0)(64bit),它被软件包 conntrack-tools-1.4.4-4.el7.x86_64 需要
--> 正在处理依赖关系 libnetfilter_queue.so.1()(64bit),它被软件包 conntrack-tools-1.4.4-4.el7.x86_64 需要
--> 正在处理依赖关系 libnetfilter_cttimeout.so.1()(64bit),它被软件包 conntrack-tools-1.4.4-4.el7.x86_64 需要
--> 正在处理依赖关系 libnetfilter_cthelper.so.0()(64bit),它被软件包 conntrack-tools-1.4.4-4.el7.x86_64 需要
---> 软件包 docker.x86_64.2.1.13.1-88.git07f3374.el7.centos 将被 安装
--> 正在处理依赖关系 docker-common = 2:1.13.1-88.git07f3374.el7.centos,它被软件包 2:docker-1.13.1-88.git07f3374.el7.centos.x86_64 需要
--> 正在处理依赖关系 docker-client = 2:1.13.1-88.git07f3374.el7.centos,它被软件包 2:docker-1.13.1-88.git07f3374.el7.centos.x86_64 需要
--> 正在处理依赖关系 subscription-manager-rhsm-certificates,它被软件包 2:docker-1.13.1-88.git07f3374.el7.centos.x86_64 需要
---> 软件包 kubernetes-client.x86_64.0.1.5.2-0.7.git269f928.el7 将被 安装
---> 软件包 socat.x86_64.0.1.7.3.2-2.el7 将被 安装
--> 正在检查事务
---> 软件包 docker-client.x86_64.2.1.13.1-88.git07f3374.el7.centos 将被 安装
---> 软件包 docker-common.x86_64.2.1.13.1-88.git07f3374.el7.centos 将被 安装
--> 正在处理依赖关系 skopeo-containers >= 1:0.1.26-2,它被软件包 2:docker-common-1.13.1-88.git07f3374.el7.centos.x86_64 需要
--> 正在处理依赖关系 oci-umount >= 2:2.3.3-3,它被软件包 2:docker-common-1.13.1-88.git07f3374.el7.centos.x86_64 需要
--> 正在处理依赖关系 oci-systemd-hook >= 1:0.1.4-9,它被软件包 2:docker-common-1.13.1-88.git07f3374.el7.centos.x86_64 需要
--> 正在处理依赖关系 oci-register-machine >= 1:0-5.13,它被软件包 2:docker-common-1.13.1-88.git07f3374.el7.centos.x86_64 需要
--> 正在处理依赖关系 container-storage-setup >= 0.9.0-1,它被软件包 2:docker-common-1.13.1-88.git07f3374.el7.centos.x86_64 需要
--> 正在处理依赖关系 container-selinux >= 2:2.51-1,它被软件包 2:docker-common-1.13.1-88.git07f3374.el7.centos.x86_64 需要
--> 正在处理依赖关系 atomic-registries,它被软件包 2:docker-common-1.13.1-88.git07f3374.el7.centos.x86_64 需要
---> 软件包 libnetfilter_cthelper.x86_64.0.1.0.0-9.el7 将被 安装
---> 软件包 libnetfilter_cttimeout.x86_64.0.1.0.0-6.el7 将被 安装
---> 软件包 libnetfilter_queue.x86_64.0.1.0.2-2.el7_2 将被 安装
---> 软件包 subscription-manager-rhsm-certificates.x86_64.0.1.21.10-3.el7.centos 将被 安装
--> 正在检查事务
---> 软件包 atomic-registries.x86_64.1.1.22.1-26.gitb507039.el7.centos 将被 安装
--> 正在处理依赖关系 python-yaml,它被软件包 1:atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64 需要
--> 正在处理依赖关系 python-setuptools,它被软件包 1:atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64 需要
--> 正在处理依赖关系 python-pytoml,它被软件包 1:atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64 需要
---> 软件包 container-selinux.noarch.2.2.74-1.el7 将被 安装
--> 正在处理依赖关系 policycoreutils-python,它被软件包 2:container-selinux-2.74-1.el7.noarch 需要
---> 软件包 container-storage-setup.noarch.0.0.11.0-2.git5eaf76c.el7 将被 安装
---> 软件包 containers-common.x86_64.1.0.1.31-7.gitb0b750d.el7.centos 将被 安装
---> 软件包 oci-register-machine.x86_64.1.0-6.git2b44233.el7 将被 安装
---> 软件包 oci-systemd-hook.x86_64.1.0.1.18-2.git3efe246.el7 将被 安装
--> 正在处理依赖关系 libyajl.so.2()(64bit),它被软件包 1:oci-systemd-hook-0.1.18-2.git3efe246.el7.x86_64 需要
---> 软件包 oci-umount.x86_64.2.2.3.4-2.git87f9237.el7 将被 安装
--> 正在检查事务
---> 软件包 PyYAML.x86_64.0.3.10-11.el7 将被 安装
--> 正在处理依赖关系 libyaml-0.so.2()(64bit),它被软件包 PyYAML-3.10-11.el7.x86_64 需要
---> 软件包 policycoreutils-python.x86_64.0.2.5-29.el7 将被 安装
--> 正在处理依赖关系 setools-libs >= 3.3.8-4,它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
--> 正在处理依赖关系 libsemanage-python >= 2.5-14,它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
--> 正在处理依赖关系 audit-libs-python >= 2.1.3-4,它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
--> 正在处理依赖关系 python-IPy,它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
--> 正在处理依赖关系 libqpol.so.1(VERS_1.4)(64bit),它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
--> 正在处理依赖关系 libqpol.so.1(VERS_1.2)(64bit),它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
--> 正在处理依赖关系 libcgroup,它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
--> 正在处理依赖关系 libapol.so.4(VERS_4.0)(64bit),它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
--> 正在处理依赖关系 checkpolicy,它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
--> 正在处理依赖关系 libqpol.so.1()(64bit),它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
--> 正在处理依赖关系 libapol.so.4()(64bit),它被软件包 policycoreutils-python-2.5-29.el7.x86_64 需要
---> 软件包 python-pytoml.noarch.0.0.1.14-1.git7dea353.el7 将被 安装
---> 软件包 python-setuptools.noarch.0.0.9.8-7.el7 将被 安装
--> 正在处理依赖关系 python-backports-ssl_match_hostname,它被软件包 python-setuptools-0.9.8-7.el7.noarch 需要
---> 软件包 yajl.x86_64.0.2.0.4-4.el7 将被 安装
--> 正在检查事务
---> 软件包 audit-libs-python.x86_64.0.2.8.4-4.el7 将被 安装
---> 软件包 checkpolicy.x86_64.0.2.5-8.el7 将被 安装
---> 软件包 libcgroup.x86_64.0.0.41-20.el7 将被 安装
---> 软件包 libsemanage-python.x86_64.0.2.5-14.el7 将被 安装
---> 软件包 libyaml.x86_64.0.0.1.4-11.el7_0 将被 安装
---> 软件包 python-IPy.noarch.0.0.75-6.el7 将被 安装
---> 软件包 python-backports-ssl_match_hostname.noarch.0.3.5.0.1-1.el7 将被 安装
--> 正在处理依赖关系 python-ipaddress,它被软件包 python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 需要
--> 正在处理依赖关系 python-backports,它被软件包 python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 需要
---> 软件包 setools-libs.x86_64.0.3.3.8-4.el7 将被 安装
--> 正在检查事务
---> 软件包 python-backports.x86_64.0.1.0-8.el7 将被 安装
---> 软件包 python-ipaddress.noarch.0.1.0.16-2.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
====================================================================================================================================
Package 架构 版本 源 大小
====================================================================================================================================
正在安装:
etcd x86_64 3.2.22-1.el7 extras 9.3 M
flannel x86_64 0.7.1-4.el7 extras 7.5 M
kubernetes x86_64 1.5.2-0.7.git269f928.el7 extras 36 k
为依赖而安装:
PyYAML x86_64 3.10-11.el7 base 153 k
atomic-registries x86_64 1:1.22.1-26.gitb507039.el7.centos extras 35 k
audit-libs-python x86_64 2.8.4-4.el7 base 76 k
checkpolicy x86_64 2.5-8.el7 base 295 k
conntrack-tools x86_64 1.4.4-4.el7 base 186 k
container-selinux noarch 2:2.74-1.el7 extras 38 k
container-storage-setup noarch 0.11.0-2.git5eaf76c.el7 extras 35 k
containers-common x86_64 1:0.1.31-7.gitb0b750d.el7.centos extras 18 k
docker x86_64 2:1.13.1-88.git07f3374.el7.centos extras 17 M
docker-client x86_64 2:1.13.1-88.git07f3374.el7.centos extras 3.8 M
docker-common x86_64 2:1.13.1-88.git07f3374.el7.centos extras 95 k
kubernetes-client x86_64 1.5.2-0.7.git269f928.el7 extras 14 M
kubernetes-master x86_64 1.5.2-0.7.git269f928.el7 extras 25 M
kubernetes-node x86_64 1.5.2-0.7.git269f928.el7 extras 14 M
libcgroup x86_64 0.41-20.el7 base 66 k
libnetfilter_cthelper x86_64 1.0.0-9.el7 base 18 k
libnetfilter_cttimeout x86_64 1.0.0-6.el7 base 18 k
libnetfilter_queue x86_64 1.0.2-2.el7_2 base 23 k
libsemanage-python x86_64 2.5-14.el7 base 113 k
libyaml x86_64 0.1.4-11.el7_0 base 55 k
oci-register-machine x86_64 1:0-6.git2b44233.el7 extras 1.1 M
oci-systemd-hook x86_64 1:0.1.18-2.git3efe246.el7 extras 34 k
oci-umount x86_64 2:2.3.4-2.git87f9237.el7 extras 32 k
policycoreutils-python x86_64 2.5-29.el7 base 456 k
python-IPy noarch 0.75-6.el7 base 32 k
python-backports x86_64 1.0-8.el7 base 5.8 k
python-backports-ssl_match_hostname noarch 3.5.0.1-1.el7 base 13 k
python-ipaddress noarch 1.0.16-2.el7 base 34 k
python-pytoml noarch 0.1.14-1.git7dea353.el7 extras 18 k
python-setuptools noarch 0.9.8-7.el7 base 397 k
setools-libs x86_64 3.3.8-4.el7 base 620 k
socat x86_64 1.7.3.2-2.el7 base 290 k
subscription-manager-rhsm-certificates x86_64 1.21.10-3.el7.centos updates 207 k
yajl x86_64 2.0.4-4.el7 base 39 k
事务概要
====================================================================================================================================
安装 3 软件包 (+34 依赖软件包)
总下载量:96 M
安装大小:476 M
Downloading packages:
(1/37): PyYAML-3.10-11.el7.x86_64.rpm | 153 kB 00:00:00
(2/37): atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64.rpm | 35 kB 00:00:00
(3/37): audit-libs-python-2.8.4-4.el7.x86_64.rpm | 76 kB 00:00:00
(4/37): container-storage-setup-0.11.0-2.git5eaf76c.el7.noarch.rpm | 35 kB 00:00:00
(5/37): checkpolicy-2.5-8.el7.x86_64.rpm | 295 kB 00:00:01
(6/37): conntrack-tools-1.4.4-4.el7.x86_64.rpm | 186 kB 00:00:00
(7/37): containers-common-0.1.31-7.gitb0b750d.el7.centos.x86_64.rpm | 18 kB 00:00:00
(8/37): container-selinux-2.74-1.el7.noarch.rpm | 38 kB 00:00:00
(9/37): docker-common-1.13.1-88.git07f3374.el7.centos.x86_64.rpm | 95 kB 00:00:00
(10/37): kubernetes-1.5.2-0.7.git269f928.el7.x86_64.rpm | 36 kB 00:00:00
(11/37): docker-client-1.13.1-88.git07f3374.el7.centos.x86_64.rpm | 3.8 MB 00:00:04
(12/37): etcd-3.2.22-1.el7.x86_64.rpm | 9.3 MB 00:00:07
(13/37): kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64.rpm | 14 MB 00:00:06
(14/37): libcgroup-0.41-20.el7.x86_64.rpm | 66 kB 00:00:00
(15/37): libnetfilter_cthelper-1.0.0-9.el7.x86_64.rpm | 18 kB 00:00:00
(16/37): libnetfilter_cttimeout-1.0.0-6.el7.x86_64.rpm | 18 kB 00:00:00
(17/37): libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm | 23 kB 00:00:00
(18/37): libsemanage-python-2.5-14.el7.x86_64.rpm | 113 kB 00:00:00
(19/37): libyaml-0.1.4-11.el7_0.x86_64.rpm | 55 kB 00:00:00
(20/37): oci-register-machine-0-6.git2b44233.el7.x86_64.rpm | 1.1 MB 00:00:01
(21/37): oci-systemd-hook-0.1.18-2.git3efe246.el7.x86_64.rpm | 34 kB 00:00:00
(22/37): oci-umount-2.3.4-2.git87f9237.el7.x86_64.rpm | 32 kB 00:00:00
(23/37): policycoreutils-python-2.5-29.el7.x86_64.rpm | 456 kB 00:00:00
(24/37): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00:00
(25/37): python-backports-1.0-8.el7.x86_64.rpm | 5.8 kB 00:00:00
(26/37): python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm | 13 kB 00:00:00
(27/37): python-ipaddress-1.0.16-2.el7.noarch.rpm | 34 kB 00:00:00
(28/37): python-pytoml-0.1.14-1.git7dea353.el7.noarch.rpm | 18 kB 00:00:00
(29/37): python-setuptools-0.9.8-7.el7.noarch.rpm | 397 kB 00:00:00
(30/37): setools-libs-3.3.8-4.el7.x86_64.rpm | 620 kB 00:00:02
(31/37): socat-1.7.3.2-2.el7.x86_64.rpm | 290 kB 00:00:00
(32/37): docker-1.13.1-88.git07f3374.el7.centos.x86_64.rpm | 17 MB 00:00:21
(33/37): subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64.rpm | 207 kB 00:00:00
(34/37): flannel-0.7.1-4.el7.x86_64.rpm | 7.5 MB 00:00:22
(35/37): yajl-2.0.4-4.el7.x86_64.rpm | 39 kB 00:00:00
(36/37): kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64.rpm | 25 MB 00:00:22
(37/37): kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64.rpm | 14 MB 00:00:27
------------------------------------------------------------------------------------------------------------------------------------
总计 3.2 MB/s | 96 MB 00:00:29
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : yajl-2.0.4-4.el7.x86_64 1/37
正在安装 : kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64 2/37
正在安装 : kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 3/37
正在安装 : 1:oci-systemd-hook-0.1.18-2.git3efe246.el7.x86_64 4/37
正在安装 : 2:oci-umount-2.3.4-2.git87f9237.el7.x86_64 5/37
正在安装 : socat-1.7.3.2-2.el7.x86_64 6/37
正在安装 : python-ipaddress-1.0.16-2.el7.noarch 7/37
正在安装 : libyaml-0.1.4-11.el7_0.x86_64 8/37
正在安装 : PyYAML-3.10-11.el7.x86_64 9/37
正在安装 : python-backports-1.0-8.el7.x86_64 10/37
正在安装 : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 11/37
正在安装 : python-setuptools-0.9.8-7.el7.noarch 12/37
正在安装 : 1:oci-register-machine-0-6.git2b44233.el7.x86_64 13/37
正在安装 : libsemanage-python-2.5-14.el7.x86_64 14/37
正在安装 : setools-libs-3.3.8-4.el7.x86_64 15/37
正在安装 : audit-libs-python-2.8.4-4.el7.x86_64 16/37
正在安装 : python-pytoml-0.1.14-1.git7dea353.el7.noarch 17/37
正在安装 : 1:atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64 18/37
正在安装 : python-IPy-0.75-6.el7.noarch 19/37
正在安装 : libnetfilter_queue-1.0.2-2.el7_2.x86_64 20/37
正在安装 : checkpolicy-2.5-8.el7.x86_64 21/37
正在安装 : subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64 22/37
正在安装 : 1:containers-common-0.1.31-7.gitb0b750d.el7.centos.x86_64 23/37
正在安装 : container-storage-setup-0.11.0-2.git5eaf76c.el7.noarch 24/37
正在安装 : libnetfilter_cttimeout-1.0.0-6.el7.x86_64 25/37
正在安装 : libnetfilter_cthelper-1.0.0-9.el7.x86_64 26/37
正在安装 : conntrack-tools-1.4.4-4.el7.x86_64 27/37
正在安装 : libcgroup-0.41-20.el7.x86_64 28/37
正在安装 : policycoreutils-python-2.5-29.el7.x86_64 29/37
正在安装 : 2:container-selinux-2.74-1.el7.noarch 30/37
setsebool: SELinux is disabled.
正在安装 : 2:docker-common-1.13.1-88.git07f3374.el7.centos.x86_64 31/37
正在安装 : 2:docker-client-1.13.1-88.git07f3374.el7.centos.x86_64 32/37
正在安装 : 2:docker-1.13.1-88.git07f3374.el7.centos.x86_64 33/37
正在安装 : kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 34/37
正在安装 : kubernetes-1.5.2-0.7.git269f928.el7.x86_64 35/37
正在安装 : flannel-0.7.1-4.el7.x86_64 36/37
正在安装 : etcd-3.2.22-1.el7.x86_64 37/37
验证中 : libcgroup-0.41-20.el7.x86_64 1/37
验证中 : 1:oci-systemd-hook-0.1.18-2.git3efe246.el7.x86_64 2/37
验证中 : libnetfilter_cthelper-1.0.0-9.el7.x86_64 3/37
验证中 : 2:docker-client-1.13.1-88.git07f3374.el7.centos.x86_64 4/37
验证中 : libnetfilter_cttimeout-1.0.0-6.el7.x86_64 5/37
验证中 : container-storage-setup-0.11.0-2.git5eaf76c.el7.noarch 6/37
验证中 : 1:containers-common-0.1.31-7.gitb0b750d.el7.centos.x86_64 7/37
验证中 : 2:container-selinux-2.74-1.el7.noarch 8/37
验证中 : conntrack-tools-1.4.4-4.el7.x86_64 9/37
验证中 : python-setuptools-0.9.8-7.el7.noarch 10/37
验证中 : subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64 11/37
验证中 : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 12/37
验证中 : 2:oci-umount-2.3.4-2.git87f9237.el7.x86_64 13/37
验证中 : checkpolicy-2.5-8.el7.x86_64 14/37
验证中 : libnetfilter_queue-1.0.2-2.el7_2.x86_64 15/37
验证中 : kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64 16/37
验证中 : python-IPy-0.75-6.el7.noarch 17/37
验证中 : 1:atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64 18/37
验证中 : 2:docker-common-1.13.1-88.git07f3374.el7.centos.x86_64 19/37
验证中 : python-pytoml-0.1.14-1.git7dea353.el7.noarch 20/37
验证中 : audit-libs-python-2.8.4-4.el7.x86_64 21/37
验证中 : etcd-3.2.22-1.el7.x86_64 22/37
验证中 : setools-libs-3.3.8-4.el7.x86_64 23/37
验证中 : 2:docker-1.13.1-88.git07f3374.el7.centos.x86_64 24/37
验证中 : libsemanage-python-2.5-14.el7.x86_64 25/37
验证中 : 1:oci-register-machine-0-6.git2b44233.el7.x86_64 26/37
验证中 : kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 27/37
验证中 : python-backports-1.0-8.el7.x86_64 28/37
验证中 : yajl-2.0.4-4.el7.x86_64 29/37
验证中 : kubernetes-1.5.2-0.7.git269f928.el7.x86_64 30/37
验证中 : libyaml-0.1.4-11.el7_0.x86_64 31/37
验证中 : flannel-0.7.1-4.el7.x86_64 32/37
验证中 : policycoreutils-python-2.5-29.el7.x86_64 33/37
验证中 : kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 34/37
验证中 : python-ipaddress-1.0.16-2.el7.noarch 35/37
验证中 : PyYAML-3.10-11.el7.x86_64 36/37
验证中 : socat-1.7.3.2-2.el7.x86_64 37/37
已安装:
etcd.x86_64 0:3.2.22-1.el7 flannel.x86_64 0:0.7.1-4.el7 kubernetes.x86_64 0:1.5.2-0.7.git269f928.el7
作为依赖被安装:
PyYAML.x86_64 0:3.10-11.el7 atomic-registries.x86_64 1:1.22.1-26.gitb507039.el7.centos
audit-libs-python.x86_64 0:2.8.4-4.el7 checkpolicy.x86_64 0:2.5-8.el7
conntrack-tools.x86_64 0:1.4.4-4.el7 container-selinux.noarch 2:2.74-1.el7
container-storage-setup.noarch 0:0.11.0-2.git5eaf76c.el7 containers-common.x86_64 1:0.1.31-7.gitb0b750d.el7.centos
docker.x86_64 2:1.13.1-88.git07f3374.el7.centos docker-client.x86_64 2:1.13.1-88.git07f3374.el7.centos
docker-common.x86_64 2:1.13.1-88.git07f3374.el7.centos kubernetes-client.x86_64 0:1.5.2-0.7.git269f928.el7
kubernetes-master.x86_64 0:1.5.2-0.7.git269f928.el7 kubernetes-node.x86_64 0:1.5.2-0.7.git269f928.el7
libcgroup.x86_64 0:0.41-20.el7 libnetfilter_cthelper.x86_64 0:1.0.0-9.el7
libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7 libnetfilter_queue.x86_64 0:1.0.2-2.el7_2
libsemanage-python.x86_64 0:2.5-14.el7 libyaml.x86_64 0:0.1.4-11.el7_0
oci-register-machine.x86_64 1:0-6.git2b44233.el7 oci-systemd-hook.x86_64 1:0.1.18-2.git3efe246.el7
oci-umount.x86_64 2:2.3.4-2.git87f9237.el7 policycoreutils-python.x86_64 0:2.5-29.el7
python-IPy.noarch 0:0.75-6.el7 python-backports.x86_64 0:1.0-8.el7
python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 python-ipaddress.noarch 0:1.0.16-2.el7
python-pytoml.noarch 0:0.1.14-1.git7dea353.el7 python-setuptools.noarch 0:0.9.8-7.el7
setools-libs.x86_64 0:3.3.8-4.el7 socat.x86_64 0:1.7.3.2-2.el7
subscription-manager-rhsm-certificates.x86_64 0:1.21.10-3.el7.centos yajl.x86_64 0:2.0.4-4.el7
完毕!
vi /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://k8s-master:8080"
#修改KUBE_MASTER="--master=http://k8s-master:8080",两台主机都一样。
vi /etc/etcd/etcd.conf
# [member]
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
#[cluster]
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME默认为 ETCD_NAME="default",把双引号去掉了
修改ETCD_LISTEN_CLIENT_URLS中127.0.0.1为0.0.0.0即可
修改ETCD_ADVERTISE_CLIENT_URLS中127.0.0.1为0.0.0.0即可
vi /etc/kubernetes/apiserver
# The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" #这里修改原来的127.0.0.1为0.0.0.0
# The port on the local server to listen on.
KUBE_API_PORT="--port=8080" #这里把注释打开
# Port kubelets listen on
KUBELET_PORT="--kubelet-port=10250" #这里把注释打开
# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://k8s-master:2379" #这里把127.0.0.1改成k8s-master主机名
# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" #这里保持不变
# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" #这里保持不变
# Add your own!
KUBE_API_ARGS="--service-node-port-range=20000-65535" #这里修改端口范围,默认是30000-32767,创建service时超出会报错
vi /etc/sysconfig/flanneld
# etcd url location. Point this to the server where etcd runs
FLANNEL_ETCD_ENDPOINTS="http://k8s-master:2379" #这里修改127.0.0.1为k8s-master主机名
# etcd config key. This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_PREFIX="/kube-centos/network" #这里修改atomic.io为 kube-centos
启动etcd
systemctl start etcd
etcdctl mkdir /kube-centos/network
etcdctl mk /kube-centos/network/config "{ \"Network\": \"172.30.0.0/16\", \"SubnetLen\": 24, \"Backend\": { \"Type\": \"vxlan\" } }"
启动master
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler flanneld; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
启动成功如下:
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/systemd/system/kube-proxy.service.
● kube-proxy.service - Kubernetes Kube-Proxy Server
Loaded: loaded (/usr/lib/systemd/system/kube-proxy.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2019-01-10 17:53:31 CST; 715ms ago
Docs: https://github.com/GoogleCloudPlatform/kubernetes
Main PID: 29364 (kube-proxy)
CGroup: /system.slice/kube-proxy.service
├─29364 /usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://k8s-master:8080
└─29387 iptables --version
1月 10 17:53:31 k8s-slave systemd[1]: Started Kubernetes Kube-Proxy Server.
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.
● kubelet.service - Kubernetes Kubelet Server
Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2019-01-10 17:53:35 CST; 431ms ago
Docs: https://github.com/GoogleCloudPlatform/kubernetes
Main PID: 29633 (kubelet)
CGroup: /system.slice/kubelet.service
└─29633 /usr/bin/kubelet --logtostderr=true --v=0 --api-servers=http://k8s-master:8080 --address=0.0.0.0 --hostname-ov...
1月 10 17:53:35 k8s-slave systemd[1]: Started Kubernetes Kubelet Server.
Created symlink from /etc/systemd/system/multi-user.target.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service.
Created symlink from /etc/systemd/system/docker.service.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service.
● flanneld.service - Flanneld overlay address etcd agent
Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2019-01-10 17:53:36 CST; 399ms ago
Main PID: 29676 (flanneld)
CGroup: /system.slice/flanneld.service
└─29676 /usr/bin/flanneld -etcd-endpoints=http://k8s-master:2379 -etcd-prefix=/kube-centos/network
1月 10 17:53:35 k8s-slave systemd[1]: Starting Flanneld overlay address etcd agent...
1月 10 17:53:36 k8s-slave flanneld-start[29676]: I0110 17:53:36.198446 29676 main.go:132] Installing signal handlers
1月 10 17:53:36 k8s-slave flanneld-start[29676]: I0110 17:53:36.198854 29676 manager.go:136] Determining IP address of d...erface
1月 10 17:53:36 k8s-slave flanneld-start[29676]: I0110 17:53:36.200817 29676 manager.go:149] Using interface with name e....1.160
1月 10 17:53:36 k8s-slave flanneld-start[29676]: I0110 17:53:36.200855 29676 manager.go:166] Defaulting external address...1.160)
1月 10 17:53:36 k8s-slave flanneld-start[29676]: I0110 17:53:36.327447 29676 local_manager.go:179] Picking subnet in ran....255.0
1月 10 17:53:36 k8s-slave flanneld-start[29676]: I0110 17:53:36.331919 29676 manager.go:250] Lease acquired: 172.30.14.0/24
1月 10 17:53:36 k8s-slave flanneld-start[29676]: I0110 17:53:36.339511 29676 network.go:58] Watching for L3 misses
1月 10 17:53:36 k8s-slave flanneld-start[29676]: I0110 17:53:36.339541 29676 network.go:66] Watching for new subnet leases
1月 10 17:53:36 k8s-slave systemd[1]: Started Flanneld overlay address etcd agent.
Hint: Some lines were ellipsized, use -l to show in full.
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/docker.service.d
└─flannel.conf
Active: active (running) since 四 2019-01-10 17:53:39 CST; 327ms ago
Docs: http://docs.docker.com
Main PID: 29822 (dockerd-current)
CGroup: /system.slice/docker.service
├─29822 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=d...
└─29826 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-in...
1月 10 17:53:38 k8s-slave dockerd-current[29822]: time="2019-01-10T17:53:38.430549834+08:00" level=info msg="libcontainerd...29826"
1月 10 17:53:39 k8s-slave dockerd-current[29822]: time="2019-01-10T17:53:39.564630777+08:00" level=info msg="Graph migrati...conds"
1月 10 17:53:39 k8s-slave dockerd-current[29822]: time="2019-01-10T17:53:39.566551038+08:00" level=info msg="Loading conta...tart."
1月 10 17:53:39 k8s-slave dockerd-current[29822]: time="2019-01-10T17:53:39.582728154+08:00" level=info msg="Firewalld run...false"
1月 10 17:53:39 k8s-slave dockerd-current[29822]: time="2019-01-10T17:53:39.808484154+08:00" level=info msg="Loading conta...done."
1月 10 17:53:39 k8s-slave dockerd-current[29822]: time="2019-01-10T17:53:39.828358939+08:00" level=warning msg="failed to ...dev\n"
1月 10 17:53:39 k8s-slave dockerd-current[29822]: time="2019-01-10T17:53:39.830276952+08:00" level=info msg="Daemon has co...ation"
1月 10 17:53:39 k8s-slave dockerd-current[29822]: time="2019-01-10T17:53:39.830320310+08:00" level=info msg="Docker daemon...1.13.1
1月 10 17:53:39 k8s-slave dockerd-current[29822]: time="2019-01-10T17:53:39.861046147+08:00" level=info msg="API listen on....sock"
1月 10 17:53:39 k8s-slave systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
vi /etc/kubernetes/kubelet
# 只修改以下的,其他保持不变
# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=0.0.0.0" #这里修改127.0.0.1 为 0.0.0.0
# The port for the info server to serve on
#KUBELET_PORT="--port=10250" #这保持不变,有的说是打开,其实无所谓
# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=k8s-slave" #这里修改127.0.0.1为k8s-slave主机名
# location of the api-server
KUBELET_API_SERVER="--api-servers=http://k8s-master:8080" #这里修改127.0.0.1为k8s-master主机名
vi /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://k8s-master:2379" #这里修改127.0.0.1为k8s-master主机名
FLANNEL_ETCD_PREFIX="/kube-centos/network" #这里修改atomic.io为 kube-centos
for SERVICES in kube-proxy kubelet flanneld docker; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
启动node之后,输入以下命令,配置kubectl
kubectl config set-cluster default-cluster --server=http://k8s-master:8080
kubectl config set-context default-context --cluster=default-cluster --user=default-admin
kubectl config use-context default-context
使用kubectl get nodes命令验证是否成功,分别在master和slave上进行执行和验证,如下效果:
[root@k8s-master /]# kubectl get nodes
NAME STATUS AGE
k8s-slave Ready 2m
[root@k8s-slave ~]# kubectl get nodes
NAME STATUS AGE
k8s-slave Ready 2m
【1】在CentOS 7上安装部署kubernetes,写的很清晰
【2】安装CentOS7非常好的一篇博文,强烈推荐
ps:上述记录的很多也都是参考文献中的过程,我自己在安装过程中特此记录。
按照上面的安装过程,最后能成功安装,但是版本是1.5的版本,比较低。后续在安装Prometheus和Grafana的时候发现无法监控成功,同时安装的过程中也遇到不少问题,主要是apiVersion的选择总是出问题,同网上贴出来的ymal有不少出入。最后磕磕绊绊安装成功也跑起来后,在targes里看不到任务活动的记录,具体怎么也找不到原因,后来猜测很有可能是k8s的版本造成的,就卸载了重新装新版的1.8.13版本。
关于卸载,我最开始有点犹豫,总担心会卸载不干净(其实就是很难卸载干净),主要步骤是:
1.停止服务 systemctl stop xx systemctl disable xxx
2.删除ymal
kubectl delete -f xxx.yaml
kubectl delete pod -all
kubectl delete node
3.删除相关文件,最后就行了。
然后我重新按照下面这个链接进行安装,一步一步操作,最后成功安装。
非常好的一篇安装教程
安装过程中,还是遇到一些问题,主要是启动kube-apiserver、kube-scheduler、kube-controll失败。失败原因主要还是我写的配置文件格式不对,严格按照博客中的命令去做,改下ip地址就行了。
第二个问题是安装docker的时候出问题了,说是校验不对,主要原因在于我之前的docker卸载的不干净,删除掉 /var/bin/docker目录,删除掉告警里提示的路径下的文件即可。参考这里卸载docker