欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker---k8s集群搭建

程序员文章站 2024-03-12 17:34:32
...
环境配置
安装docker

yum install containerd.io-1.2.5-3.1.el7.x86_64.rpm container-selinux-2.21-1.el7.noarch.rpm docker-ce-18.09.6-3.el7.x86_64.rpm docker-ce-cli-18.09.6-3.el7.x86_64.rpm -y ##安装docker
systemctl start docker ##开启docker服务
yum install bash-* -y
sysctl -a |grep bridge ##过滤桥接信息
cd /etc/sysctl.d/
vim docker.conf
sysctl -w net.bridge.bridge-nf-call-iptables=1
sysctl --system ##重载配置服务

安装k8s

yum install cri-tools-1.12.0-0.x86_64.rpm kubeadm-1.12.2-0.x86_64.rpm kubectl-1.12.2-0.x86_64.rpm kubelet-1.12.2-0.x86_64.rpm kubernetes-cni-0.6.0-0.x86_64.rpm -y ##安装所需k8s软件包

关闭swap分区,否则加入集群时会出现报错。

swapoff -a
vim /etc/fstab
#/dev/mapper/rhel-swap swap swap defaults 0 0
swapon -s

加载dcoker镜像

docker load -i kube-apiserver.tar
docker load -i kube-controller-manager.tar
docker load -i kube-scheduler.tar
docker load -i kube-proxy.tar
docker load -i pause.tar
docker load -i etcd.tar
docker load -i coredns.tar
docker load -i flannel.tar

1
2
3
4
5
6
7
8

master主机添加基础环境配置

vim kube-flannel.yml ##编辑配置文件,便于加入节点生成pod
76 “Network”: “10.244.0.0/16”
useradd k8s ##创建k8s用户
vim /etc/sudoers
chmod u+w /etc/sudoers ##这个文件没有写功能,加入写功能
vim /etc/sudoers
92 k8s ALL=(ALL) NOPASSWD:ALL ##添加k8s用户免密
cp kube-flannel.yml /home/k8s ##复制配置文件到k8s用户文件下,便于生成集群信息
su - k8s ##由于新建以命令件必须使用用户k8s,确定所有者
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown (idu):(id -u):(id -g) $HOME/.kube/config
vim /home/k8s/.bashrc
source <(kubectl completion bash)
kubectl apply -f kube-flannel.yml ##根据文件创建集群信息
sudo docker ps

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

添加集群
master主机创建集群

kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.25.30.1 ##创建主机集群

1

在这里插入图片描述
此时应该注意应该先将kubeadm服务enable,否则会在初始化时出现报错,解决方法:

systemctl enable kubelet ##服务开机自启

1

此时出现报错:

[ERROR FileContent–proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1
[ERROR SystemVerification]: unsupported docker version: 18.09.6

1
2

此时第一个报错解决:

echo “1” >/proc/sys/net/ipv4/ip_forward

1

第二个报错解决,此时报错主要是不支持docker版本,但对环境部署并无影响,所以可以直接忽略,解决途径,主要是忽略这个报错,但要把其他报错解决,才能启动服务:

kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.25.30.1 --ignore-preflight-errors=all ##忽略docker版本信息,创建集群

1

解决之后初始化会生成tocken值,以及一个哈希密码,以便加入结点机。
在这里插入图片描述
结点机:

systemctl enable kubelet

1

添加集群节点:

kubeadm join 172.25.30.1:6443 --token jr4mvj.09jv8b5iyjnw9qen --discovery-token-ca-cert-hash sha256:82439b1d96591075228d4aaffe581dfb613ed16bb58e5e5e1322dd1cb8479061 ##根据生存的集群标识加入集群

1

在这里插入图片描述
出现报错:

[ERROR Swap]: running with swap on is not supported. Please disable swap
[ERROR SystemVerification]: unsupported docker version: 18.09.6

1
2

第一个报错解决:

swapoff -a
vim /etc/fstab
#/dev/mapper/rhel-swap swap swap defaults 0 0

1
2
3

第二个报错解决:

kubeadm join 172.25.30.1:6443 --token jr4mvj.09jv8b5iyjnw9qen --discovery-token-ca-cert-hash sha256:82439b1d96591075228d4aaffe581dfb613ed16bb58e5e5e1322dd1cb8479061 --ignore-preflight-errors=all ##忽略版本依赖信息

1

在这里插入图片描述
但此时添加之后出现情况:
在这里插入图片描述
查看kubelet服务日志:

journalctl -f -u kubelet.service ##查看日志服务

1

出现报错:
在这里插入图片描述
发现没有加载镜像,重新加载所需上文提到的8个镜像。

kubeadm reset ##重新重置服务,由于第一次添加没有成功
kubeadm join 172.25.30.1:6443 --token prd5ik.2hed88jyxwkzsae4 --discovery-token-ca-cert-hash sha256:4816840eedb5fdf957e0ca5d8d412f5a76719d7142d217acb4b8029be41eb2a6 --ignore-preflight-errors=all

1
2

如果发现存在kube-system服务没有Running,就删除此节点,会自动重新加载一直刷新直到全部运行:

kubectl delete pod kube-flannel-ds-amd64-hlfzp -n kube-system

1

查看效果:
在这里插入图片描述
集群配置成功。