镜像问题(k8s部署考试系统)

如果使用containerd拉取不到镜像的话,就使用docker

1.修改decker的镜像源

[root@k8s-master ~]# vim /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}

2.加载启动docker服务

[root@k8s-master ~]# systemctl daemon-reload 
[root@k8s-master ~]# systemctl start docker

3.拉取常用的镜像

[root@k8s-master ~]# docker pull centos
[root@k8s-master ~]# docker pull nginx
[root@k8s-master ~]# docker pull haproxy
[root@k8s-master ~]# docker pull mysql:5.7.44
[root@k8s-master pods]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
haproxy      latest    a782c02b8259   10 days ago    103MB
nginx        latest    39286ab8a5e1   4 weeks ago    188MB
mysql        5.7.44    5107333e08a8   9 months ago   501MB
centos       latest    5d0da3dc9764   2 years ago    231MB

4.使用docker save指令打包镜像

[root@k8s-master ~]# docker save -o centos.tar centos:latest 
[root@k8s-master ~]# docker save -o nginx.tar nginx:latest 
[root@k8s-master ~]# docker save -o mysql.tar mysql:5.7.44 
[root@k8s-master ~]# docker save -o haproxy.tar haproxy:latest
[root@k8s-master ~]# ls
anaconda-ks.cfg  haproxy.tar     kubeadm-config.yaml  new.yaml   pods
centos.tar       k8s-ha-install  mysql.tar            nginx.tar

5.使用ctr指令将tar包导入到containerd的镜像中

[root@k8s-master ~]# ctr -n k8s.io images import centos.tar --platform=linux/amd64        //将tar包导入
unpacking docker.io/library/centos:latest (sha256:27f8ba8f837c2b1ef079a25095ea7cd4c778f31a33c09eb845a5be35fc207a3c)...done
[root@k8s-master ~]# ctr -n k8s.io images import nginx.tar --platform=linux/amd64
unpacking docker.io/library/nginx:latest (sha256:006a20213cb7f7d8edfadffd6791139d25283f590c5066e3fcd803e61a9c0b74)...done
[root@k8s-master ~]# ctr -n k8s.io images import mysql.tar --platform=linux/amd64
unpacking docker.io/library/mysql:5.7.44 (sha256:0b14b8e5c533fb43d07327fa8fe6c7393358002310d9f0d01976d387822a1bd3)...done
[root@k8s-master ~]# ctr -n k8s.io images import haproxy.tar --platform=linux/amd64
unpacking docker.io/library/haproxy:latest (sha256:4f4750d54310c5a3dbc94f3862cd3d8a266cbf1bfe806cf8eab64ace8501731b)...done

6.查看containerd镜像列表

[root@k8s-master ~]# crictl images 
IMAGE                                                                         TAG                 IMAGE ID            SIZE
docker.io/library/centos                                                      latest              5d0da3dc97646       239MB
docker.io/library/haproxy                                                     latest              a782c02b82595       106MB
docker.io/library/mysql                                                       5.7.44              5107333e08a87       520MB
docker.io/library/nginx                                                       latest              39286ab8a5e14       192MB
registry.cn-beijing.aliyuncs.com/dotbalo/cni                                  v3.26.1             9dee260ef7f59       93.4MB
registry.cn-beijing.aliyuncs.com/dotbalo/kube-controllers                     v3.26.1             1919f2787fa70       32.8MB
registry.cn-beijing.aliyuncs.com/dotbalo/node                                 v3.26.1             8065b798a4d67       86.6MB
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns                   v1.10.1             ead0a4a53df89       16.2MB
registry.cn-hangzhou.aliyuncs.com/google_containers/etcd                      3.5.9-0             73deb9a3f7025       103MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver            v1.28.2             cdcab12b2dd16       34.7MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager   v1.28.2             55f13c92defb1       33.4MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy                v1.28.2             c120fed2beb84       24.6MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler            v1.28.2             7a5d9d67a13f6       18.8MB
registry.cn-hangzhou.aliyuncs.com/google_containers/pause                     3.9                 e6f1816883972       322kB
注意:如果出现这样的报错


是因为配置 crictl 客户端连接的运⾏位置错误
[root@k8s-master ~]# vim /etc/crictl.yaml 
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
[root@k8s-master ~]# systemctl daemon-reload 
[root@k8s-master ~]# systemctl restart containerd

7.在node01和node02节点上引入tar包

