使用阿里源部署Kubernetes单节点并且升级示例

1.部署规划

本次部署Kubernetes在国内网络环境下,资源镜像使用阿里源,使用官方推荐Kubeadm工具,只部署1个master节点仅供测试使用,资源配置(4CPU,内存4GB,硬盘50GB),操作系统选择CentOS-7-x86_64-Minimal-1810.iso。大规模的生产环境不建议使用Kubeadm方式部署。

部署计划:先部署Kubernetes v1.20.8版本,然后升级到 v1.21.3版本。

2.部署前准备工作

2.1.关闭防火墙

关闭防火墙的原因是,nftables后端兼容性问题,产生重复的防火墙规则。操作如下所示:

$ systemctl stop firewalld && systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

关闭防火墙后,然后查看一下状态,确认一下是否已经关闭。操作和结果如下所示:

$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

Jul 26 03:33:20 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Jul 26 03:33:21 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Jul 26 03:37:39 loki systemd[1]: Stopping firewalld - dynamic firewall daemon...
Jul 26 03:37:42 loki systemd[1]: Stopped firewalld - dynamic firewall daemon.

2.2.关闭selinux

关闭selinux的原因是,关闭selinux以允许容器访问宿主机的文件系统,操作如下所示:

$ sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
$ setenforce 0

2.3.关闭swap

关闭swap,考虑这个当内存不足时,linux会自动使用swap,将部分内存数据存放到磁盘中,这个这样会使性能下降,为了性能考虑推荐关掉

临时关闭swap操作如下所示(重启机器后无效):

$ swapoff -a

或,永久关闭swap方式操作如下(先要备份原有的fstab文件,防止出错后丢失):

$ yes | cp /etc/fstab /etc/fstab_bak 
$ cat /etc/fstab_bak |grep -v swap > /etc/fstab

2.4.配置允许iptables 通过桥接流量

1)确保 br_netfilter 模块已加载。操作命令如下所示:

$ cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

操作如下命令,验证配置是否生效:

$ modprobe br_netfilter

2)作为 Linux 节点的 iptables 正确查看桥接流量的要求,需要确保在 sysctl 配置中将 net.bridge.bridge-nf-call-iptables 设置为 1,操作命令如下所示:

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

操作如下命令,使配置生效:

$ sysctl --system

返回如下,则说明配置生效无误:

…………
* Applying /etc/sysctl.d/k8s.conf ...
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
…………

2.5.安装docker组件

2.5.1.简要说明

本次安装使用的是旧版本的Docker,因为不需要像docker-ce需要配置yum源,在国内网络环境下,直接“install”即可,简易快速(操作如下文所示)。

1.具体docker-cedocker-ee区别

Docker-EE 代表 Docker 企业版,而 Docker-CE 代表社区版。它们都捆绑了 Docker Engine(运行 Docker 容器的平台)。除此之外,企业版还增加了一些面向企业的功能,例如图像管理和应用程序管理。

所以,本质上 Docker-CE 是“Docker 的开源”,而 Docker-EE 是 Docker for Enterprises。

2.Docker的历史版本

过去 Docker 曾经使用标准的版本编号约定。大多数版本都是从 1.* 开始的,直到 2017 年 3 月,惯例被更改以反映每月/每季度的发布时间表,那时 Docker-CE 诞生了 17.03 (YY.MM) 版本。与此同时,具有旧命名约定的旧版本 Docker 继续存在,最新的是 Docker 1.13。在大多数系统中,这创建了两个不同的包:代表版本 <= 1.13 的 docker 和代表版本 >= 17.03 的 docker-ce(或 -ee)。

参考资料:

  1. Docker, Docker-CE, Docker-EE and Moby, which one do I pick? – Marksei
  2. Install Docker Engine on CentOS | Docker Documentation

2.5.2.安装Docker

安装docker,操作命令如下所示:

$ yum install docker

查看docker版本,操作命令如下所示:

$ docker version
Client:
 Version:        1.13.1
 API version:     1.26
 Package version:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

注:如上最后一行,可以看到docker程序尚未运行,下面将启动docker。

启动docker以及查看docker启动后的状态,确认是否启动成功,操作命令如下所示:

$ systemctl enable --now docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

$ systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-07-26 03:49:46 EDT; 4s ago
    …………

3.部署Kubernetes

3.1.配置Kubernetes源文件

配置kubernetes的yum安全源文件,在国内网络环境下,本次配置使用阿里镜像源,配置如下操作所示:

$ vim /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

清理旧缓存,建立新缓存

$ yum clean all && yum makecache

查看可以安装的kubeadm版本号,操作命令如下所示:

$ yum list --showduplicates kubeadm --disableexcludes=kubernetes

返回信息中,看到本次安装需要的版本“1.20.8-0”

…………
kubeadm.x86_64    1.20.5-0     kubernetes
kubeadm.x86_64    1.20.6-0     kubernetes
kubeadm.x86_64    1.20.7-0     kubernetes
kubeadm.x86_64    1.20.8-0     kubernetes
kubeadm.x86_64    1.20.9-0     kubernetes
kubeadm.x86_64    1.21.0-0     kubernetes
…………

3.2.安装kubelet,kubectl组件以及部署工具kubeadm

安装kubelet,kubeadm以及kubectl三个组件指定版本,格式如:“<组件名称>-<版本号>“,本次安装版本为“v1.20.8”,操作命令如下所示:

$ yum install kubelet-1.20.8 kubeadm-1.20.8 kubectl-1.20.8

安装完后,查看kubectl版本号:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.8", GitCommit:"5575935422cc1cf5169dfc8847cb587aa47bac5a", GitTreeState:"clean", BuildDate:"2021-06-16T13:00:45Z", GoVersion:"go1.15.13", Compiler:"gc", Platform:"linux/amd64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port?

查看kubeadm版本号:

$ kubeadm ver
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值