[root@k8s-master ~]# vim /etc/docker/daemon.json
2.加载启动docker服务
[root@k8s-master ~]# systemctl daemon-reload
[root@k8s-master ~]# systemctl start docker
3.拉取常用的镜像
docker pull ...
[root@k8s-master ~]# 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 mysql.tar mysql:5.7.44
[root@k8s-master ~]# docker save -o haproxy.tar haproxy:latest
[root@k8s-master ~]# docker save -o nginx.tar nginx:latest
5.使用ctr指令将tar包导入到containerd的镜像中
[root@k8s-master ~]# ctr -n k8s.io images import centos.tar --platform=linux/amd64
[root@k8s-master ~]# ctr -n k8s.io images import nginx.tar --platform=linux/amd64
[root@k8s-master ~]# ctr -n k8s.io images import haproxy.tar --platform=linux/amd64
[root@k8s-master ~]# ctr -n k8s.io images import mysql.tar --platform=linux/amd64
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
7.在node01和node02节点上引入tar包,并使用ctr指令将tar包导入到containerd的镜像中
scp ~/*.tar root@192.168.118.77:~
[root@k8s-master ~]# scp haproxy.tar root@192.168.118.77:~
[root@k8s-node02 ~]# ctr -n k8s.io images import mysql.tar --platform=linux/amd64
8.使用kubectl run创建pod
[root@k8s-master ~]# kubectl run test001 --image docker.io/library/nginx:latest --image-pull-policy=IfNotPresent
[root@k8s-master ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
cluster-test5-6597c95b6c-28tkj 1/1 Running 10 42h
test001 1/1 Running 0 14s
[root@k8s-master ~]# kubectl describe pod test001
Normal Pulled 3m29s kubelet Container image "docker.io/library/nginx:latest" already present on machine
9.使用配置文件创建pod
--创建一个容器
[root@k8s-master pods]# vim test0007.yaml
[root@k8s-master pods]# kubectl create -f test0007.yaml
pod/test0007 created
[root@k8s-master pods]# cat test0007.yaml
apiVersion: v1
kind: Pod
metadata:
name: test0007
labels:
name: test0007
spec:
containers:
- name: test0007nginx
image: docker.io/library/nginx:latest
imagePullPolicy: IfNotPresent
ports:
- name: nginxport
containerPort: 80
[root@k8s-master pods]# kubectl get po
NAME READY STATUS RESTARTS AGE
cluster-test5-6597c95b6c-28tkj 1/1 Running 10 42h
test0007 1/1 Running 0 109s
test001 1/1 Running 0 16m
#删除test0007
[root@k8s-master pods]# kubectl delete -f test0007.yaml
pod "test0007" deleted
--创建两个容器
[root@k8s-master pods]# cat test0007.yaml
apiVersion: v1
kind: Pod
metadata:
name: test0007
labels:
name: test0007
spec:
containers:
- name: test0007nginx
image: docker.io/library/nginx:latest
imagePullPolicy: IfNotPresent
ports:
- name: nginxport
containerPort: 80
- name: test0007centos
image: docker.io/library/centos:latest
imagePullPolicy: Never
command:
- sleep
- infinity
[root@k8s-master pods]# kubectl get po
NAME READY STATUS RESTARTS AGE
cluster-test5-6597c95b6c-28tkj 1/1 Running 10 43h
test0007 2/2 Running 0 5s
test001 1/1 Running 0 35m
10.监控容器运行的5个切入点
--postStart
--startup
--lived
--ready
--perStop