前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kubernetes基础:Pod的详细介绍

Kubernetes基础:Pod的详细介绍

作者头像
大江小浪
发布于 2018-08-10 02:05:29
发布于 2018-08-10 02:05:29
1.4K02
代码可运行
举报
文章被收录于专栏:小狼的世界小狼的世界
运行总次数:2
代码可运行

本文的演练环境为基于Virtualbox搭建的Kubernetes集群,具体搭建步骤可以参考kubeadm安装kubernetes V1.11.1 集群

1. 基本概念

1.1 Pod是什么

Pod是Kubernetes中能够创建和部署的最小单元,是Kubernetes集群中的一个应用实例,总是部署在同一个节点Node上。Pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。Pod支持多种容器环境,Docker则是最流行的容器环境。

  • 单容器Pod,最常见的应用方式。
  • 多容器Pod,对于多容器Pod,Kubernetes会保证所有的容器都在同一台物理主机或虚拟主机中运行。多容器Pod是相对高阶的使用方式,除非应用耦合特别严重,一般不推荐使用这种方式。一个Pod内的容器共享IP地址和端口范围,容器之间可以通过 localhost 互相访问。

Pod并不提供保证正常运行的能力,因为可能遭受Node节点的物理故障、网络分区等等的影响,整体的高可用是Kubernetes集群通过在集群内调度Node来实现的。通常情况下我们不要直接创建Pod,一般都是通过Controller来进行管理,但是了解Pod对于我们熟悉控制器非常有好处。

1.2 Pod带来的好处

Pod带来的好处

  • Pod做为一个可以独立运行的服务单元,简化了应用部署的难度,以更高的抽象层次为应用部署管提供了极大的方便。
  • Pod做为最小的应用实例可以独立运行,因此可以方便的进行部署、水平扩展和收缩、方便进行调度管理与资源的分配。
  • Pod中的容器共享相同的数据和网络地址空间,Pod之间也进行了统一的资源管理与分配。

1.3 常用Pod管理命令

Pod的配置信息中有几个重要部分,apiVersion、kind、metadata、spec以及status。其中apiVersionkind是比较固定的,status是运行时的状态,所以最重要的就是metadataspec两个部分。

先来看一个典型的配置文件,命名为 first-pod.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: v1
kind: Pod
metadata:
  name: first-pod
  labels:
    app: bash
    tir: backend
spec:
  containers:
  - name: bash-container
    image: docker.io/busybox
    command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']

在编写配置文件时,可以通过API Reference来参考,也可以通过命令查看。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl explain pod
KIND:     Pod
VERSION:  v1

DESCRIPTION:
     Pod is a collection of containers that can run on a host. This resource is
     created by clients and scheduled onto hosts.

FIELDS:
   apiVersion   <string>
     APIVersion defines the versioned schema of this representation of an
     object. Servers should convert recognized schemas to the latest internal
     value, and may reject unrecognized values. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

   kind <string>
     Kind is a string value representing the REST resource this object
     represents. Servers may infer this from the endpoint the client submits
     requests to. Cannot be updated. In CamelCase. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

   metadata <Object>
     Standard object's metadata. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

   spec <Object>
     Specification of the desired behavior of the pod. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

   status   <Object>
     Most recently observed status of the pod. This data may not be up to date.
     Populated by the system. Read-only. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
[root@devops-101 ~]# kubectl explain pod.spec
KIND:     Pod
VERSION:  v1

RESOURCE: spec <Object>

DESCRIPTION:
     Specification of the desired behavior of the pod. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

     PodSpec is a description of a pod.

FIELDS:
   activeDeadlineSeconds    <integer>
     Optional duration in seconds the pod may be active on the node relative to
     StartTime before the system will actively try to mark it failed and kill
     associated containers. Value must be a positive integer.

   affinity <Object>
     If specified, the pod's scheduling constraints

   automountServiceAccountToken <boolean>
     AutomountServiceAccountToken indicates whether a service account token
     should be automatically mounted.
