在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日

相关文章

  • LINUX诞生

    编辑 Linux[1]  是一类Unix计算机操作系统的统称。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。在1991 年的十月,由一个名为 Linus Torvalds的年轻芬兰大学生带头开发的作业系统。 中文名 LINUX诞生 时    间 1991年的10月 属    性 操作系统 起源地 芬兰 目录 1 历史背景 2 介绍 3 Lin…

    Linux 2023年4月12日
    00
  • Linux学习——ssh

    ssh 用于登录远程服务器 ssh登录 格式: ssh user@hostname -p 端口号(默认端口号22) 配置文件 创建文件~/.ssh/config 在文件中输入: Host myserver1 HostName IP地址或域名 User 用户名 Host myserver2 HostName IP地址或域名 User 用户名 此后登录服务器可以…

    Linux 2023年5月11日
    00
  • CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2

    以下是详细讲解“CentOS7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2”的完整攻略。 环境要求 CentOS 7.3.1611 Nginx 1.10.3 MySQL 5.7.16 PHP 7.1.2 安装步骤 安装Nginx 下载Nginx安装包: wget https://nginx.org/download/…

    Linux 2023年5月14日
    00
  • 阿里云ECS云服务器(linux系统)安装mysql后远程连接不了(踩坑)

    阿里云ECS云服务器(linux系统)安装mysql后远程连接不了(踩坑)攻略 问题描述 在阿里云ECS云服务器上安装mysql后,本地可以直接连接,但是无法通过远程连接访问mysql。 解决方案 要使得mysql支持远程连接,需要进行以下操作: 步骤1:修改mysql配置文件 打开mysql配置文件 /etc/mysql/my.cnf,将下面两个选项的注释…

    Linux 2023年5月14日
    00
  • vmware虚拟机安装安卓Android x86的方法步骤

    VMware虚拟机安装Android x86的方法步骤 1. 准备工作 1.1 下载Android x86镜像文件 到Android x86官网(https://www.android-x86.org/download)下载适合自己电脑系统的Android x86镜像文件,一般选择 ISO Files。 示例: 举个例子,如果你的电脑为64位系统,选择下载文…

    Linux 2023年5月24日
    00
  • Linux xlsfonts命令

    下面是关于 xlsfonts 命令的详细讲解: 作用: xlsfonts 命令可以列出当前系统中已安装的字体,并且它会以 xfontsel 的格式输出字体样式。 使用方法: 使用 xlsfonts 命令需要在终端中输入以下命令: xlsfonts [ option ] 常用的选项包括: -fn pattern:按照 pattern 模式来筛选字体。 -ali…

    Linux 2023年3月28日
    00
  • kubeadm 搭建 K8s的详细过程

    以下是”kubeadm 搭建 K8s的详细过程”的攻略。 准备工作 在开始kubeadm搭建Kubernetes之前,需要先完成以下准备工作: 首先确认已经在所有节点(Master节点和Worker节点)上安装好了系统,并且所有节点可以通过ssh互相访问。 各节点的主机名必须确保是正确的,不能是localhost或127.0.0.1。 确认某个节点将作为Ma…

    Linux 2023年5月14日
    00
  • Linux下rpm、yum和源码三种安装方式详细介绍

    Linux下安装软件的方式有三种:rpm、yum和源码,下面我们将逐一介绍这三种安装方式的具体细节和使用示例。 1. rpm安装方式 rpm包的含义 rpm是Red Hat Package Manager的简称,是一种Linux系统中的二进制包管理工具。rpm包本质上是一个压缩包,内部包含了软件的所有必需依赖文件及配置文件。 rpm安装流程 安装rpm包时,…

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