如何在CentOS 7上安装Kubernetes Docker群集

Kubernetes是一个开源平台,用于管理由Google开发的容器化应用程序。它允许您在集群环境中管理,扩展和自动部署容器化应用程序。使用Kubernetes,我们可以跨多个主机协调我们的容器,使用所有资源即时扩展容器化应用程序,并拥有集中的容器管理环境。

在本教程中,我将逐步向您展示如何在CentOS 7上安装和配置Kubernetes。我们将使用1台服务器'k8s-master'作为Kubernetes Host Master,2台服务器作为Kubernetes节点,'node01'和'node02'。

先决条件

  • 3台CentOS 7服务器

    • 10.0.15.10 k8s-master
    • 10.0.15.21 node01
    • 10.0.15.22 node02
  • Root权限

我们将要做什么?

  1. Kubernetes安装
  2. Kubernetes集群初始化
  3. 将node01和node02添加到群集
  4. 测试 - 创建第一个Pod

第1步 - Kubernetes安装

在第一步中,我们将为Kubernetes安装准备这3台服务器,因此在主服务器和节点服务器上运行所有命令。

我们将通过更改服务器上的现有配置以及安装一些软件包(包括docker-ce和kubernetes本身)来为Kubernetes安装准备所有服务器。

- 配置主机

使用vim编辑器在所有服务器上编辑hosts文件  。

vim /etc/hosts

粘贴下面的主机列表。

10.0.15.10 k8s-master
10.0.15.21 node01
10.0.15.22 node02

保存并退出。

- 禁用SELinux

在本教程中,我们不会介绍Docker的SELinux配置,因此我们将禁用它。

运行以下命令以禁用SELinux。

setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

- 启用br_netfilter内核模块

kubernetes安装需要br_netfilter模块。启用此内核模块,以便iptables处理遍历网桥的数据包​​以进行过滤和端口转发,并且群集中的kubernetes pod可以相互通信。

运行以下命令以启用br_netfilter内核模块。

modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables

- 禁用SWAP

通过运行以下命令禁用用于kubernetes安装的SWAP。

swapoff -a

然后编辑'/ etc / fstab'文件。

vim /etc/fstab

注释交换行UUID如下。

- 安装Docker CE

从docker存储库安装最新版本的Docker-ce。

安装docker-ce的软件包依赖项。

yum install -y yum-utils device-mapper-persistent-data lvm2

将docker存储库添加到系统并使用yum命令安装docker-ce。

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce

等待docker-ce安装。

- 安装Kubernetes

通过运行以下命令将kubernetes存储库添加到centos 7系统。

cat <<EOF > /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.gpghttps://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

现在使用下面的yum命令安装kubernetes包kubeadm,kubelet和kubectl。

yum install -y kubelet kubeadm kubectl

安装完成后,重新启动所有这些服务器。

sudo reboot

再次登录到服务器并启动服务,docker和kubelet。

systemctl start docker && systemctl enable docker
systemctl start kubelet && systemctl enable kubelet

- 更改cgroup-driver

我们需要确保docker-ce和kubernetes使用相同的'cgroup'。

使用docker info命令检查docker cgroup。

docker info | grep -i cgroup

你看到docker正在使用' cgroupfs '作为cgroup-driver。

现在运行以下命令将kuberetes cgroup-driver更改为'cgroupfs'。

sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

重新加载systemd系统并重新启动kubelet服务。

systemctl daemon-reload
systemctl restart kubelet

现在我们已准备好配置Kubernetes集群。

第2步 - Kubernetes群集初始化

在此步骤中,我们将初始化kubernetes主集群配置。

将shell移动到主服务器'k8s-master'并运行以下命令来设置kubernetes master。

kubeadm init --apiserver-advertise-address=10.0.15.10 --pod-network-cidr=10.244.0.0/16

注意:

--apiserver-advertise-address =确定Kubernetes应该在哪个IP地址上公布其API服务器。

