k8s,盘他!pod容器与镜像管理和k8s私有仓库harbor搭建

前言

1.1:pod的容器分类与镜像拉取策略

  • pod在k8s中是:

    1、最小部署单页

    2、一组容器的集合

    3、一个pod中的容器共享网络命名空间

    4、pod是短暂的

  • pod的容器分类:

    1、infrastructure container:基础容器

    • 维护整个pod网络空间:可以在node节点操作查看容器的网络

      [root@node01 ~]# cat /opt/k8s/cfg/kubelet
      
      KUBELET_OPTS="--logtostderr=true \
      --v=4 \
      --hostname-override=192.168.233.132 \
      --kubeconfig=/opt/k8s/cfg/kubelet.kubeconfig \
      --bootstrap-kubeconfig=/opt/k8s/cfg/bootstrap.kubeconfig \
      --config=/opt/k8s/cfg/kubelet.config \
      --cert-dir=/opt/k8s/ssl \
      --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0"	'//是基础容器'
      
      

    2、initcontainers:初始化容器

    • 先于业务容器开始执行,原先pod中容器是并行开启,现在进行了改进
    • 无论容器写在初始化容器前还是写在初始化容器后,最先执行的都是初始化容器。只有初始化容器执行成功后才可以启动容器。
    • 初始化容器的应用场景一般是多容器,例如:mysql和业务分开两个容器。将业务设为初始化容器,并检查mysql是否启动,若mysql启动,则业务容器启动;否则业务容器等待mysql启动。

    3、container:业务容器

    • 业务容器就是我们创建的pod资源内的容器服务,业务容器也叫APP容器,并行启动
  • 镜像拉取策略(image PullPolicy)

    1、ifnotpresent:默认值,镜像在宿主机上不存在时会拉取

    2、always:每次创建pod都会重新拉取一次镜像

    3、never:pod永远不会主动拉取这个镜像

  • 查看镜像拉取策略(master节点查看):

    [root@master ~]# kubectl get pod
    NAME                        READY   STATUS    RESTARTS   AGE
    nginx-dbddb74b8-5s6h7       1/1     Running   1          10d
    nginx-test-d55b94fd-9zmdj   1/1     Running   0          27h
    nginx-test-d55b94fd-b8lkl   1/1     Running   0          27h
    nginx-test-d55b94fd-w4c5k   1/1     Running   0          27h
    [root@master ~]# kubectl edit deploy/nginx
    
    

    mark

  • 尝试编辑一个pod并指定拉去策略

    [root@master ~]# cd test/
    [root@master test]# ls
    nginx-service-test.yaml  nginx-test02.yaml
    nginx-test01.yaml        nginx-test.yaml
    [root@master test]# cat > pod1-test.yaml <<EOF
    > apiVersion: v1
    > kind: Pod
    > metadata:
    >     name: mypod
    > spec:
    >     containers:
    >       - name: nginx
    >         image: nginx:1.14
    >         imagePullPolicy: Always
    > EOF
    [root@master test]# kubectl create -f pod1-test.yaml 	'//如果需要更新容器,需要删除原先的容器:kubectl delete -f pod1-test.yaml,修改yaml文件后使用apply命令重新部署:kubectl apply -f pod1-test.yaml '
    pod/mypod created
    [root@master test]# kubectl get pod 
    NAME         
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值