centos7.6搭建1.19.2版本kubernetes

准备工作

本文使用的系统是centos7,需要两核CPU以上,内存2G以上,硬盘20G以上,在物理机虚拟机安装皆可。

本文参考了blog官方文档

1. 查看系统版本

$ cat /etc/centos-release
CentOS Linux release 7.6.2009 (Core)

2. 配置主机名(根据自己的情况修改主机名称,本例为master_02)

$ cat /etc/hosts
127.0.0.1        localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.111.22   master_02

3. 修改 /etc/hostname 文件,添加主机名和 IP 的对应关系:(有node,将node也加入即可)

$ hostnamectl set-hostname master

4. 关闭swap,注释swap分区

如果开启了 swap 分区,kubelet 会启动失败(可以通过将参数 --fail-swap-on 设置为false 来忽略 swap on),故需要在每台机器上关闭 swap 分区。

PS.
(1) 为了防止开机自动挂载 swap 分区,可以注释 /etc/fstab 中相应的条目
(2) 根据需求清空防火墙规则,本文中没有关闭防火墙
如有需要请参考blog

$ swapoff -a

5. 添加阿里源

$ rm -rfv /etc/yum.repos.d/*
$ curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

6. 配置内核参数,将桥接的IPv4流量传递到iptables的链

$ cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
$ sysctl --system

安装常用包

PS. 可以先移除电脑上原有的dockers,可参考官方文档。

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

在这里插入图片描述
1. 安装必要的一些系统工具

$ yum install vim bash-completion net-tools gcc -y

使用aliyun源安装docker-ce

1. 安装docker

$ yum install -y yum-utils device-mapper-persistent-data lvm2
$ yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo %添加软件源信息
$ yum -y install docker-ce-18.06.3.ce-3.el7 %下载最新版本的docker即可

2. 添加aliyundocker仓库加速器

$ mkdir -p /etc/docker
$ tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://fl791z1h.mirror.aliyuncs.com"]
}
EOF
$ systemctl daemon-reload
$ systemctl restart docker

升级内核版本

PS. 具体步骤可参考文章《Centos7 升级内核版本》

1. 查看当前内核版本

$ uname -r
$ uname -a
$ cat /etc/redhat-release

2. 更新yum源仓库

$ yum -y update

3. 启用 ELRepo 仓库

- 导入ELRepo仓库的公共密钥

$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

- 安装ELRepo仓库的yum源

$ rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

4. 查看可用的系统内核包

$ yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

5. 安装最新版本内核

$ yum --enablerepo=elrepo-kernel install kernel-ml

6. 设置 grub2

PS. 内核安装好后,需要设置为默认启动选项并重启后才会生效

- 查看系统上的所有可用内核

$ sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

在这里插入图片描述
- 设置新的内核为grub2的默认版本

服务器上存在4 个内核,我们要使用 5.12.2-1 这个版本,可以通过 grub2-set-default 0 命令或编辑 /etc/default/grub 文件来设置。

$ grub2-set-default 0 %其中 0 是上面查询出来的可用内核

PS. 编辑 /etc/default/grub 文件来设置内核的方法可参考Centos7 升级内核版本

7. 验证

$ uname -r

在这里插入图片描述

PS. 如想删除旧内核可参考Centos7 升级内核版本

安装kubectl、kubelet、kubeadm

1. 添加阿里kubernetes源

$ cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

2. 安装指定版本的kubectl、kubelet、kubeadm(本例安装的都是1.19.2版本)

$ yum install kubectl-1.19.2 kubelet-1.19.2 kubeadm-1.19.2
$ systemctl enable kubelet

初始化k8s集群

PS.本例使用编写kubeadm.yaml方法初始化集群
!! 如果已经使用其他方法但是没有成功初始化集群,可先执行 kubeadm reset 命令,再进行接下来的操作。

$ kubeadm config print init-defaults > kubeadm.yaml
$ vim kubeadm.yaml

在这里插入图片描述

将上图中的 ① 部分改为自己主机的ip地址;将 ② 部分改为 registry.cn-hangzhou.aliyuncs.com/google_containers

$ kubeadm init --config=kubeadm.yaml

在这里插入图片描述

记录生成的最后部分内容,此内容需要在其它节点加入Kubernetes集群时执行。

- 根据提示创建kubectl

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

安装calico网络

$ kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

node节点加入集群

1. 加入集群

在 kubeadm 初始话集群成功后会返回 join 命令,里面有 token,discovery-token-ca-cert-hash等参数,需要记下来。有关 token 的过期时间是24小时, certificate-key 过期时间是2小时。

PS. 其他情况请参考节点加入k8s集群如何获取token等参数值

- token没过期

$ kubeadm token list #在master节点执行获取token

- token已过期,需重新生成

$ kubeadm token create --print-join-command #在master节点执行

根据提示将node节点加入集群

$ kubeadm join 192.168.111.22:6443 --token abcdef.0123456789abcdef --discovery-....

2. 安装calico网络

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

3. 将master节点的admin.conf发送到到所有node节点

$ scp /etc/kubernetes/admin.conf 节点ip:/etc/kubernetes/admin.conf

4. 为节点设置role值
在这里插入图片描述

$ kubectl label node node-02.nocvalocal(节点名称) kubernetes.io/role=node-02

在这里插入图片描述

kubeadm join 192.168.111.37:6443 --token jwp0jx.53ci7q1elgp0ua3w --discovery-token-ca-cert-hash sha256:992d7a97715e8e2230ede29b20e7d9e12e362ce720771ac9f8c99be6565abcca

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值