如何在Red Hat CentOS 8上安装Kubernetes集群
2020/3/5 8:01:32
本文主要是介绍如何在Red Hat CentOS 8上安装Kubernetes集群,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
如果您已经从Red Hat的CentOS 7迁移到CentOS 8,您可能已经注意到发生了很多变化。这些变化已经让管理员们开始以不同的方式处理任务。安装Kubernetes就是这种情况。如果您希望在CentOS 8上部署Kubernetes集群,则CentOS8操作系统所发生的变化将直接影响您。
但是如何影响的呢?尽管它们不会改变您实际部署集群的方式,但为部署提供一切所需的资源却大不相同。
不用担心,我将引导您完成在CentOS 8上安装Kubernetes的过程,这样您就可以专注于部署集群和管理容器的业务了。
您需要什么
为了成功安装Kubernetes(并创建集群),您至少需要两台机器。我将在下面两个IP地址上运行的CentOS 8服务器上进行演示:
kubemaster – 10.34.1.139 kubenode – 10.34.1.161
您还需要一个具有sudo特权的账户并有权访问root用户。
有了所有这些,让我们开始工作。
除非另有说明,下面的所有内容在master节点和node节点上面都需要操作。
主机名
首先要做的是设置服务器的主机名,然后修改/etc/hosts
文件。首先使用以下命令设置主机名:
sudo hostnamectl set-hostname HOSTNAME
其中HOSTNAME
是要使用的主机名(例如kubemaster或kubenode)。设置主机名后,注销并重新登录。
接下来,使用以下命令打开hosts文件进行编辑:
sudo nano /etc/hosts
在该文件的底部添加以下内容(进行修改以匹配您的主机名和IP地址):
1.kubemaster - 10.34.1.139 2.kubenode - 10.34.1.161
保存并关闭文件。
安装Docker-CE
目前,Kubernetes无法与Podman(现在是RHEL和CentOS的默认容器引擎)一起使用。因此,您需要安装docker引擎。此过程有一些技巧。
下面是方法。
首先要做的是使用以下命令安装较旧版本的docker-ce:
sudo dnf install docker-ce-3:18.09.1-3.el7
接下来,您需要使用以下命令打开适当的防火墙端口:
sudo firewall-cmd --permanent --add-port=6443/tcp sudo firewall-cmd --permanent --add-port=2379-2380/tcp sudo firewall-cmd --permanent --add-port=10250/tcp sudo firewall-cmd --permanent --add-port=10251/tcp sudo firewall-cmd --permanent --add-port=10252/tcp sudo firewall-cmd --permanent --add-port=10255/tcp sudo firewall-cmd –reload sudo modprobe br_netfilter sudo echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
使用以下命令启动并启用Docker守护程序:
sudo systemctl enable --now docker
现在,您可以使用以下命令将用户添加到docker组:
sudo usermod -aG docker $USER
添加用户后,注销并重新登录,以便用户无需使用sudo(出于安全目的)即可使用docker引擎。
接下来,使用以下命令安装containerd.io软件包:
sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
完成后,使用以下命令安装最新版本的docker-ce:
sudo dnf install docker-ce
非常好,继续吧。
安装Kubernetes
现在我们可以在CentOS上安装Kubernetes。首先,我们必须使用以下命令创建一个新的存储库文件:
sudo nano /etc/yum.repos.d/kubernetes.repo
在该文件中,粘贴以下内容:
[kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
保存并关闭文件。使用以下命令安装必要的Kubernetes软件包:
sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
使用以下命令启动并启用该服务:
sudo systemctl enable --now kubelet
现在,我们将不得不su到root用户,然后使用以下命令创建一个新文件(以帮助配置iptables):
nano /etc/sysctl.d/k8s.conf
在该文件中,粘贴以下内容:
net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1
保存并关闭文件。使用以下命令加载新配置:
sysctl --system
使用exit命令退出root用户。
禁用swap
接下来,我们必须禁用swap。使用以下命令执行此操作:
sudo swapoff -a
这将暂时禁用交换。要永久禁用交换(因此重启后不会重新启用交换),请打开fstab并使用以下命令进行编辑:
sudo nano /etc/fstab
在该文件中,注释掉(在行的开头添加#字符)以以下内容开头的行:
/dev/mapper/cl-swap
保存并关闭文件。
创建一个守护程序文件
最后,我们必须创建一个守护程序文件。为此,首先发出su命令,然后使用以下命令创建新的守护程序文件:
nano /etc/docker/daemon.json
在该文件中,粘贴以下内容:
{ "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] }
保存并关闭文件。
使用以下命令创建一个新的systemd目录:
mkdir -p /etc/systemd/system/docker.service.d
使用以下命令重新加载并重新启动Docker守护进程:
systemctl daemon-reload systemctl restart docker
使用exit命令退出 root用户。
初始化集群
下面命令在Kubernetes master服务器上完成。要初始化集群,请发出命令:
sudo kubeadm init
上面的代码将初始化集群,并向您报告用于将node节点连接到主服务器的必要命令。
这是在CentOS 8上安装Kubernetes和初始化集群的当前方法。目前,还无法确定Podman的发展和成熟是否会改变。但是,在那之前,这是我成功的方法之一。尝试一下,看看它是否不会成为在Kubernetes上启动并在CentOS 8上运行的必经之路。
讲师主页:tonybai_cn
讲师博客: Tony Bai
实战课:《Kubernetes实战:高可用集群搭建,配置,运维与应用》
免费课:《Kubernetes基础:开启云原生之门》
这篇关于如何在Red Hat CentOS 8上安装Kubernetes集群的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15在Kubernetes (k8s) 中搭建三台 Nginx 服务器怎么实现?-icode9专业技术文章分享
- 2024-11-05基于Kubernetes的自定义AWS云平台搭建指南
- 2024-11-05基于Kubernetes Gateway API的现代流量管理方案
- 2024-11-05在Kubernetes上部署你的第一个应用:Nginx服务器
- 2024-11-05利用拓扑感知路由控制Kubernetes中的流量
- 2024-11-05Kubernetes中的层次命名空间:更灵活的资源管理方案
- 2024-11-055分钟上手 Kubernetes:精简实用的 Kubectl 命令速查宝典!
- 2024-10-30K8s 容器的定向调度与亲和性
- 2024-10-28云原生周刊:K8s未来三大发展方向 丨2024.10.28
- 2024-10-25亚马逊弹性Kubernetes服务(EKS)实战:轻松搭建Kubernetes平台