[root@k8s-master ~]# scp nginx.tar root@192.168.1.22:/root
nginx.tar                                                            100%  183MB  45.7MB/s   00:04    
[root@k8s-master ~]# scp nginx.tar root@192.168.1.33:/root
nginx.tar                                                            100%  183MB  46.8MB/s   00:03    
[root@k8s-master ~]# scp mysql.tar root@192.168.1.22:/root
mysql.tar                                                            100%  496MB  38.7MB/s   00:12    
[root@k8s-master ~]# scp mysql.tar root@192.168.1.33:/root
mysql.tar                                                            100%  496MB  42.5MB/s   00:11    
[root@k8s-master ~]# scp centos.tar root@192.168.1.22:/root
centos.tar                                                           100%  228MB  31.6MB/s   00:07    
[root@k8s-master ~]# scp centos.tar root@192.168.1.33:/root
centos.tar                                                           100%  228MB  46.6MB/s   00:04    
[root@k8s-master ~]# scp haproxy.tar root@192.168.1.22:/root
haproxy.tar                                                          100%  101MB  39.4MB/s   00:02    
[root@k8s-master ~]# scp haproxy.tar root@192.168.1.33:/root
haproxy.tar                                                          100%  101MB  33.8MB/s   00:03 


8.去node节点导入这些包(node1和node2都做)

[root@k8s-node1 ~]# ctr -n k8s.io images import centos.tar --platform=linux/amd64
unpacking docker.io/library/centos:latest (sha256:27f8ba8f837c2b1ef079a25095ea7cd4c778f31a33c09eb845a5be35fc207a3c)...done
[root@k8s-node1 ~]# ctr -n k8s.io images import nginx.tar --platform=linux/amd64
unpacking docker.io/library/nginx:latest (sha256:006a20213cb7f7d8edfadffd6791139d25283f590c5066e3fcd803e61a9c0b74)...done
[root@k8s-node1 ~]# ctr -n k8s.io images import mysql.tar --platform=linux/amd64
unpacking docker.io/library/mysql:5.7.44 (sha256:0b14b8e5c533fb43d07327fa8fe6c7393358002310d9f0d01976d387822a1bd3)...done
[root@k8s-node1 ~]# ctr -n k8s.io images import haproxy.tar --platform=linux/amd64
unpacking docker.io/library/haproxy:latest (sha256:4f4750d54310c5a3dbc94f3862cd3d8a266cbf1bfe806cf8eab64ace8501731b)...done
[root@k8s-node1 ~]# crictl images
IMAGE                                                            TAG                 IMAGE ID            SIZE
docker.io/library/centos                                         latest              5d0da3dc97646       239MB
docker.io/library/haproxy                                        latest              a782c02b82595       106MB
docker.io/library/mysql                                          5.7.44              5107333e08a87       520MB
docker.io/library/nginx                                          latest              39286ab8a5e14       192MB
registry.cn-beijing.aliyuncs.com/dotbalo/cni                     v3.26.1             9dee260ef7f59       93.4MB
registry.cn-beijing.aliyuncs.com/dotbalo/metrics-scraper         v1.0.8              115053965e86b       19.7MB
registry.cn-beijing.aliyuncs.com/dotbalo/metrics-server          v0.6.3              817bbe3f2e517       29.8MB
registry.cn-beijing.aliyuncs.com/dotbalo/nginx                   latest              1403e55ab369c       56.9MB
registry.cn-beijing.aliyuncs.com/dotbalo/node                    v3.26.1             8065b798a4d67       86.6MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy   v1.28.2             c120fed2beb84       24.6MB
registry.cn-hangzhou.aliyuncs.com/google_containers/pause        3.9                 e6f1816883972       322kB


9.使用kubectl run 创建pod

[root@k8s-master ~]# kubectl run test001 --image docker.io/library/nginx:latest --image-pull-policy=IfNotPresent          //--image-pull-policy=IfNotPresent 是 Kubernetes 中用于控制容器镜像拉取策略的一个参数,当容器启动时,Kubernetes 会检查本地是否已经存在所需的镜像。如果本地存在该镜像,则不会从镜像仓库拉取新的镜像;如果本地不存在,则会从镜像仓库拉取。
pod/test001 created
[root@k8s-master ~]# kubectl get po
NAME                            READY   STATUS    RESTARTS       AGE
cluster-test-66bb44bd88-nk46t   1/1     Running   11 (34m ago)   33h
test001                         1/1     Running   0              26s
[root@k8s-master ~]# kubectl get po -Aowide|grep test001                   
default                test001                                      1/1     Running   0              4m28s   172.16.169.137   k8s-node2    <none>           <none>

10.使用配置文件创建pod

[root@k8s-master ~]# cd pods/
[root@k8s-master pods]# vim test007.yaml
apiVersion: v1
kind: Pod
metadata:
        name: test007
        labels: 
                name: test007 
spec:
        containers:
        -       name: test007-nginx
                image: docker.io/library/nginx:latest
                imagePullPolicy: IfNotPersent
                ports:
                -       name: nginxport
                        containerPort: 80
[root@k8s-master pods]# kubectl create -f test007.yaml 
pod/test007 created
[root@k8s-master pods]# kubectl get po 
NAME                            READY   STATUS    RESTARTS       AGE
cluster-test-66bb44bd88-nk46t   1/1     Running   11 (47m ago)   33h
test001                         1/1     Running   0              14m
test007                         1/1     Running   0              28s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值