kubernetes之使用kubeadm部署一个单主集群

本文档详细介绍了如何使用kubeadm在多台服务器上部署一个kubernetes单主集群。首先,对kubernetes进行了简单介绍,然后清理了之前的docker-swarm实验。接着,通过一系列步骤,包括时间同步、安装docker、配置镜像仓库、初始化集群、添加节点、设置flannel网络,完成了kubernetes集群的部署。过程中提到了可能遇到的问题及解决办法,如调整cgroupdriver、禁用swap分区、设置镜像源等。
摘要由CSDN通过智能技术生成

一、认识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 准备工作
  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
  1. 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创建一个单主集群
  1. 主机配置
    每个机器2GB内存
    主节点2cpu
    server2:master server3:node1 server4:node2
  2. 确保 在 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
  1. 安装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
  1. 从阿里云镜像下载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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值