kubernetes 环境部署
kubernetes是一个开源的容器编排平台,当服务器有一大堆容器要管理的时候他就是自动帮你管理好的总调度。例如:Docker 是乐手,Kubernetes 是指挥家。乐手负责演奏,指挥家负责让整个乐团协调演出、有人缺席就立刻补位、曲目切换不能停。
一、集群搭建
部署kubernetes需要的主机

主机名 IP 角色
harbor 172.25.25.250 harbor仓库
k8s-master 172.25.25.100 master
k8s-node1 172.25.25.10 node1
k8s-node2 172.25.25.20 node2
1、建立harbor仓库
(1)建立docker仓库



[rootharbor ~]# dnf remove podman -y
[root@harbor ~]# dnf install httpd -y
[root@harbor harbor]# vim /etc/httpd/conf/httpd.conf
Listen 1111
[root@harbor docker]# systemctl enable --now httpd
[root@harbor ~]# mkdir /var/www/html/docker -p
[root@harbor ~]# vim /etc/yum.repos.d/docker.repo

下载 docker安装包到/mnt/docker并不安装
yum install docker-ce --downloadonly --destdir /mnt/docker
再下载http和createrepo服务为创建发布docker仓库做准备
[root@harbor ~]# yum install httpd createrepo -y
将下好的docker安装包放到http服务的发布目录底下
[root@harbor ~]# mv /mnt/docker/* /var/www/html/docker/
把 /var/www/html/docker/ 这个文件夹里的所有 RPM 安装包,整理成一个可以通过 YUM 安装的软件仓库
[root@harbor ~]# createrepo /var/www/html/docker/
修改http服务的监听端口
[root@harbor ~]# vim /etc/httpd/conf/httpd.conf

