Centos7搭建k8s集群
2021/7/7 7:10:13
本文主要是介绍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集群的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26云原生周刊:K8s 严重漏洞
- 2024-11-15在Kubernetes (k8s) 中搭建三台 Nginx 服务器怎么实现?-icode9专业技术文章分享
- 2024-11-05基于Kubernetes的自定义AWS云平台搭建指南
- 2024-11-05基于Kubernetes Gateway API的现代流量管理方案
- 2024-11-05在Kubernetes上部署你的第一个应用:Nginx服务器
- 2024-11-05利用拓扑感知路由控制Kubernetes中的流量
- 2024-11-05Kubernetes中的层次命名空间:更灵活的资源管理方案
- 2024-11-055分钟上手 Kubernetes:精简实用的 Kubectl 命令速查宝典!
- 2024-10-30K8s 容器的定向调度与亲和性
- 2024-10-28云原生周刊:K8s未来三大发展方向 丨2024.10.28