【k8s常用资源的使用】创建pod及pod中的常用操作——kubernetes从放弃到入门

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

 2、查看各节点通信状态

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

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

kubectl create -f nginx_pod.yaml

 

 查看新建Pod的状态,可以看到本次k8s把这个名为csdn的pod资源随机调度到名为“master1”的node节点中

kubectl get pod -o wide

   

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


题外篇一

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


 题外篇二     网络IP

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

  执行ifconfig,发现由于做了通信协议,docker和flannel的ip地址是同一网段的,这也是集群能通信成功的必要条件。

  

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

  

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

 目前有一个之前建好的私有仓库registry的容器,根据容器的ID查一下ip,跟本节点中的docker也是一个网段。

docker inspect 2886dbb16ef1|grep IP

  再根据容器ID分别查一下pod资源中容器的ip,发现只有pod-infrastructure这个容器是有ip地址的,且与生成该容器的pod资源ip地址相同,另外两个容器与这个容器共享此ip。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值