模拟集群——虚拟机
个人学习一般很少具备集群这样的条件,所以集群的模拟可以使用虚拟机进行模拟。windows和linux推荐virtualbox,mac 10.14貌似无法安装virtualbox,所以macos推荐使用Veertu(可以免费试用30天,试用完再卸载,或者30天内从入门到放弃)。
为了节省空间,镜像选择了centos7 mini,镜像文件1G左右。虚拟机安装系统需要注意一点就是网卡的设置,关于网卡设置可以参考virtualbox的网卡链接方式。下图是veertu的网卡设置。

系统安装好之后,首先检测是否可以上网ping www.baidu.com
,发现无法ping通。可能是网络服务没有激活。
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:00:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
会看到ens3这样的信息,接下来去查看一下网卡配置。etc/sysconfig/network-scripts/ifcfg-ens3
,其中ifcfg-ens3就是ens3的配置脚本,文件名一般是按照ifcfg-网卡名。可以看到ens3的配置为:
TYPE=Ethernet # 网卡类型为以太网
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp # ip配置方式,使用dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens3 # 网卡名
UUID=816b229e-0946-477d-89a8-ea92f2841459
DEVICE=ens3 # 网卡设备名
ONBOOT=no # 启动时是否激活 yes|no
可以看到ONBOOT的值为no表示启动时不激活该网卡,所以centos开机后无法联网,只需要修改"ONBOOT=yes"即可。
配置文件修改好之后,我们需要重启网络服务,使用systemd来重启网络服务systemctl restart network
,关于systemd可以参考阮一峰老师的文章。
etcd kubernetes
安装
在安装etcd, kubernetes之前要先安装rhsm,因为kubectl create -f xxx.yaml
创建pod时候回去docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest
,需要读取/etc/rhsm/ca/redhat-uep.pem
文件,但是安装kubernetes时候会默认安装subscription-manager-rhsm-certificates.x86_64
,这个包是python-rhsm-certificates.x86_64
的替代品,所以安装的时候回卸载python-rhsm-certificates.x86_64
。导致/etc/rhsm/ca/redhat-uep.pem
这个文件一直不存在。但是通过yum install python-rhsm-certificates.x86_64
安装时,会提示安装其替代品subscription-manager-rhsm-certificates.x86_64
。所以需要手动安装:
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm # 下载安装包
rpm -ivh python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm # 安装
cd /etc/rhsm/ca/
cp redhat-uep.pem redhat-uep.pem.backup # 备份
安装之后需要备份一下,不然在安装kubernetes的时候会被自动卸载掉。接下来安装etcd,kubernetes:
yum install etcd kubernetes
cd /etc/rhsm/ca/
cp redhat-uep.pem.backup redhat-uep.pem # 恢复认证
启动服务
服务的启动也是基于systemd,所以了解systemd还是很有必要的。还不了解的看看阮一峰老师的文章。
启动服务是有顺序的:
systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-sheduler
systemctl start kubelet
systemctl start kube-proxy
网友评论