文章目录

  • pod 简介
  • kubectl apply 创建 pod
    • 创建一个 nginx pod
    • 创建一个 执行命令的 pod
  • kubectl create 创建 pod
  • kubectl run 创建 pod
    • kubctl run 创建测试 curl pod
  • 更多 kubectl run 运行 pod 需求
  • Pod 存储
  • Pod 资源分配策略
  • Pod 安全
  • Pod 状态分析
  • client-go 开发管理 pod
  • Pod 生命周期与探针
  • Pod 如何在 CI/CD 创建

pod 简介

Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。

Pod(就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用的 “逻辑主机”,其中包含一个或多个应用容器, 这些容器相对紧密地耦合在一起。 在非云环境中,在相同的物理机或虚拟机上运行的应用类似于在同一逻辑主机上运行的云应用。

除了应用容器,Pod 还可以包含在 Pod 启动期间运行的 Init 容器。 你也可以在集群支持临时性容器的情况下, 为调试的目的注入临时性容器。

kubectl apply 创建 pod

创建一个 nginx pod

apiVersion: v1
kind: Pod
metadata:name: nginx
spec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80

执行:

kubectl apply -f simple-pod.yaml

创建一个 执行命令的 pod

apiVersion: v1
kind: Pod
metadata:name: command-demolabels:purpose: demonstrate-command
spec:containers:- name: command-demo-containerimage: debiancommand: ["printenv"]args: ["HOSTNAME", "KUBERNETES_PORT"]restartPolicy: OnFailure

执行:

kubectl apply -f commands.yaml

命令参数可以和环境变量进行搭配:

env:
- name: MESSAGEvalue: "hello world"
command: ["/bin/echo"]
args: ["$(MESSAGE)"]

常见命令:

command: ["/bin/sh"]
args: ["-c", "while true; do echo hello; sleep 10;done"]

kubectl create 创建 pod

创建一个nginx Pod:

kubectl create deployment nginx --image=nginx

暴露nginx Pod的服务:

kubectl expose deployment nginx --port=80 --type=LoadBalancer
kubectl expose deployment nginx --port=80 --type=NodePort

这将创建一个名为nginx的deployment和一个名为nginx的service。Service将使用LoadBalancer类型,这意味着Kubernetes将为您的服务创建一个外部负载均衡器,并将流量路由到您的nginx Pod。

您可以使用以下命令检查服务是否正在运行:

kubectl get services

kubectl run 创建 pod

kubctl run 创建测试 curl pod

  • 最全与最实用的 kubectl 命令
$ kubectl run test-pod --image=appropriate/curl --restart=Never --rm -it -- /bin/sh
$ kubectl apply -f https://k8s.io/examples/pods/simple-pod.yaml
/ # curl http://prometheus-kube-prometheus-prometheus.prometheus:9090
<a href="/graph">Found</a>.

更多 kubectl run 运行 pod 需求

启动nginx实例。
kubectl run nginx --image=nginx
kubectl run nginx --image=nginx --restart=Never -n mynamespace
kubectl run nginx --image=nginx --restart=Never --dry-run=client -o yaml > pod.yaml
kubectl run nginx --image=nginx --restart=Never --dry-run=client -o yaml | kubectl create -n mynamespace -f -
kubectl run busybox --image=busybox --command --restart=Never -it -- env启动带API组的nginx实例。将来被弃用
kubectl run nginx --image=nginx  --generator=run-pod/v1  带有标签function=mantou的pod
kubectl run nginx2 --image=nginx   --labels function=mantou
多个标签
kubectl run nginx2 --image=nginx   --labels function=mantou,disk=ssd# 创建nginx-app的deployment,并记录升级。
kubectl run nginx-app --image=nginx:1.11.0-alpine --record使用默认命令启动 nginx 容器,但对该命令使用自定义参数(arg1 .. argN)
kubectl run nginx --image=nginx -- <arg1> <arg2> ... <argN>启动hazelcast实例,暴露容器端口 5701。
kubectl run hazelcast --image=hazelcast --port=5701启动hazelcast实例,在容器中设置环境变量“DNS_DOMAIN = cluster”和“POD_NAMESPACE = default”。
kubectl run hazelcast --image=hazelcast --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default"启动nginx实例,设置副本数5。
kubectl run nginx --image=nginx --replicas=5配置cpu与内存的pod
kubectl run nginx --image=nginx --restart=Never --requests='cpu=100m,memory=256Mi' --limits='cpu=200m,memory=512Mi'运行 Dry  打印相应的API对象而不创建它们。
kubectl run nginx --image=nginx --dry-run在特定的命令空间的一个pod运行多个容器
kubectl run test --image=nginx --image=redis --image=memcached --image=consul --restart=Nerver -n kube-public启动一个单一的 nginx 实例,但是使用从 JSON 分析的一部分值来重载部署规格.
kubectl run nginx --image=nginx --overrides='{ "apiVersion": "v1", "spec": { ... } }'启动一个 busybox 的 pod 并将其保留在前台,如果它退出,请不要重新启动它.
kubectl run -i -t busybox --image=busybox --restart=Never启动 cron 作业计算 π 后2000位,每5分钟打印一次.
kubectl run pi --schedule="0/5 * * * ?" --image=perl --restart=OnFailure -- perl -Mbignum=bpi -wle 'print bpi(2000)'

Pod 存储

  • 配置 Pod 以使用 PersistentVolume 作为存储

Pod 资源分配策略

  • kubernetes 资源管理策略 Pod 的服务质量(QoS)

Pod 安全

  • kubernetes pod podsecurityPolicies(PSP)

Pod 状态分析

  • kubernetes pod 状态报错分析

client-go 开发管理 pod

  • kubernetes dev client-go 进入 pod 执行命令

Pod 生命周期与探针

  • kubernetes Pod Lifecycle生命周期与livenessProbe、 readinessProbe探测方法

Pod 如何在 CI/CD 创建

  • Jenkins Pipeline & Kubernetes 如何创建 pod

Kubernetes Pod 所需要掌握的一切相关推荐

  1. 在Kubernetes Pod中使用Service Account访问API Server

    2019独角兽企业重金招聘Python工程师标准>>> 在Kubernetes Pod中使用Service Account访问API Server 博客分类: Kubernetes ...

  2. 如何查看Kubernetes pod yaml文件的在线语法帮助

    我们在撰写Kubernetes pod的yaml文件时,一定都为Kubernetes yaml文件复杂的语法苦恼过. 其实Kubernetes是提供了很好的在线(online)文档的. 命令: kub ...

  3. 容器编排技术 -- Kubernetes Pod 优先级和抢占

    容器编排技术 -- Kubernetes Pod 优先级和抢占 1 怎么样使用优先级和抢占 2 启用优先级和抢占 3 PriorityClass 3.1 PriorityClass 示例 4 Pod ...

  4. 容器编排技术 -- Kubernetes Pod概述

    容器编排技术 -- Kubernetes Pod概述 1 了解Pod 1.1 Pods如何管理多个容器 1.1.1 网络 1.1.2 存储 2 使用Pod 2.1 Pod和Controller 3 P ...

  5. 容器编排技术 -- Kubernetes Pod 生命周期

    容器编排技术 -- Kubernetes Pod 生命周期 1 Pod phase 2 Pod 状态 3 容器探针 3.1 该什么时候使用存活(liveness)和就绪(readiness)探针? 4 ...

  6. 浅析Kubernetes Pod重启策略和健康检查

    使用Kubernetes的主要好处之一是它具有管理和维护集群中容器的能力,几乎可以提供服务零停机时间的保障.在创建一个Pod资源后,Kubernetes会为它选择worker节点,然后将其调度到节点上 ...

  7. Kubernetes学习总结(11)—— Kubernetes Pod 到底是什么?

    前言 [译]What are Kubernetes Pods Anyway?最近看到了一条关于Kubernetes Pods的推特,来自了不起的Amy Codes(我真的希望这是她的真名): 虽然不是 ...

  8. Kubernetes pod的生命周期

    本文翻译自:Kubernetes: Lifecycle of a Pod 原文出处:Kubernetes: Lifecycle of a Pod - DZone Integration 参考:Cont ...

  9. Kubernetes Pod报错 filed to get sandbox image “k8s.gcr.io/pause:3.6“

    最近工作中在部署Pod后发现无法正常启动,查看Pod详情后看到以下报错信息: Failed to create pod sandbox: rpc error: code = Unknown desc ...

  10. Kubernetes pod 状态出现 ImagePullBackOff 的原因

    通过一个试验作为例子来学习一下. 我们创建一个名为fail 的 deployment,让它故意指向一个实际并不存在的 Docker 镜像: $ kubectl run fail --image=jer ...

最新文章

  1. Selenium-switch_to_window出现删除线
  2. fnCustomBootTask for local sandbox 在何处赋值
  3. JS实战 · 复选框全选操作
  4. Net基础篇_学习笔记_第十二天_面向对象继承(字符串_字符串的不可变性)
  5. 那些年我们用过神级的代码注释
  6. 机器人合金礼包_《Apex英雄》福利twitch礼包领取详细攻略,1机器人皮肤+5个包!...
  7. 我们分析了全美Top Business Analyst 和 Data Science专业,最后给你总结了这几点
  8. 传统手工特征深度特征【转载】
  9. python爬取网页内容_Python爬虫原理解析
  10. 多线程面试题c Linux,【多线程Linux面试题】面试问题:小伙用C语言熬… - 看准网...
  11. python 解析命令行
  12. python的父类和子类的继承关系和super()的使用
  13. hp服务器pe系统安装win7系统安装系统安装,惠普Folio 1040 G1 u盘pe如何重装win7系统...
  14. 有限差分法热传导matlab,热传导方程有限差分法的MATLAB实现
  15. OpenCV 帧差法
  16. java读取rar_java怎么读取Zip和RAR里面的文件啊?
  17. html如何将图片作为网页背景,html文档中如何把图片作为背景
  18. 433MHz资讯一点通
  19. 大三老狗的前端实习半年心得-经验分享
  20. ipv4或ipv6没有访问权限的解决办法

热门文章

  1. 基于Pyramidbox实现的大规模人脸检测
  2. 一个“Scale AI”,让整个国内数据标注行业都酸了!
  3. 解决Paragon NTFS for Mac安装分卷失败的办法
  4. [电路汇总] 强大、便捷的蓝牙技术应用方案分享
  5. 知识图谱实战应用11-基于py2neo构建一个简单的问答功能
  6. java基于springboot医疗器材管理系统
  7. 1/cos^3的不定积分 cos^3分之一的不定积分
  8. icp算法原理与实现
  9. 数据结构考研复试、工作面试常见问题及答案(动画版)
  10. ubuntu系统卸载火狐浏览器