pod是k8s最小的资源单位,k8s通过创建pod资源,k8s把pod资源“随机”调度到某一个pod节点中,然后在pod里运行容器。

创建yaml 文件

   k8s中通过yaml文件来创建pod,在master节点中,创建以下文件nginx_pod.yaml  

apiVersion: v1
kind: Pod
metadata:
  name: csdn
  labels:
    app: web
spec:
  containers:
    - name: nginx
      image: 192.168.1.5:5000/nginx:1.13
      ports:
        - containerPort: 80
    - name: busybox
      image: docker.io/busybox:latest
      imagePullPolicy: IfNotPresent
      command: ["sleep","3600"]
      ports:
        - containerPort: 80

 创建私有仓库  

 在192.168.1.5中创建私有仓库,供各个node拉取镜像

docker pull docker.io/registry
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry

  用别的虚拟机上的docker下载镜像,并向私有仓库中推送

docker push 192.168.1.5:5000/pod-infrastructure:latest
docker push 192.168.1.5:5000/nginx:1.13

在三个node节点中配置/etc/sysconfig/docker  私有仓库地址,  重启三个docker

OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --registry-mirror=https://registry.docker.cn.com --insecure-registry=192.168.1.5:5000'

在三个node节点中配置/etc/kubernetes/kubelet 私有仓库地址,重启kubelet服务

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=192.168.1.5:5000/pod-infrastructure:latest"

创建pod

   1、先在master节点中查看k8s服务器和各node节点的状态,目前看master可以获取各个node节点。

kubectl get componentstatus
kubectl get nodes

k8s 创建pod 包含docker吗 k8s创建pod命令_kubernetes

 2、查看各节点通信状态

    nodes节点中容器通信验证   参考本文第四个小标题下的内容

 3、以上两点都满足后,执行创建好的yaml文件

kubectl create -f nginx_pod.yaml

 

k8s 创建pod 包含docker吗 k8s创建pod命令_nginx_02

csdn的pod资源随机调度到名为“master1”的node节点中

kubectl get pod -o wide

 

k8s 创建pod 包含docker吗 k8s创建pod命令_私有仓库_03

 

  查看node节点中容器的运行情况,可以看到该node节点中的pod中定义的两个容器nginx和busybox,还有基础容器pod-infrastructure容器都在该节点中运行着。

k8s 创建pod 包含docker吗 k8s创建pod命令_nginx_04


题外篇一

查看建立好的私有仓库
docker exec -it 2886dbb16ef1 sh
镜像保存在/var/lib/registry/docker/registry/v2/repositories 


 题外篇二

  观察同一个node节点中的网络,以名为“master1”的node节点为例

docker和flannel的ip地址是同一网段的,这也是集群能通信成功的必要条件。

  

k8s 创建pod 包含docker吗 k8s创建pod命令_kubernetes_05

 此外,看一下本次在名为master1的节点中新建的pod资源,它的ip跟本节点的docker是同一个网段。

 

k8s 创建pod 包含docker吗 k8s创建pod命令_k8s 创建pod 包含docker吗_06

 再看一下当前节点下所有容器的状态

k8s 创建pod 包含docker吗 k8s创建pod命令_nginx_07

registry的容器,根据容器的ID查一下ip,跟本节点中的docker也是一个网段。

docker inspect 2886dbb16ef1|grep IP

k8s 创建pod 包含docker吗 k8s创建pod命令_k8s 创建pod 包含docker吗_08

且与生成该容器的pod资源ip地址相同,另外两个容器与这个容器共享此ip。

docker inspect 9f633f75dc7c|grep IP
docker inspect f59077a14d8c|grep IP
docker inspect 85d1d997b360|grep IP

k8s 创建pod 包含docker吗 k8s创建pod命令_kubernetes_09