虚拟机搭建三个3docker组成k8s集群

容器镜像自行准备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
FROM centos:7.9.2009
LABEL authors="xiaochouyou"
USER root

COPY ./CentOS-Base.repo /etc/yum.repos.d/
COPY ./CentOS-CR.repo /etc/yum.repos.d/
COPY ./CentOS-Debuginfo.repo /etc/yum.repos.d/
COPY ./CentOS-fasttrack.repo /etc/yum.repos.d/
COPY ./CentOS-Media.repo /etc/yum.repos.d/
COPY ./CentOS-Sources.repo /etc/yum.repos.d/
COPY ./CentOS-Vault.repo /etc/yum.repos.d/
COPY ./CentOS-x86_64-kernel.repo /etc/yum.repos.d/
COPY ./elrepo.repo /etc/yum.repos.d/
COPY ./kernel-lt-5.4.278-1.el7.elrepo.x86_64.rpm ./
RUN (yum -y install kernel-lt-5.4.278-1.el7.elrepo.x86_64.rpm)

## 0-centos7-kernel-5.4.278

COPY ./MyRepo.repo /etc/yum.repos.d/MyRepo.repo
RUN (yum install -y docker-ce-23.0.3-1.el7 socat )
COPY ./cri-dockerd-0.3.4-3.el7.x86_64.rpm /tmp/cri-dockerd-0.3.4-3.el7.x86_64.rpm
RUN (rpm -ivh /tmp/cri-dockerd-0.3.4-3.el7.x86_64.rpm )
COPY ./cri-docker.service /usr/lib/systemd/system/cri-docker.service
ENV DOCKERFLAG 1
RUN (echo "docker ...")
ENTRYPOINT ["/sbin/init"]
# end -- 2-docker-ce-23.0.3-init

RUN (yum install -y kubelet-1.28.2 kubeadm-1.28.2 kubectl-1.28.2)
# end -- 3-k8s-1.28.2

搭建docker内网yum源

(centos7 需要修改内核)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
version: '3.1'
services:
centos7-master-01:
image: 2-centos7-k8s-1.28.2:init
hostname: centos7-master-01
container_name: centos7-master-01
command: /sbin/init
privileged: true
networks:
custom_network:
ipv4_address: 172.0.1.10

centos7-node01-01:
image: 2-centos7-k8s-1.28.2:init
hostname: centos7-node01-01
container_name: centos7-node01-01
command: /sbin/init
privileged: true
networks:
custom_network:
ipv4_address: 172.0.1.11

centos7-node02-01:
image: 2-centos7-k8s-1.28.2:init
hostname: centos7-node02-01
container_name: centos7-node02-01
command: /sbin/init
privileged: true
networks:
custom_network:
ipv4_address: 172.0.1.12

networks:
custom_network:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.0.1.0/24

登录三台主机操作分别操作

启动docker cr-docker

1
2
3
4
5
systemctl start docker
systemctl start cri-docker.socket cri-docker

systemctl enable docker
systemctl enable cri-docker.socket cri-docker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[root@centos7-master-01 /]# systemctl status docker cir-docker.socket cri-docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2024-11-10 10:07:55 UTC; 9s ago
Docs: https://docs.docker.com
Main PID: 140 (dockerd)
Tasks: 9
Memory: 61.3M
CGroup: /docker/22684143ba74adb388fd1501fb1cfefd035cb459c742e725e778902958da771f/system.slice/docker.service
└─140 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
‣ 140 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Nov 10 10:07:55 centos7-master-01 dockerd[140]: time="2024-11-10T10:07:55.291318629Z" level=info msg="Loading containers: start."
Nov 10 10:07:55 centos7-master-01 dockerd[140]: time="2024-11-10T10:07:55.332225396Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Nov 10 10:07:55 centos7-master-01 dockerd[140]: time="2024-11-10T10:07:55.362644419Z" level=info msg="Loading containers: done."
Nov 10 10:07:55 centos7-master-01 dockerd[140]: time="2024-11-10T10:07:55.368189463Z" level=warning msg="WARNING: bridge-nf-call-iptables is disabled"
Nov 10 10:07:55 centos7-master-01 dockerd[140]: time="2024-11-10T10:07:55.368216447Z" level=warning msg="WARNING: bridge-nf-call-ip6tables is disabled"
Nov 10 10:07:55 centos7-master-01 dockerd[140]: time="2024-11-10T10:07:55.368229816Z" level=info msg="Docker daemon" commit=59118bf graphdriver=fuse-overlayfs version=23.0.3
Nov 10 10:07:55 centos7-master-01 dockerd[140]: time="2024-11-10T10:07:55.368296600Z" level=info msg="Daemon has completed initialization"
Nov 10 10:07:55 centos7-master-01 dockerd[140]: time="2024-11-10T10:07:55.384599804Z" level=info msg="[core] [Server #7] Server created" module=grpc
Nov 10 10:07:55 centos7-master-01 systemd[1]: Started Docker Application Container Engine.
Nov 10 10:07:55 centos7-master-01 dockerd[140]: time="2024-11-10T10:07:55.388146505Z" level=info msg="API listen on /run/docker.sock"
Unit cir-docker.socket could not be found.