1.3.1 创建

利用kubectl命令行管理工具,我们可以直接在命令行通过配置文件创建。如果安装了Dashboard图形管理界面,还可以通过图形界面创建Pod。因为最终Pod的创建都是落在命令上的,这里只介绍如何使用kubectl管理工具来创建。

使用配置文件的方式创建Pod。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ kubectl create -f first-pod.yml 
1.3.2 查看配置

如果想了解一个正在运行的Pod的配置,可以通过以下命令获取。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl get pod first-pod -o yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: 2018-08-08T01:45:16Z
  labels:
    app: bash
  name: first-pod
  namespace: default
  resourceVersion: "184988"
  selfLink: /api/v1/namespaces/default/pods/first-pod
  uid: b2d3d2b7-9aac-11e8-84f4-080027b7c4e9
spec:
  containers:
  - command:
    - sh
    - -c
    - echo Hello Kubernetes! && sleep 3600
    image: docker.io/busybox
    imagePullPolicy: Always
    name: bash-container
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-trvqv
      readOnly: true
  dnsPolicy: ClusterFirst
  nodeName: devops-102
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: default
  serviceAccountName: default
  terminationGracePeriodSeconds: 30
  tolerations:
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - name: default-token-trvqv
    secret:
      defaultMode: 420
      secretName: default-token-trvqv
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: 2018-08-08T01:45:16Z
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: 2018-08-08T01:45:16Z
    message: 'containers with unready status: [bash-container]'
    reason: ContainersNotReady
    status: "False"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: null
    message: 'containers with unready status: [bash-container]'
    reason: ContainersNotReady
    status: "False"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: 2018-08-08T01:45:16Z
    status: "True"
    type: PodScheduled
  containerStatuses:
  - image: docker.io/busybox
    imageID: ""
    lastState: {}
    name: bash-container
    ready: false
    restartCount: 0
    state:
      waiting:
        reason: ContainerCreating
  hostIP: 192.168.0.102
  phase: Pending
  qosClass: BestEffort
  startTime: 2018-08-08T01:45:16Z
1.3.3 查看日志

可以查看命令行标准输出的日志。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl logs first-pod
Hello Kubernetes!

如果Pod中有多个容器,查看特定容器的日志需要指定容器名称kubectl logs pod-name -c container-name

1.3.4 标签管理

标签是Kubernetes管理Pod的重要依据,我们可以在Pod yaml文件中 metadata 中指定,也可以通过命令行进行管理。

显示Pod的标签

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl get pods --show-labels
NAME        READY     STATUS    RESTARTS   AGE       LABELS
first-pod   1/1       Running   0          15m       app=bash

使用 second-pod.yml 我们再创建一个包含两个标签的Pod。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl create -f first-pod.yml 
pod/second-pod created
[root@devops-101 ~]# kubectl get pods --show-labels
NAME         READY     STATUS              RESTARTS   AGE       LABELS
first-pod    1/1       Running             0          17m       app=bash
second-pod   0/1       ContainerCreating   0          20s       app=bash,tir=backend

根据标签来查询Pod。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl get pods -l tir=backend --show-labels
NAME         READY     STATUS    RESTARTS   AGE       LABELS
second-pod   1/1       Running   0          1m        app=bash,tir=backend

增加标签

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl label pod first-pod tir=frontend
pod/first-pod labeled
[root@devops-101 ~]# kubectl get pods --show-labels
NAME         READY     STATUS    RESTARTS   AGE       LABELS
first-pod    1/1       Running   0          24m       app=bash,tir=frontend
second-pod   1/1       Running   0          7m        app=bash,tir=backend

修改标签

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl label pod first-pod tir=unkonwn --overwrite
pod/first-pod labeled
[root@devops-101 ~]# kubectl get pods --show-labels
NAME         READY     STATUS    RESTARTS   AGE       LABELS
first-pod    1/1       Running   0          25m       app=bash,tir=unkonwn
second-pod   1/1       Running   0          8m        app=bash,tir=backend

