千家信息网

怎么安装Kubernets集群?

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,怎么安装Kubernets集群?针对这个问题,今天小编总结这篇有关安装Kubernets集群的文章,希望帮助更多想解决这个问题的同学找到更加简单易行的办法。系统初始化首先是三个centos的服务器。然
千家信息网最后更新 2026年11月03日怎么安装Kubernets集群?

怎么安装Kubernets集群?针对这个问题,今天小编总结这篇有关安装Kubernets集群的文章,希望帮助更多想解决这个问题的同学找到更加简单易行的办法。


  • 系统初始化

首先是三个centos的服务器。然后开始安装组件,这里为了方便三个机器上装的软件,拉的镜像都一样了,实际上可以少安装的一点,不过反正也节约不了多少空间,因为这些软件和镜像不是很大。

先是关防火墙和selinux之类的操作确保这些设置不会影响到操作。

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/configsystemctl stop firewalldsystemctl disable firewalldswapoff -asetenforce 0

还有记得把/etc/fstab里的有swap字符的一行给注释掉,否则重启后kubelet的服务会出错。参考命令

sed -i 's/.*swap.*/#&/' /etc/fstab


  • 安装docker

接下来就是开始下软件和拉镜像的活了。它们同时存在的问题就是官方源不能下(因为它是某外国知名搜索引擎的服务器)。所以要加一下镜像源。

yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum list docker-ce --showduplicates | sort -ryum -y install docker-cesystemctl start dockersystemctl status dockersystemctl enable docker


  • 安装kubernets

安装 kubelet、kubeadm、kubectl,注意一下版本,yum源下载的版本默认是最新的,那么容器镜像至少要比这个版本新,如果没有,请在下载的时候注明版本信息。我在做本次测试环境的时候所有的软件和镜像都是1.16.0的版本。

加阿里云的镜像源。

cat>>/etc/yum.repos.d/kubrenetes.repo<
yum install -y kubelet kubeadm kubectlsystemctl enable kubelet && systemctl start kubelet

加上版本的下载方法。

yum install -y kubelet-1.16.0 kubeadm-1.16.0 kubectl-1.16.0

如果你已经下错了,可以用一些命令来解决。

rpm -qa | grep kube 查看版本

yum downgrade //这个是yum降级的命令



先输入命令

kubeadm config images list

它会告诉你,你需要下载哪些镜像,你心里得有个底,至少这些镜像你要先下载完成才能完成继续。

当我在做的时候,屏幕上显示的是

k8s.gcr.io/kube-apiserver:v1.16.7

k8s.gcr.io/kube-controller-manager:v1.16.7

k8s.gcr.io/kube-scheduler:v1.16.7

k8s.gcr.io/kube-proxy:v1.16.7

k8s.gcr.io/pause:3.1

k8s.gcr.io/etcd:3.3.15-0

k8s.gcr.io/coredns:1.6.2

如果你输入了命令,后面的版本可能会有变化,但是前面基本是是一致的。



然后开始用kubeadmin init的方法去初始化集群。不过直接运行网上常见的命令估计90%是失败的。我在踩坑的时候找到两个办法,可以试试。

一个是:

kubeadm init --kubernetes-version=v1.16.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap --image-repository=registry.aliyuncs.com/google_containers

这个方法加了一个--image-repository=registry.aliyuncs.com/google_containers参数改变了下载地址。

不过这么做之后,你依旧要把这些docker镜像的仓库名改为k8s.gcr.io。

例如你在用命令docker images看到了镜像的列表。

里面有一个镜像叫做registry.aliyuncs.com/google_containers/kube-apiserver

那么你要用命令docker tag registry.aliyuncs.com/google_containers/kube-apiserver k8s.gcr.io/kube-apiserver

这样的方法去改。有很多个这样的镜像它们的仓库名都要改。改完之后你可以用docker rmi 逐个的把原来registry.aliyuncs.com/google_containers打头的镜像统统删除。当然你留着也没问题。

用脚本去完成操作

#!/bin/bash## 使用如下脚本下载国内镜像,并修改tag为google的tagset -eKUBE_VERSION=v1.16.0KUBE_PAUSE_VERSION=3.1ETCD_VERSION=3.3.15-0CORE_DNS_VERSION=1.6.2GCR_URL=k8s.gcr.ioALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containersimages=(kube-proxy:${KUBE_VERSION}kube-scheduler:${KUBE_VERSION}kube-controller-manager:${KUBE_VERSION}kube-apiserver:${KUBE_VERSION}pause:${KUBE_PAUSE_VERSION}etcd:${ETCD_VERSION}coredns:${CORE_DNS_VERSION})for imageName in ${images[@]} ; do  docker pull $ALIYUN_URL/$imageName  docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName  docker rmi $ALIYUN_URL/$imageNamedonedone

