啃k8s之Pod资源管理和harbor私有仓库搭建

一:Pod资源管理

1.1:创建资源的两种方式

  • kubectl命令
  • 基于文件:JSON用于参数传递,应用于开发中。而在k8s中更多的是使用yaml文件进行创建资源

1.2:pod特点

  • 最小部署单元
  • 一组容器的集合
  • 一个Pod中的容器共享网络命名空间
  • Pod是短暂的

1.3:容器的分类

1、infrastructure container:基础容器

  • 维护整个pod网络空间:可以在node节点操作查看容器的网络
[root@node1 ~]# cat /opt/kubernetes/cfg/kubelet

KUBELET_OPTS="--logtostderr=true \
--v=4 \
--hostname-override=20.0.0.54 \
--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \
--bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \
--config=/opt/kubernetes/cfg/kubelet.config \
--cert-dir=/opt/kubernetes/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容器,并行启动

1.4:镜像拉取策略(image PullPolicy)

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

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

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

1.5:查看镜像拉取策略(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

在这里插入图片描述

1.6:编辑一个pod并指定拉去策略

[root@master ~]# cd test/
[root@master test]# ls
nginx-service.yaml  nginx-test01.yaml  nginx-test02.yaml  nginx-test.yaml
[root@master test]# vim pod1.yaml
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: nginx
      image: nginx
      imagePullPolicy: Always
      command: [ "echo", "SUCCESS" ]
[root@master test]# kubectl apply -f pod1.yaml	'如果需要更新容器,需要删除原先的容器:kubectl delete -f pod1.yaml,修改yaml文件后使用apply命令重新部署:kubectl apply -f pod1.yaml '
pod/mypod created

[root@master test]# kubectl get pods
NAME                              READY   STATUS              RESTARTS   AGE
mypod                             0/1     ContainerCreating   0          7s
nginx-dbddb74b8-sxr6l             1/1     Running             0          11m
nginx-deployment-d55b94fd-q9vcm   1/1     Running             0          2d5h
nginx-deployment-d55b94fd-xhrv4   1/1     Running             0          11m
nginx-deployment-d55b94fd-xj67v   1/1     Running             0          2d5h

[root@master test]# kubectl get pods 
NAME                              READY   STATUS      RESTARTS   AGE
mypod                             0/1     Completed   0          36s
nginx-dbddb74b8-sxr6l             1/1     Running     0          12m
nginx-deployment-d55b94fd-q9vcm   1/1     Running     0          2d5h
nginx-deployment-d55b94fd-xhrv4   1/1     Running     0          12m
nginx-deployment-d55b94fd-xj67v   1/1     Running     0          2d5h
  • 查看容器详细信息:kubectl describe pod 名称
[root@master test]# kubectl describe pod mypod 
Name:               mypod
Namespace:          default
Priority:           0
PriorityClassName:  <none>
Node:               20.0.0.54/20.0.0.54
Start Time:         Mon, 12 Oct 2020 17:03:54 +0800
Labels:             <none>
Annotations:        kubectl.kubernetes.io/last-applied-configuration:
                      {
   "apiVersion":"v1","kind":"Pod","metadata":{
   "annotations":{
   },"name":"mypod","namespace":"default"},"spec":{
   "containers":[{
   "command":["echo...
Status:             Running
IP:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值