可以将标签显示为列

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl get pods -L app,tir
NAME         READY     STATUS    RESTARTS   AGE       APP       TIR
first-pod    1/1       Running   0          26m       bash      unkonwn
second-pod   1/1       Running   0          9m        bash      backend

标签是Kubernetes中非常强大的一个功能,Node节点也可以增加标签,再利用Pod的标签选择器,可以将Pod分配到不同类型的Node上。

1.3.5 删除Pod
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl delete pods first-pod
pod "first-pod" deleted

也可以根据标签选择器删除。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl delete pods -l tir=backend
pod "second-pod" deleted

1.4 Pod的生命周期

像单独的容器应用一样,Pod并不是持久运行的。Pod创建后,Kubernetes为其分配一个UID,并且通过Controller调度到Node中运行,然后Pod一直保持运行状态直到运行正常结束或者被删除。在Node发生故障时,Controller负责将其调度到其他的Node中。Kubernetes为Pod定义了几种状态,分别如下:

  • Pending,Pod已创建,正在等待容器创建。经常是正在下载镜像,因为这一步骤最耗费时间。
  • Running,Pod已经绑定到某个Node并且正在运行。或者可能正在进行意外中断后的重启。
  • Succeeded,表示Pod中的容器已经正常结束并且不需要重启。
  • Failed,表示Pod中的容器遇到了错误而终止。
  • Unknown,因为网络或其他原因,无法获取Pod的状态。

2. 如何对Pod进行健康检查

Kubernetes利用Handler功能,可以对容器的状况进行探测,有以下三种形式。

  • ExecAction:在容器中执行特定的命令。
  • TCPSocketAction:检查容器端口是否可以连接。
  • HTTPGetAction:检查HTTP请求状态是否正常。

这部分内容展开来也比较多,后续计划单独写一篇来介绍。

3. Init Containers

Pod中可以包含一到多个Init Container,在其他容器之前开始运行。Init Container 只能是运行到完成状态,即不能够一直存在。Init Container必须依次执行。在App Container运行前,所有的Init Container必须全部正常结束。

在Pod启动过程中,Init Container在网络和存储初始化完成后开始按顺序启动。Pod重启的时候,所有的Init Container都会重新执行。

However, if the Pod restartPolicy is set to Always, the Init Containers use RestartPolicy OnFailure.

3.1 好处

  • 运行一些不希望在 App Container 中运行的命令或工具
  • 包含一些App Image中没有的工具或特定代码
  • 应用镜像构建人员和部署人员可以独立工作而不需要依赖对方
  • 拥有与App Container不同的命名空间
  • 因为在App Container运行前必须运行结束,适合做一些前置条件的检查和配置

3.2 语法

先看一下解释

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@devops-101 ~]# kubectl explain pod.spec.initContainers
KIND:     Pod
VERSION:  v1

RESOURCE: initContainers <[]Object>

DESCRIPTION:
     List of initialization containers belonging to the pod. Init containers are
     executed in order prior to containers being started. If any init container
     fails, the pod is considered to have failed and is handled according to its
     restartPolicy. The name for an init container or normal container must be
     unique among all containers. Init containers may not have Lifecycle
     actions, Readiness probes, or Liveness probes. The resourceRequirements of
     an init container are taken into account during scheduling by finding the
     highest request/limit for each resource type, and then using the max of of
     that value or the sum of the normal containers. Limits are applied to init
     containers in a similar fashion. Init containers cannot currently be added
     or removed. Cannot be updated. More info:
     https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

     A single application container that you want to run within a pod.

具体语法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: docker.io/busybox
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice
    image: docker.io/busybox
    command: ['sh', '-c', 'echo init-service && sleep 2']
  - name: init-mydb
    image: docker.io/busybox
    command: ['sh', '-c', 'echo init-mydb && sleep 2']

