怎么安装Kubernets集群?-创新互联

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

10年积累的网站设计制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有大同免费网站建设让你可以放心的选择与我们合作。
  • 系统初始化

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

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

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config systemctl stop firewalld systemctl disable firewalld swapoff -a setenforce 0

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

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

  • 安装docker

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

yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum list docker-ce --showduplicates | sort -r yum -y install docker-ce systemctl start docker systemctl status docker systemctl enable docker

  • 安装kubernets

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

加阿里云的镜像源。

cat>>/etc/yum.repos.d/kubrenetes.repo<yum install -y kubelet kubeadm kubectl systemctl 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 -e KUBE_VERSION=v1.16.0 KUBE_PAUSE_VERSION=3.1 ETCD_VERSION=3.3.15-0 CORE_DNS_VERSION=1.6.2 GCR_URL=k8s.gcr.io ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers images=(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/$imageNamedone done

然后再运行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

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

怎么安装Kubernets集群?

mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo 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

怎么安装Kubernets集群?

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

怎么安装Kubernets集群?

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

systemctl status kubelet jouralctl -xeu kubelet

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

kubectl get pods --all-namespaces -o wide

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

怎么安装Kubernets集群?

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

安装flanneld

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

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

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

#!/bin/bash set -e FLANNEL_VERSION=v0.11.0 # 在这里修改源 QUAY_URL=quay.io/coreos QINIU_URL=quay-mirror.qiniu.com/coreos images=(flannel:${FLANNEL_VERSION}-amd64 flannel:${FLANNEL_VERSION}-arm64 flannel:${FLANNEL_VERSION}-arm flannel:${FLANNEL_VERSION}-ppc64le flannel:${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/$imageNamedone done

然后去网上下载这个文件

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.1 docker 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集群的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注创新互联行业资讯!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:怎么安装Kubernets集群?-创新互联
当前URL:http://hbruida.cn/article/dgsjcs.html