再次修改docker仓库
[root@harbor ~]# vim /etc/yum.repos.d/docker.repo
验证docker仓库能不能用
2、安装docker仓库在harbor
[root@harbor ~]# yum install docker-ce -y
[root@harbor ~]# echo br_netfilter > /etc/modules-load.d/docker_mod.conf
[root@harbor ~]# modprobe -a br_netfilter #加载内核模块
[root@harbor ~]# vim /etc/sysctl.d/docker.conf
[root@harbor ~]# systemctl restart systemd-modules-load.service #重新加载内核模块自动加载服务
[root@harbor ~]# vim /lib/systemd/system/docker.service
[root@harbor ~]# systemctl daemon-reload #重新加载服务配置文件
[root@harbor ~]# systemctl enable --now docker.service #开机自启动
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
3、生成key
[root@harbor ~]# mkdir /data/certs -p #存放key文件
[root@harbor ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout /data/certs/timinglee.org.key -addext "subjectAltName = DNS:reg.timinglee.org" -x509 -day 365 -out /data/certs/timinglee.org.crt
4、配置harbor仓库
[root@harbor ~]# tar zxf harbor-offline-installer-v2.5.4.tgz -C /opt/
[root@harbor ~]# ls
anaconda-ks.cfg harbor harbor-offline-installer-v2.5.4.tgz vm vmset.sh vmset.sh~
[root@harbor ~]# cd /opt/harbor/
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml
[root@harbor harbor]# vim harbor.yml
修改三个参数
[root@harbor harbor]# ./install.sh --with-chartmuseum 安装镜像 仓库和ChartMuseum组件
编写harbor的启动脚本
[root@harbor harbor]# vim /lib/systemd/system/harbor.service
[root@harbor harbor]# systemctl daemon-reload
[root@harbor harbor]# systemctl enable --now harbor.service
Created symlink /etc/systemd/system/multi-user.target.wants/harbor.service → /usr/lib/systemd/system/harbor.service.
5、启动并验证docker仓库
Docker 客户端配置自签名证书的信任
[root@harbor harbor]# mkdir /etc/docker/certs.d/reg.timinglee.org/ -p
[root@harbor harbor]# cp /data/certs/timinglee.org.crt /etc/docker/certs.d/reg.timinglee.org/ca.crt
写本地解析
[root@harbor harbor]# vim /etc/hosts
[root@harbor harbor]# systemctl restart docker.service
登录仓库

二、构建kubernetes
在所有主机上关闭swap
1、使用harbor中的docker仓库安装docker
[root@harbor ~]# for i in 10 20 100 ;do scp /etc/yum.repos.d/docker.repo 172.25.25.$i:/etc/yum.repos.d/docker.repo;done
在所有主机上做
安装docker
[root@node1 ~]# yum install docker-ce -y
[root@node1 ~]# systemctl enable --now docker.service
配置docker加速器
[root@node1 ~]# vim /etc/docker/daemon.json
[root@node1 ~]# docker info
重启docker
主机之间彼此建立解析
配置kubernetes安装源
[root@node1 ~]# vim /etc/yum.repos.d/kubernetes.repo
三、部署kubetnetes
1、用二进制方式安装cri-dockerd

[root@harbor ~]# wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.4.4/cri-dockerd-0.4.4.amd64.tgz
[root@harbor ~]# tar zxf cri-dockerd-0.4.4.amd64.tgz
[root@harbor ~]# cd cri-dockerd/
[root@harbor cri-dockerd]# ls
cri-dockerd cri-docker.service cri-docker.socket
[root@harbor cri-dockerd]# install -o root -m 0755 cri-dockerd /usr/local/bin/cri-dockerd
[root@harbor cri-dockerd]# cp cri-docker.s* /lib/systemd/system
[root@master ~]# chmod +x /lib/systemd/system/cri-docker.s*
[root@harbor cri-dockerd]# mv cri-docker.service /lib/systemd/system/cri-doker.service
[root@master ~]# vim /lib/systemd/system/cri-docker.service
[root@harbor ~]# systemctl daemon-reload
[root@master ~]# systemctl enable --now cri-docker.service
[root@master ~]# systemctl status cri-docker.service
2、安装kubernetes集群需要的软件
master节点
[root@master ~]# dnf install kubelet kubeadm kubectl -y
[root@master ~]# systemctl enable --now kubelet.service
node节点
[root@node1 ~]# dnf install kubelet kubeadm -y
[root@node1 ~]# systemctl enable --now kubelet.service
master上命令补齐
[root@master ~]# echo "source <(kubectl completion bash)" >> ~/.bashrc
[root@master ~]# echo "source <(kubeadm completion bash)" >> ~/.bashrc
[root@master ~]# source ~/.bashrc
3、下载kubernetes镜像
查看并下载镜像
上传镜像到本地仓库

登录 仓库
[root@master ~]# docker login reg.timinglee.org
Username: admin
Password:
WARNING! Your credentials are stored unencrypted in '/root/.docker/config.json'.
Configure a credential helper to remove this warning. See
https://docs.docker.com/go/credential-store/、
镜像打包
[root@master ~]# docker images --format "{{.Repository}}:{{.Tag}}" | awk -F "/" '/google/{system("docker tag "
3)}'
上传镜像
[root@master ~]# docker images --format "{{.Repository}}:{{.Tag}}" | awk -F "/" '/timinglee/{system("docker push "$0)}'

四、初始化kubernetes集群
[root@master ~]# kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository reg.timinglee.org/k8s --kubernetes-version v1.35.7 --cri-socket=unix:///var/run/cri-dockerd.sock
[root@master ~]# vim ~/.bash_profile
[root@master ~]# source ~/.bash_profile
node节点加入到kubernetes环境
5、安装网络插件
[root@master ~]# tar zxf kube-flannel-v0.28.9.tar.gz
[root@master ~]# cd flannel/
修改参数

上传镜像
[root@master flannel]# docker load -i kube-flannel-v0.28.9.tar
在harbor仓库中新建一个项目
[root@master flannel]# kubectl apply -f kube-flannel.yml
namespace/kube-flannel created
serviceaccount/flannel created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created

更多推荐
所有评论(0)