在centos 7中安装配置k8s集群的步骤详解

一、前置条件

在开始安装配置k8s集群之前,请确认以下前置条件:

  1. 在所有节点(Master和Worker)上禁用防火墙或者将必须的端口(如: 10250, 2379-2380, 6443, 10251-10252等)加入到了防火墙的白名单中。
  2. 所有节点的时间保持同步
  3. 所有节点的主机名和IP地址配置正确

二、安装Docker

Kubernetes是基于Docker容器技术构建的,因此在安装Kubernetes之前,我们需要先安装Docker。

  1. 安装Docker

yum install -y docker

  1. 启动Docker

systemctl start docker
systemctl enable docker

  1. 配置Docker镜像加速

在国内使用Docker官方镜像源的下载速度非常慢,因此我们需要配置一个Docker镜像加速器。

这里以阿里云镜像加速器为例,

将以下内容添加到 "/etc/docker/daemon.json" 文件中(如果文件不存在则创建它):

{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}

其中xxx为阿里云的镜像加速器地址。

然后重启Docker服务:

systemctl restart docker

三、安装Kubernetes

  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

  1. 安装Kubernetes组件

yum install -y kubelet kubeadm kubectl

  1. 启动Kubernetes

systemctl start kubelet
systemctl enable kubelet

  1. 部署Kubernetes Master

在某一台节点上执行以下命令:

kubeadm init --apiserver-advertise-address=<master-node-ip> --pod-network-cidr=10.244.0.0/16

其中 --apiserver-advertise-address 参数为Master节点IP地址,--pod-network-cidr 参数为flannel网络使用的IP地址段。

执行完上面的命令后,会输出一个类似于下面的信息:

```
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 172.31.30.10:6443 --token nxg6dk.z2gg5mq6gl4mplm3 \
--discovery-token-ca-cert-hash sha256:69cb50a94d3c2fd0d6e17464647bd83cdff18afcb447c99159c4f600494bf8a9
```

备注:

  • 执行前应该确保上述初始参数一定要正确;
  • kubeadm 命令执行完毕后,会在当前用户的 $HOME/.kube/config 文件中生成一个 Kubernetes 的管理密钥(kubeconfig)文件。
  • 安装CNI插件

Kubernetes默认使用Flannel作为网络插件,我们可以通过以下方式来安装Flannel:

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

  1. 加入Kubernetes节点

在所有的Kubernetes节点上执行以下命令:

kubeadm join <master-node-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

其中,<master-node-ip> 换成 master 节点的 IP 地址, <token><hash>在执行 kubeadm init 命令时生成,可以在初始化成功后通过命令 kubeadm token create --print-join-command 查看。

四、验证Kubernetes集群

  1. 验证集群状态

执行以下命令,查看集群状态

kubectl get nodes

如果所有的节点都已经加入成功,会输出类似于以下信息:

NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 3m2s v1.22.2
k8s-node1 Ready <none> 2m6s v1.22.2
k8s-node2 Ready <none> 2m6s v1.22.2

  1. 部署一个简单的应用

创建一个简单的nginx pod,并暴露到NodePort上:

kubectl run nginx --image=nginx --replicas=1 --port=80
kubectl expose pod nginx --type=NodePort --port=80 --name=nginx-service

查看部署状态:

kubectl get pods
kubectl get svc

输出以下信息,证明nginx pod部署成功:

```
NAME READY STATUS RESTARTS AGE
nginx-d8b54f4cb-5bk7s 1/1 Running 0 43s

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-service NodePort 10.100.49.182 80:30584/TCP 46s
```

现在打开一个浏览器,访问任意一台节点IP地址加上30584端口号,如果出现nginx默认的欢迎页面,则证明部署成功。

以上就是CentOS 7上使用kubeadm安装配置Kubernetes的全部过程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在centos 7中安装配置k8s集群的步骤详解 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Vmware添加磁盘的方法:扩展磁盘

    下面我将为您详细讲解Vmware添加磁盘的方法——扩展磁盘的完整攻略,步骤如下: 确认磁盘信息: 在进行磁盘扩容(扩展磁盘)操作之前,您需要确认虚拟机的磁盘情况,包括磁盘的类型、大小、位置等。 您可以通过以下步骤查看虚拟机的磁盘信息: 进入虚拟机的控制台界面,在主界面下方单击”VMware tools”选项卡。 在VMware tools界面中选择”硬件视图…

    Linux 2023年5月24日
    00
  • linux pxe网络装机无人值守

    项目分析远程装机的实现:配置DHCP+HTTP+TFTP提供通过vesamenu.c32模块实现图形PXE菜单为不同系统分别提供ks应答文件将第三方rpm包以yum源的方式提供:集中提供ntfs-3g,libreoffice的rpm包通过createrepo建立repodata 项目难点分析:PXE图形启动菜单需要准备的文件(由软件包syslinux-*提供…

    Linux 2023年4月12日
    00
  • Linux中安装部署Docker管理工具Drone全攻略

    Linux中安装部署Docker管理工具Drone全攻略 1. Docker安装 首先需要安装Docker,可以在官方网站查看Docker的详细安装说明 https://docs.docker.com/engine/install/ 在Ubuntu系统中,可以通过以下命令来安装Docker: sudo apt-get update sudo apt-get …

    Linux 2023年5月14日
    00
  • Linux reset命令

    Linux 中的 reset 命令是一个用于重置终端的命令。它可以清除终端屏幕上的所有输出,并将终端的属性恢复到默认值。在 Linux 中,通常会使用 reset 命令来清除终端屏幕上的输出,以便用户可以重新开始输入命令。 使用 reset 命令的基本语法如下: reset 以下是两个示例说明: 示例一:清除终端屏幕 要清除终端屏幕上的所有输出,可以使用以下…

    Linux 2023年5月11日
    00
  • Linux下重启apache的方法

    以下是“Linux下重启Apache的方法”的完整使用攻略,包含两个示例说明。 重启Apache 如果您在更改Apache配置或安装模块后需要重启Apache,请按以下步骤操作: 停止服务: bash sudo systemctl stop apache2 等待几秒钟,确保Apache完全停止。 启动Apache服务: bash sudo systemctl…

    Linux 2023年5月12日
    00
  • Linux下彻底卸载mysql详解

    Linux下彻底卸载MySQL详解 1. 停止MySQL服务 使用以下命令可以停止 MySQL 服务: sudo systemctl stop mysql 如果使用的是 MySQL 8.0 及以上版本,则使用以下命令: sudo systemctl stop mysqld 2. 卸载MySQL软件包 在 Ubuntu 系统中,你可以使用以下命令来卸载 MyS…

    Linux 2023年5月14日
    00
  • Linux系统中与中文显示相关的一些编码设置方法

    下面是关于Linux系统中的中文显示相关的编码设置方法的完整攻略。 一、查看系统的本地环境变量 可以先利用locale命令来查看系统的本地环境变量是否正确配置: locale 该命令可以列出当前系统中使用的本地化相关的环境变量,例如LANG、LC_ALL、LC_CTYPE等。如果这些变量正确配置,则在终端中打印中文字符不会出现乱码。 二、修改本地环境变量的值…

    Linux 2023年5月14日
    00
  • CentOS系统中PHP和MySQL的升级方法

    下面是详细的CentOS系统中PHP和MySQL升级的攻略: 升级PHP 步骤一:检查当前PHP版本 在终端中输入以下命令,查看当前系统中PHP的版本信息: php -v 步骤二:安装PHP升级所需的软件包 使用以下命令安装PHP升级所需的软件包: sudo yum -y install epel-release yum-utils sudo yum -y …

    Linux 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部