Kubernetes

12.1、Pod介绍与网络分类

Linux · 3月22日 · 2020年

Pod

  • 最小部署单元
  • 一组容器的集合:可以理解一个主机跑了多个业务。
  • 一个Pod中的容器共享网络命令空间
  • Pod是短暂的

二、POD容器分为三类:

infrastructure Container: 基础容器维护整个pod网络命令空间与kubelet配置文件–pod-infra-container-image=lizhenliang/pause-amd64:3.0″容器镜像一一对应。

267808a6022e    lizhenliang/pause-amd64:3.0   "/pause"......

initContaliners: 初始化容器,先于业务容器开始执行。

Contaliners行启动

 

三、Pod存在的意义

Pod为亲密性应用而存在。

  • 密性应用场景:
  • 两个应用之间发生文件交互
  • 个应用需要通过127.0.0.1或者socket通
  • 两个应用需要发生频发的调用

四、k8s网络共享

1、k8s-pod共享网络业务流程

五、镜像拉取策略(imagePusllPolicy)

1、ifNotPresent

默认值,镜像在宿主机上不存在时才拉取

2、Always

每次创建Pod都会拉取一次镜像

3、Never

Pod永远不会主动拉取这个镜像

查看认是否默认策略

[root@k8s-master2 deployment]# kubectl get deploy/tomcat-deployment -o yaml |grep imageP
        imagePullPolicy: IfNotPresent

、实战:

1、配置docker认证方式

apiVersion: v1
kind: Secret
metadata:
  name: registry-pull-secret
data:
  .dockerconfigjson: ewoJImF1dGhzIjogewoJCSJyZWdpc3RyeS5jbi1zaGVuemhlbi5hbGl5dW5jcy5jb20iOiB7CgkJCSJhdXRoIjogImJHbHVkWGpvaXJQbGhhZzZNRFUyTVRBd2VtWngiCgkJfQoJfSwKCSJIdHRwSGVhZGVycyI6IHsKCQkiVXNlci1BZ2VudCI6ICJEb2NrZXItQ2xpZW50LzE5LjAzLjYgKGxpbnV4KSIKCX0KfQ==
type: kubernetes.io/dockerconfigjson

说明:需要录本地镜像仓库。

2、登录仓库

docker login --username=linux芳全 registry.cn-shenzhen.aliyuncs.com

 

3、查看登录过的密码

[root@k8s-node1 ~]# cat .docker/config.json |base64 -w 0
ewoJImF1dGhzIjogewoJCSJyZWdpc3RyeS5jbi1zaGVuemhlbi5hbGl5dW5jcy5jb20iOiB7CgkJCSJhdXRoIjogImJHbHVkWGpvaXJQbGhhZzZNRFUyTVRBd2VtWngiCgkJfQoJfSwKCSJIdHRwSGVhZGVycyI6IHsKCQkiVXNlci1BZ2VudCI6ICJEb2NrZXItQ2xpZW50LzE5LjAzLjYgKGxpbnV4KSIKCX0KfQ==

4、配置拉取策略yaml配置文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    run: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      run: nginx
  template:
    metadata:
      labels:
        run: nginx
    spec:
      imagePullSecrets:
      - name: registry-pull-secret  配置认证策略
      containers:
      - image: registry.cn-shenzhen.aliyuncs.com/rhzy-port/kubernetes:nginx-1.14.2 配置拉取镜像仓库
        imagePullPolicy: IfNotPresent   镜像拉取策略
        name: nginx
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  labels:
  name: nginx-service2
  namespace: default
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
  selector:
    run: nginx

、资源限制

参考官方网站

https://kubernetes.io/zh/docs/concepts/configuration/manage-compute-resources-container/

、重启策略(restartPolicy)

Always: 当容器终止退出后,总是重启容器,默认策略

OnFailure: 当容器异常退出(退出状态码非0)时,才重启容器。

Never::当容器终止推出,从步重启容器。

九、健康检查(Probe)

参考官方文档

https://v1-15.docs.kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/

 

0 条回应