兼容性问题 1.5之前的语法都写在 annotation 中,1.6 以上的版本使用 .spec.initContainers 字段。建议还是使用 1.6 版本的语法。1.6、1.7的版本还兼容1.5以下的版本,1.8之后就不再兼容老版本了。

4. Pod Preset

利用这个特性,可以在Pod启动过程中向Pod中注入密码 Secrets、存储 Volumes、挂载点 Volume Mounts和环境变量。通过标签选择器来指定Pod。利用这个特性,Pod Template的维护人员就不需要为每个Pod显示的提供相关的属性。

具体的工作步骤

  • 检查所有可用的ProdPresets
  • 检查是否有ProdPreset的标签与即将创建的Pod相匹配
  • 将PodPreset中定义的参数与Pod定义合并
  • 如果参数合并出错,则丢弃ProPreset参数,继续创建Pod
  • 为Pod增加注解,表示层被ProdPreset修改过,形式为 podpreset.admission.kubernetes.io/podpreset-<pod-preset name>: "<resource version>"

对于 EnvEnvFromVolumeMounts Kubernetes修改Container Spec,对于Volume修改Pod Spec。

4.1 对个别Pod停用

在Spec中增加注解:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
podpreset.admission.kubernetes.io/exclude: "true"

5. 中断

Pod会因为各种各样的原因发生中断。

5.1 计划内中断

  • 删除部署 Deployment或者其他控制器
  • 更新部署模版导致的Pod重启
  • 直接删除Pod
  • 集群的缩容
  • 手工移除

5.2 计划外中断

  • 硬件故障、物理节点宕机
  • 集群管理员误删VM
  • 云供应商故障导致的主机不可用
  • Kernel panic
  • 集群网络分区导致节点消失
  • 资源耗尽导致的节点剔除

5.3 PDB Disruption Budgets

Kubernetes offers features to help run highly available applications at the same time as frequent voluntary disruptions. We call this set of features Disruption Budgets.

Kubernetes允许我们创建一个PDB对象,来确保一个RS中运行的Pod不会在一个预算(个数)之下。

Eviction API

PDB是用来解决集群管理和应用管理职责分离的情况,如果你的单位不存在这种情况,就可以不使用PDB。