● cri-docker.service - CRI Interface for Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/cri-docker.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2024-11-10 10:07:58 UTC; 6s ago
Docs: https://docs.mirantis.com
Main PID: 241 (cri-dockerd)
Tasks: 8
Memory: 31.8M
CGroup: /docker/22684143ba74adb388fd1501fb1cfefd035cb459c742e725e778902958da771f/system.slice/cri-docker.service
└─241 /usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7
‣ 241 /usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7

Nov 10 10:07:58 centos7-master-01 cri-dockerd[241]: time="2024-11-10T10:07:58Z" level=info msg="Start docker client with request timeout 0s"
Nov 10 10:07:58 centos7-master-01 cri-dockerd[241]: time="2024-11-10T10:07:58Z" level=info msg="Hairpin mode is set to none"
Nov 10 10:07:58 centos7-master-01 cri-dockerd[241]: time="2024-11-10T10:07:58Z" level=info msg="Loaded network plugin cni"
Nov 10 10:07:58 centos7-master-01 cri-dockerd[241]: time="2024-11-10T10:07:58Z" level=info msg="Docker cri networking managed by network plugin cni"
Nov 10 10:07:58 centos7-master-01 cri-dockerd[241]: time="2024-11-10T10:07:58Z" level=info msg="Docker Info: &{ID:e6276846-0abd-4b9f-a3f3-27f4d4dbb6bf Containers:0 ContainersRunning:0 ContainersPaused:0 ContainersStopped:0 Images:0 Driver:fuse-overlayfs DriverStatus:[] SystemStatus:[] Plugins:{Volume:[local] Network:[bridge host ipvlan macvlan
Nov 10 10:07:58 centos7-master-01 cri-dockerd[241]: time="2024-11-10T10:07:58Z" level=info msg="Setting cgroupDriver cgroupfs"
Nov 10 10:07:58 centos7-master-01 cri-dockerd[241]: time="2024-11-10T10:07:58Z" level=info msg="Docker cri received runtime config &RuntimeConfig{NetworkConfig:&NetworkConfig{PodCidr:,},}"
Nov 10 10:07:58 centos7-master-01 cri-dockerd[241]: time="2024-11-10T10:07:58Z" level=info msg="Starting the GRPC backend for the Docker CRI interface."
Nov 10 10:07:58 centos7-master-01 cri-dockerd[241]: time="2024-11-10T10:07:58Z" level=info msg="Start cri-dockerd grpc backend"
Nov 10 10:07:58 centos7-master-01 systemd[1]: Started CRI Interface for Docker Application Container Engine.

这只自动启动启动kubelet

1
systemctl enable kubelet.service

master节点执行

1
2
3
4
5
6
kubeadm init  --ignore-preflight-errors=SystemVerification   --feature-gates=IPv6DualStack=false --kubernetes-version=v1.28.2 --node-name=centos7-master-01 --image-repository=registry.aliyuncs.com/google_containers --cri-socket=unix:///var/run/cri-dockerd.sock --apiserver-advertise-address=172.0.1.10 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

kubeadm init --kubernetes-version=v1.28.2 --node-name=centos7-container1 --image-repository=registry.aliyuncs.com/google_containers --cri-socket=unix:///var/run/cri-dockerd.sock --apiserver-advertise-address=172.0.1.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

# kubeadm reset --cri-socket=unix:///var/run/cri-dockerd.sock