Kubernetes

Centos7搭建k8s集群

本文主要是介绍Centos7搭建k8s集群,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、部署环境

操作系统:CentOS Linux release 7.6.1810 (Core)

安装软件:

docker:18.06.3-ce

kubernetes:v1.15.4

二、部署架构:

 

 

部署开始前,先把主机名改成如上图所示。

同时修改/etc/hosts,如下:

 

三、部署过程

1、安装docker(所有节点)

1.1、卸载可能存在的依赖包

sudo yum remove docker docker-common container-selinux docker-selinux docker-engine

1.2、安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源

sudo yum install -y yum-utils

1.3、最后,添加yum源并更新索引。(docker ce的源使用的阿里云的,因为阿里云有详细的使用介绍,并且速度还可以。)

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
##更新索引
sudo yum clean all##推荐先清空索引,特别是新版本docker需要换成老版本docker的时候
sudo yum makecache fast

1.4、安装docker-ce

##查看下自己能安装的版本都有哪些
yum list docker-ce --showduplicates | sort -r
##不指定版本,安装最新版本的docker
sudo yum install docker-ce
##此处也可以安装指定版本的docker,如下:
sudo yum install -y docker-ce-18.09.9-3.el7

1.5、启动docker-ce 并设置开机启动

 systemctl enable docker && systemctl start docker

1.6、配置镜像加速

[root@master ~]# vi /etc/docker/daemon.json

{

"registry-mirrors": ["https://4ym6pzzt.mirror.aliyuncs.com"]

}

1.7、重启docker

systemctl restart docker

2、安装kubernetes

2.1、配置阿里k8s源(所有主机)

[root@master yum.repos.d]# 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

2.2、k8s版本查看(任意一台主机)

yum list kubelet --showduplicates | sort -r

找到我们需要安装的版本

 

 

 2.3、安装组件(所有主机)

 yum install -y kubelet-1.15.4 kubeadm-1.15.4 kubectl-1.15.4

2.4、修改docker服务管理方式为systemd(所有主机)

sed -i "s#^ExecStart=/usr/bin/dockerd.*#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd#g" /usr/lib/systemd/system/docker.service

2.5、master初始化,仅在master节点操作

kubeadm init --apiserver-advertise-address=10.0.0.17 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.15.4 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

2.6、按照提示执行以下命令

[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# chown $(id -u):$(id -g) $HOME/.kube/config

2.7、下载并安装flannel资源配置清单(所有主机)

# 手动拉取flannel的docker镜像
docker pull easzlab/flannel:v0.11.0-amd64
# 修改镜像名称
docker tag easzlab/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64

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

2.8、验证

 

 至此,master节点部署完毕

3、将node节点添加进集群

3.1、在master节点执行,获取TOKEN

[root@master ~]# kubeadm token list
TOKEN                     TTL       EXPIRES                     USAGES                   DESCRIPTION                                                EXTRA GROUPS
qb289r.phfyq6rd0vlf19w7   23h       2021-07-07T03:47:46-04:00   authentication,signing   The default bootstrap token generated by 'kubeadm init'.   system:bootstrappers:kubeadm:default-node-token

证书有效期仅为24小时,若过期后需添加node节点,可重新生成:

kubeadm token create

3.2、在master节点执行,获取哈希值

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

3.3、在node节点执行,加入master集群

kubeadm join --token qb289r.phfyq6rd0vlf19w7 10.0.0.17:6443 --discovery-token-ca-cert-hash sha256:1823760d5ae6223edc3d8f44ec82a28b4d1d4cf31002968f64daacde4eb64a2e

3.4、把传输到node节点

scp /etc/kubernetes/admin.conf 10.0.0.27:/etc/kubernetes/
scp /etc/kubernetes/admin.conf 10.0.0.37:/etc/kubernetes/
#添加到环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
#使环境变量生效
source ~/.bash_profile

3.5、验证

[root@master ~]# kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   59m   v1.15.4
node01   Ready    <none>   31m   v1.15.4
node02   Ready    <none>   32m   v1.15.4

查看POD

 

 可见集群已成功同步并已调度到node节点。

 至此,kubernetes集群搭建完毕!

这篇关于Centos7搭建k8s集群的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!