参考资料

  1. Pods
  2. Kubernetes in action
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
IP行业查询API:为用户分析提供帮助
在数字化时代,IP地址不仅代表着设备在互联网上的位置,还蕴含着丰富的信息。IP地址所属行业查询API应运而生,为用户分析提供了有力支持。本文将探讨这一工具的应用,以及对用户分析的帮助。
用户10428865
2023/09/27
2630
IP行业API助力于网络分析和数据挖掘
在当今数字化时代,数据成为了企业、科研机构和政府决策者的重要资源,而IP行业API则成为了数据分析及挖掘的工具之一。IP行业API是一种能够查询IP地址所属的行业分类信息的应用程序接口,它能够提供在网络分析、用户行为分析及大数据挖掘等领域的优秀性能。
用户10428865
2023/11/10
1890
“留量运营”的本质是用户运营,如何搭建用户“留量”体系?
随着流量红利的消失殆尽,新用户增长速率变缓,企业处于激烈的存量争夺阶段,这也使得精准定位的互联网流量费用水涨船高,获客成本居高不下,且难以量化ROI。
盈鱼MA
2020/12/25
1K0
“留量运营”的本质是用户运营,如何搭建用户“留量”体系?
IP代理识别API:预防欺诈和保护网络安全的必要工具
随着互联网的快速发展,我们的生活变得越来越依赖于网络。然而,随着网络的发展,网络犯罪和网络欺诈也在不断增加。为了保护自己的网站和客户免受网络欺诈的侵害,许多企业和组织开始使用IP代理识别API作为一种必要工具。
用户10428865
2023/11/08
2250
保障网络安全:IP代理识别API的作用与应用
随着互联网的不断发展,网络安全问题已经变得愈发重要。在网络上,恶意用户可以利用IP代理隐藏其真实身份,从而发动各种网络攻击或欺诈行为。为了保障网络安全,IP代理识别API成为了一种不可或缺的工具,本文将深入探讨其作用与应用。
用户10428865
2023/09/18
2260
IP应用场景查询API:深入了解网络用户行为的利器
随着数字时代的不断发展,互联网已经成为人们生活的重要组成部分。而随着越来越多的业务和社交活动迁移到在线平台上,了解和理解网络用户行为变得至关重要。为了满足这个需求,IP 应用场景查询 API 崭露头角,成为深入了解网络用户行为的利器。
用户10428865
2023/09/07
3460
IP应用场景查询API:深入了解网络用户行为的利器
ip地址查询主要可以得出哪些信息
对于手机或者计算机设备在运行的过程中,都是可以通过ip地址查询具体位置,还可以得出相应的信息。因此,查询的也是比较细致的,在每一个方面的信息上会介绍得比较全面一点。接下来小编为你介绍通过查询可以直接得出哪些信息呢?
用户8739990
2021/06/18
11K0
IP归属地的应用场景有哪些?
IP归属地查询在各大行业当中的利用率可以说非常的高了,提供了各种的保障,比如安全保障、数据保障、性能保障等等。今天我就来详细说一说IP归属地的应用场景有哪些?
不是海碗
2023/01/29
1K0
IP归属地的应用场景有哪些?
一文带你看透IP归属地
IP是指网络之间互连的协议,英文全称是 Internet Protocol,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。IP又分为IPv4和IPv6。
不是海碗
2023/01/10
3.1K0
深度解析IP应用场景API:提升风险控制与反欺诈能力
在当今数字化时代,网络安全和用户数据保护成为企业日益关注的焦点。IP应用场景API作为一种强大的工具,不仅能够在线调用接口获取IP场景属性,而且具备识别IP真人度的能力,为企业提供了卓越的风险控制和反欺诈业务能力。本文将深度解析IP应用场景API,揭示其在提升安全性和业务可靠性方面的重要作用。
用户10428865
2023/12/06
3610
如何使用IP归属地查询API加强网络安全
在当今数字化时代,网络安全对于个人和组织来说至关重要。恶意网络活动的威胁不断增加,因此采取有效的措施来加强网络安全至关重要。其中之一是利用IP归属地查询API。这个工具可以为您的网络安全策略提供宝贵的信息,帮助您更好地保护自己的在线资产。
用户10428865
2023/10/30
3400
大数据和人工智能如何赋能保险行业?
科技对产业的变革将会越来越明显,越来越深刻,国务院在“十三五”国家信息化规划中也提到了云计算、大数据、人工智能、区块链等新技术对产业变革的重要性。保险这一古老的行业能否借助科技的浪潮实现豹变呢?显然是
挖掘大数据
2017/12/20
1.8K0
大数据和人工智能如何赋能保险行业?
如何使用IP归属地查询API来追踪网络活动
在当今数字化世界中,了解网络活动的源头和位置对于网络安全、市场研究和用户体验至关重要。IP归属地查询API是一种强大的工具,可以帮助您追踪网络活动并获取有关IP地址的重要信息。本文将探讨如何使用IP归属地查询API来追踪网络活动,以及它在不同领域的实际应用。
用户10428865
2023/09/19
5960
美图GeoIP服务实践(文末赠书券)
3.用户画像及其他在线业务类:如美拍账号经济体系需要检测校验用户的常用登陆地信息。
美图数据技术团队
2018/12/27
1.1K0
如何利用大数据进行预测性营销,看完这8个深度解答你就懂了
1、什么是精准营销,预测营销? 说到精准营销,不得不先提个性化的用户画像,我们针对每一类数据实体,进一步分解可落地的数据维度,刻画他/她的每一个特征,在聚集起来形成人群画像。比如下面就是两种典型年轻消
BestSDK
2018/02/28
8.5K0
如何利用大数据进行预测性营销,看完这8个深度解答你就懂了
Web to App营销策略与openinstall的融合应用
Web to App是移动互联网时代的精准获客策略,其核心在于通过网页端构建"场景化引流-无缝跳转-精准追踪"的闭环。与传统的应用商店推广相比,Web to App更强调跨平台用户旅程的连贯性——用户在网页端被商品/内容吸引后,无需中断体验即可直达App内指定场景。
openinstall
2025/04/27
1270
Web to App营销策略与openinstall的融合应用
大数据应用案例排行榜TOP100解读
当下,“大数据”几乎是每个IT人都在谈论的一个词汇,不单单是时代发展的趋势,也是革命技术的创新。大数据对于行业的用户也越来越重要。掌握了核心数据,不单单可以进行智能化的决策,还可以在竞争激烈的行业当中脱颖而出,所以对于大数据的战略布局让越来越多的企业引起了重视,并重新定义了自己的在行业的核心竞争。当然,越来越接地气越来越实为要。 在当前的互联网领域,大数据的应用已十分广泛,尤其以企业为主,企业成为大数据应用的主体。大数据真能改变企业的运作方式吗?答案毋庸置疑是肯定的。随着企业开始利用大数据,我们每天都会
小莹莹
2018/04/23
4.5K0
大数据应用案例排行榜TOP100解读
Teradata:数字银行的根本是如何利用技术来实时掌控和分析数据
两会期间,中国建设银行行长张建国委员半开玩笑地说:“银行也是弱势群体啊。”当时包含李克强总理在内的所有人都笑了。但仔细品味,“弱势”一词固然指的是利率市场化改革对金融的影响,另一方面也折射出互联网金融等创新模式给金融产业转型带来的压力。 在银行的发展中,ATM、实体分支银行、呼叫中心和数字化银行代表了四类渠道。而从不同行业的对比来看,尽管传统观点总是认为由于种种因素,银行对新技术的采用比较慢,但实际上,却远超其他行业的速度。尤其是在中国。“从新技术采用程度来看,数字化银行增速猛,目前已经超过其他渠道的总和。
CSDN技术头条
2018/02/09
8870
Teradata:数字银行的根本是如何利用技术来实时掌控和分析数据
【防止恶意用户注册】-- 手机在网状态 API 的防欺诈应用解析
手机在网状态 API 支持传入手机号码,查询手机号在网状态,返回在网、在网不可用、不在网(销号/未启用/停机)等多种状态,查询手机号在网状态之后,可以根据具体的业务需求来进行不同的处理。
不是海碗
2023/04/13
1K0
【防止恶意用户注册】-- 手机在网状态 API 的防欺诈应用解析
如何选择口子查、站点查、渠道查?解决使用中遇到的IP地址问题
在互联网时代,数据分析和市场调查是企业和组织获取用户反馈和市场信息的重要手段。在数据收集和分析过程中,口子查、站点查和渠道查是常用的工具。本文将介绍这三种工具的优缺点,如何选择使用,以及使用过程中可能遇到的IP地址问题和解决方案。
互联网的鱼
2023/05/04
2.4K0
推荐阅读
相关推荐
IP行业查询API:为用户分析提供帮助
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 1. 基本概念
    • 1.1 Pod是什么
    • 1.2 Pod带来的好处
    • 1.3 常用Pod管理命令
      • 1.3.1 创建
      • 1.3.2 查看配置
      • 1.3.3 查看日志
      • 1.3.4 标签管理
      • 1.3.5 删除Pod
    • 1.4 Pod的生命周期
  • 2. 如何对Pod进行健康检查
  • 3. Init Containers
    • 3.1 好处
    • 3.2 语法
  • 4. Pod Preset
    • 4.1 对个别Pod停用
  • 5. 中断
    • 5.1 计划内中断
    • 5.2 计划外中断
    • 5.3 PDB Disruption Budgets
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档