然后再运行init命令(以下命令的参数怎么设置呢?第二行的为本机的IP,第三行是容器的版本,第四行则是pod网络,这个尽量不要改吧。)

sudo kubeadm init \ --apiserver-advertise-address 192.168.10.20 \ --kubernetes-version=v1.16.0 \ --pod-network-cidr=10.244.0.0/16

如下图,然后初始化成功之后,会有一大堆的解释,其中有几条是让你运行的命令,那么就照做吧。

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

还有一条命令kubeadm join不是在本机上运行的。它看起来像这个样子

kubeadm join 192.168.10.20:6443 --token lixsl8.v1auqmf91ty0xl0k \    --discovery-token-ca-cert-hash sha256:c3f92a6ed9149ead327342f48a545e7e127a455d5b338129feac85893d918a55

你要记住这个命令,因为里面有唯一的token,这个每一台都是不一样的。即使你忘了也没关系,你可以用

kubeadm token create --print-join-command

重新找到它。

还有就是可能你不是一次就能成功的,如果kubeadm init中途有失败的,你需要用命令

kubeadm reset

来重置master节点。否则会报错,报错通常会说xxx.yaml already exist

还有关于swap分区引起的问题

程序会提醒你用以下的命令去查看问题。

systemctl status kubeletjouralctl -xeu kubelet


在完成这一切之后,你可以使用以下命令去查看pod的状态。

kubectl get pods --all-namespaces -o wide

应该类似于这样的一个样子。

其中coredns这个容器的状态时pending的,还需要装一下网络的组件。


安装flanneld

你已经操作过以下的操作了吧?

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

然后下载quay.io的镜像,同理用脚本去拉镜像,或者自己去镜像网站上拉镜像。

#!/bin/bashset -eFLANNEL_VERSION=v0.11.0# 在这里修改源QUAY_URL=quay.io/coreosQINIU_URL=quay-mirror.qiniu.com/coreosimages=(flannel:${FLANNEL_VERSION}-amd64flannel:${FLANNEL_VERSION}-arm64flannel:${FLANNEL_VERSION}-armflannel:${FLANNEL_VERSION}-ppc64leflannel:${FLANNEL_VERSION}-s390x)for imageName in ${images[@]} ; do  docker pull $QINIU_URL/$imageName  docker tag  $QINIU_URL/$imageName $QUAY_URL/$imageName  docker rmi $QINIU_URL/$imageNamedonedone

然后去网上下载这个文件

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

如果wget不能成功下载,可以在别的地方下载之后放到服务器里去,我就是用迅雷下载的这个文件。

kubectl apply -f kube-flanneld.yaml


node节点的安装

我在配置node节点的时候偷懒了,我用了master相同的的方法把所有的软件和镜像都下载下来了,实际上只要其中的一些,根据前面那个博客上的做法,你可以把在master上已经下载好的镜像打包复制到node节点上。

## master上执行docker save -o pause.tar k8s.gcr.io/pause:3.1docker save -o kube-proxy.tar k8s.gcr.io/kube-proxy## node上执行docker load -i pause.tar docker load -i kube-proxy.tar ## node上执行docker load -i pause.tar docker load -i kube-proxy.tar

flannel网络也得在node上进行一遍。

然后还记得那条kubeadm join的命令吗?就是那个带token的那条,可以输入了。


以上就是安装Kubernets集群的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注行业资讯!

镜像 命令 版本 就是 问题 方法 时候 软件 集群 节点 服务 运行 成功 容器 服务器 网络 脚本 输入 三个 仓库 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融科技 南京欣网互联网络科技 嘟嘟瓜互联网科技 互联网科技公司官网 互联网科技股午盘股票涨跌 新华互联网科技校企合作 剑昆互联网络科技有限公司临桂 银川新华互联网科技职业技术培训学校图片 亳州好赞互联网科技有限公司 佛山市翊博互联网络科技有限公司 互联网科技融合创新 东营紫格互联网科技 国产互联网科技公司 互联网高科技行业有哪些企业 互联网科技收购价值 银川新华互联网科技学校原画 科技和互联网行业的特点 玉溪新华互联网科技怎么选 互联网科技创新方面的资料 利用互联网等科技手段 互联网科技有限公司 新华互联网科技学校 互联网科技未来 美国互联网科技 互联网科技网站 中国互联网有什么科技含量 华服互联网科技官网 江苏苏星互联网科技有限公司 互联网企业和网络科技有限公司 互联网科技自媒体灵感
0