--pod-network-cidr =指定pod网络的IP地址范围。我们正在使用'法兰绒'虚拟网络。如果要使用其他pod网络(如weave-net或calico),请更改范围IP地址。

Kubernetes初始化完成后,您将得到如下结果。

注意:

将' kubeadm join ... ... ... '命令复制到文本编辑器。该命令将用于向kubernetes集群注册新节点。

现在为了使用Kubernetes,我们需要在结果上运行一些命令。

创建新的“.kube”配置目录并复制配置“admin.conf”。

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

接下来,使用kubectl命令将flannel网络部署到kubernetes集群。

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

法兰绒网络已部署到Kubernetes集群。

等一下,然后使用下面的命令检查kubernetes节点和pod。

kubectl get nodes
kubectl get pods --all-namespaces

您将获得'k8s-master'节点作为“主”群集运行,状态为“就绪”,您将获得群集所需的所有pod,包括用于网络pod的'kube-flannel-ds'组态。

确保所有kube-system pods状态为“正在运行”。

Kubernetes集群主机初始化和配置已完成。

步骤3 - 将node01和node02添加到群集

在此步骤中,我们将添加node01和node02以加入'k8s'集群。

连接到node01服务器并在我们复制到顶部时运行kubeadm join命令。

kubeadm join 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0778794b94c61e

连接到node02服务器并运行kubeadm join命令,因为我们复制在顶部。

kubeadm join 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0778794b94c61e

等待几分钟后返回'k8s-master'主集群服务器,使用以下命令检查节点和pod。

kubectl get nodes
kubectl get pods --all-namespaces

现在,您将获得node01,并且node02已添加到状态为“ready”的群集中。

node01和node02已添加到kubernetes集群中。

第4步 - 测试创建第一个Pod

在此步骤中,我们将通过将Nginx pod部署到kubernetes集群来进行测试。pod是一组包含共享存储和网络的一个或多个容器,在Kubernetes下运行。Pod包含一个或多个容器,例如Docker容器。

登录到'k8s-master'服务器并使用kubectl命令创建名为'nginx'的新部署。

kubectl create deployment nginx --image=nginx

要查看“nginx”部署sepcification的详细信息,请运行以下命令。

kubectl describe deployment nginx

您将获得nginx pod部署规范。

接下来,我们将展示可通过互联网访问的nginx pod。我们需要为此创建新的服务NodePort。

运行下面的kubectl命令。

kubectl create service nodeport nginx --tcp=80:80

确保没有错误。现在使用下面的kubectl命令检查nginx服务nodeport和IP。

kubectl get pods
kubectl get svc

现在,您将获得nginx pod现在在群集IP地址'10 .160.60.38'端口80下运行,以及端口'30691'上的节点主IP地址'10 .0.15.x'。

从'k8s-master'服务器运行 下面的curl命令。

curl node01:30691

curl node02:30691

Nginx Pod现已部署在Kubernetes集群下,可通过互联网访问。

现在从Web浏览器访问。

http://10.0.15.10:30691/

您将获得Nginx默认页面。

在node02服务器上 - http://10.0.15.11:30691/

CentOS 7上的Kubernetes集群安装和配置已成功完成。

参考

  • https://kubernetes.io/docs/

关于穆罕默德阿鲁尔

Muhammad Arul是一名自由系统管理员和技术作家。他在Linux Env​​ironments工作超过5年,是一名开源爱好者,并且在Linux安装和故障排除方面积极主动。主要使用RedHat / CentOS Linux和Ubuntu / Debian,Nginx和Apache Web服务器,Proxmox,Zimbra管理和网站优化。目前正在学习OpenStack和容器技术。

转载来源:https://www.howtoforge.com/tutorial/centos-kubernetes-docker-cluster/

