一、认识kubernetes
二、清理之前多的docker-swarm实验
将之前做docker-swarm的节点脱离出来
[root@server1 ~]#docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
434iwcmh9gsil4bs3rjm0xtnq * server1 Ready Active Leader 19.03.8
6lb9ftc8qm2mntup69ix8jcno server2 Ready Active 19.03.8
tkm4di4em3degw6muvq46jmi2 server3 Ready Active 19.03.8
[root@server2 ~]# docker swarm leave
[root@server3 ~]# docker swarm leave
[root@server1 ~]#docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
434iwcmh9gsil4bs3rjm0xtnq * server1 Ready Active Leader 19.03.8
6lb9ftc8qm2mntup69ix8jcno server2 Down Active 19.03.8
tkm4di4em3degw6muvq46jmi2 server3 Down Active 19.03.8
将管理节点脱离出来
[root@server1 ~]#docker swarm leave --force
Node left the swarm.
三、部署kubernetes
server1 私有仓库
server2、server3、server4 集群
3.1 准备工作
- 时间同步
方式一:
yum install -y ntpdate
ntpdate time.windows.com
方式二:
真机与阿里云时间同步
[root@foundation60 images]# vim /etc/chrony.conf
7 server ntp1.aliyun.com iburst
23 allow 172.25/16
[root@foundation60 images]# systemctl start chronyd
[root@foundation60 images]# chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 120.25.115.20 2 6 17 0 -6660us[-2489us] +/- 32ms
[root@foundation60 images]# firewall-config # 允许防火墙通过ntp服务
server2、server3、server4与真机时间同步(同时做如下操作)
[root@server4 ~]# cat /etc/hosts
172.25.60.250 foundation60.ilt.example.com
[root@server4 ~]# yum install chrony -y
[root@server4 ~]# vim /etc/chrony.conf
server 172.25.60.250 iburst
[root@server4 ~]# systemctl start chronyd
[root@server4 ~]# systemctl enable chronyd
[root@server4 ~]# chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* foundation60.ilt.example> 3 6 17 27 +120ns[ +43us] +/- 37ms
- server2\server3\server4上添加私有仓库解析(同时做如下操作)
[root@server4 ~]# cat /etc/hosts
172.25.60.1 server1 reg.westos.org
172.25.60.2 server2
172.25.60.3 server3
172.25.60.4 server4
172.25.60.5 server5
172.25.60.250 foundation60.ilt.example.com
3.2 使用kubeadm创建一个单主集群
- 主机配置
每个机器2GB内存
主节点2cpu
server2:master server3:node1 server4:node2 - 确保 在 sysctl 配置中的 net.bridge.bridge-nf-call-iptables 被设置为 1(server2,3,4同时操作)
[root@server4 ~]# cat <<EOF > /etc/sysctl.d/k8s.conf
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
[root@server4 ~]# sysctl --system
- 安装docker(server2,3,4同时操作)
# 172.25.60.250上配置了docker仓库
[root@server4 yum.repos.d]# cat docker-ce.repo
[docker-ce]
name=docker-ce
baseurl=http://172.25.60.250/software
gpgcheck=0
[root@server4 yum.repos.d]# yum install docker-ce
[root@server4 yum.repos.d]# systemctl start docker
[root@server4 ~]# systemctl enable --now docker
- 从阿里云镜像下载kubernetes
https://developer.aliyun.com/mirror/kubernetes?spm=a2c6h.13651102.0.0.3e221b11jhg51C
添加kubernetes的yun源(server2,3,4同时操作)
[root@server2 ~]# cd /etc/yum.repos.d/
[root@server2 yum.repos.d]# cat k8s.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
[root@server2 ~]# yum install -y kubelet kubeadm kubectl
kubectl