如何在CentOS 7上安装Kubernetes Docker群集相关推荐

  1. 如何在CentOS 8上安装Docker

    介绍 与之前的版本相比,新的CentOS 8版本引入了许多创新元素,一个重大变化是决定不再为Docker提供官方支持. 相反,RHE选择引入用于容器映像创建和管理的内置工具:buildah和podma ...

  2. 如何在 CentOS 7 上安装 Nginx

    本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Nginx 读作 engine x, 是一个免费的.开源的.高性能的 HTTP 和反向代理服务,主要负责负载一些访问量比较大的站点. ...

  3. opencv 安装_如何在 CentOS 8 上安装 OpenCV

    本文最先发表在: 如何在 CentOS 8 上安装 OpenCV​www.itcoder.tech OpenCV(Open Source Computer Vision Library) 是一个开源的 ...

  4. 2019 年如何在 CentOS 7 上安装最新版 Nginx

    本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Nginx 读作 engine x, 是一个免费的.开源的.高性能的 HTTP 和反向代理服务,主要负责负载一些访问量比较大的站点. ...

  5. fortran安装_如何在 CentOS 8 上安装 GCC

    本文最先发布在: 如何在 CentOS 8 上安装 GCC​www.itcoder.tech GNU 编译器集合是一系列用于语言开发的编译器和库的集合,包括: C, C++, Objective-C, ...

  6. centos 使用java_如何在CentOS 8上安装Java

    Java是用于构建不同类型的应用程序和系统的最流行的编程语言之一. Java有两种不同的实现,OpenJDK和Oracle Java,两者之间几乎没有区别,只是Oracle Java具有一些其他的商业 ...

  7. linux centos7 r安装,如何在CentOS 7上安装R

    R是一种快速增长的开源编程语言和免费环境,专门从事统计计算和图形表示.它得到R统计计算基金会的支持,主要由统计学家和数据挖掘人员用于开发统计软件和执行数据分析. 本教程将教您如何在CentOS 7上安 ...

  8. 如何在CentOS 7上安装和使用PostgreSQL

    原作者:米切尔·阿尼卡斯 转载来源:https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql ...

  9. 如何在CentOS 7上安装和配置MySQL Cluster

    翻译&转载:https://www.howtoforge.com/tutorial/how-to-install-and-configure-mysql-cluster-on-centos-7 ...

最新文章

  1. Exchange 2013sp1邮件系统部署-(七)
  2. Android初级开发笔记-- activity启动模式的学习(1)
  3. 可折叠Web可能会给我们带来的变化
  4. (92)Verilog HDL系统函数和任务:$fclose
  5. 第一步,统一头文件的大小写
  6. 卷片机行业调研报告 - 市场现状分析与发展前景预测
  7. PHP100个知识点之2 日期时间(一)
  8. FAST_ICA MTALAB工具包下载/ICA分析/独立成分分析MATLAB安装包/ICA toolbox
  9. c语言程序基础设计题,《C语言程序设计基础》习题集(含答案)
  10. Win10 文件夹删不掉,提示需要来自XXX的权限才能对此文件夹进行更改
  11. html平行四边形标签,平行四边形
  12. webapp封装 苹果app证书
  13. 阿里开发者招聘节 | 面试题14:如何实现两金额数据相加(最多小数点两位)
  14. 关于xds100仿真器的ftdi驱动无法使用的问题
  15. Flutter开发日常练习-pageview滑动视图动画
  16. Android调用微信扫一扫和支付宝扫一扫
  17. JSP中获取项目根目录
  18. python画老虎_老虎证券量化API Python SDK
  19. 海尔集团CEO张瑞敏演讲稿:人不成熟的5大特征
  20. flash动画文件转html5,Flash动画转HTML5 Smokescreen

热门文章

  1. 如何使用Pinterest新推出的功能Rich Pin
  2. 更简洁的方式修改Chrome的User Agent,轻松体验移动版网络
  3. Objective-C 2.0 with Cocoa Foundation --- 3,类的声明和定义
  4. C++中map与unordered_map, set与unordered_set
  5. Linux查看机器负载
  6. firewall-cmd
  7. LeetCode 523. Continuous Subarray Sum
  8. STL——vector容器详解
  9. jdbc连接对象的获取 20210409233805735
  10. 9203精英挑战赛注意事宜 一