Pod和Namespace的基本介绍
namespace资源名称空间
删除namespace资源会级联删除其所包含的所有其它资源对象
名称空间仅仅只是用来限制资源名称的作用域 并不能实现Pod的通信隔离
在名称空间下操作service 实现service资源隔离
[root@k8s-master ~]# kubectl create service nodeport my-ns --tcp=: -n qa
service/my-ns created
[root@k8s-master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> /TCP 231d
myapp NodePort 10.100.165.177 <none> :/TCP 21h
[root@k8s-master ~]# kubectl get svc -n default
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> /TCP 231d
myapp NodePort 10.100.165.177 <none> :/TCP 21h
[root@k8s-master ~]# kubectl get svc -n qa
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-ns NodePort 10.102.116.9 <none> :/TCP 24s [root@k8s-master ~]# kubectl delete svc my-ns
Error from server (NotFound): services "my-ns" not found
[root@k8s-master ~]# kubectl delete svc my-ns -n qa
service "my-ns" deleted
[root@k8s-master ~]# kubectl delete all --all -n qa
service "my-ns" deleted
名称空间
[root@k8s-master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> /TCP 230d
myapp NodePort 10.100.165.177 <none> :/TCP 5m
[root@k8s-master ~]# kubectl run client --image=busybox --restart=Never -it /bin/sh
If you don't see a command prompt, try pressing enter.
/ # wget -O -q http://myapp.default:80
Connecting to myapp.default: (10.100.165.177:)
-q % |*****************************************| :: ETA
/ # wget -O - -q http://myapp.default:80
Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>
/ # wget -O - -q http://myapp.default:80
Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a> [root@k8s-master ~]# wget -O - -q http://myappd.default:80/hostname.html
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
client / Running 46m
myapp-6865459dff-c59qp / Running 1h
myapp-6865459dff-zd6wg / Running 10m
[root@k8s-master ~]# kubectl exec -it client /bin/sh
/ # wget -O - -q http://myapp.default:80/hostname.html
myapp-6865459dff-zd6wg pod和pods deployment和deployments都可以
[root@k8s-master ~]# kubectl get deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
myapp 1h
[root@k8s-master ~]# kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
myapp kubectl打补丁包
[root@k8s-master ~]# kubectl patch deployment myapp-deploy -p '{"spec":{"strategy":{"rollingUpdate":{"maxSurge":1,"maxUnavailable":0}}}}'
deployment.extensions/myapp-deploy patched [root@k8s-master ~]# kubectl set image deployment myapp-deploy myapp=ikubernetes:v3 && kubectl rollout pause deployment myapp-deploy
deployment.extensions/myapp-deploy image updated
deployment.extensions/myapp-deploy paused
pod介绍
pod对象
pod对象是包含了多个应用容器 存储资源 专用IP以及支撑容器运行的其它选项的逻辑组件 同一个pod下的所有容器共享网络名称空间和存储名称空间
所以它们共用同一的Pod的主机名 IP地址 端口 同一pod中的容器通过lo接口进行通信
pod的种类
1.自主式pod
自主式pod在非正常结束的情况下无法自动重新启动一个新的Pod
2.受控Pod
由控制器管理启动的Pod在异常退出的时候 控制器会自动创建新Pod
1.pod存活性探测
存活性探测一旦检测到异常就会不断的重启容器 直到服务恢复正常
2.pod就绪性探测
探测失败后不会杀死或者重启容器 而是通知其尚未就绪 并触发依赖于其就绪状态的操作如从Service中移除此pod对象
就绪性探测和service把用户请求调度到pod上有着重要的关系
.httpGet
livenessProbe:
httpGet:
path: /healthz
port:
scheme: HTTP
.execAction
livenessProbe:
exec:
command: ["test","-e","/tmp/healthy"]
.TcpSocket
livenessProbe:
tcpSocket:
port:
.pod生命周期钩子函数
lifecycle:
postStart:
exec:
command: ["/bin/sh","-c","echo 'lifecycle hooks handler ' > /usr/share/nginx/html/test.html"]
pod三种检测方式
pod控制器
自主式pod由对应节点上的kubelet负责监控其容器的存活性 容器主进程崩溃后 kubelet能够自动重启相应的容器
kubelet对非主进程崩溃类的容器错误却是无法感知的 比如index.html不存在 这种异常检测依赖于pod自定义的存活性检测
pod对象遭意外删除或者pod所在的节点发生故障 节点故障后kubelet服务 也会异常导致节点上的pod运行将无法得到保证
这种情况需要用到Pod控制器来保证所有pod来正常运行 pod的存活性和就绪性探测只能保证pod所在节点上pod正常运行
pod控制器保证可以是跨集群节点上pod正常运行
资源注解 Annotations
资源注解和资源标签类似 不过注解不能用于标签和挑选K8S资源对象 仅可以用于资源提供元数据信息.元数据不受字符数量的限制
Pod和Namespace的基本介绍的更多相关文章
- Kubernetes中强制删除Pod、namespace
Kubernetes中强制删除Pod.namespace 解决方法 可使用kubectl中的强制删除命令 # 删除POD kubectl delete pod PODNAME --force --gr ...
- Kubernetes K8S之Pod跨namespace名称空间访问Service服务
Kubernetes的两个Service(ServiceA.ServiceB)和对应的Pod(PodA.PodB)分别属于不同的namespace名称空间,现需要PodA和PodB跨namespace ...
- 聊聊 Kubernetes Pod or Namespace 卡在 Terminating 状态的场景
这个话题,想必玩过kubernetes的同学当不陌生,我会分Pod和Namespace分别来谈. 开门见山,为什么Pod会卡在Terminationg状态? 一句话,本质是API Server虽然标记 ...
- 十二、Pod的NameSpace
Pod 的 NameSpace 一.Pod 的 NameSpace 使用 kubectl 管理命名空间及其包含的资源相当简单.在这一节中,我们将演示一些最常见的命名空间操作,便于你开始有效地分割资源. ...
- Linux的Namespace与Cgroups介绍
Namespace 的概念 Linux Namespace 是kernel 的一个功能,它可以隔离一系列系统的资源,比如PID(Process ID),User ID, Network等等.一般看到这 ...
- kubernetes 实战6_命令_Share Process Namespace between Containers in a Pod&Translate a Docker Compose File to Kubernetes Resources
Share Process Namespace between Containers in a Pod how to configure process namespace sharing for a ...
- k8s系列---pod介绍
# yaml格式的pod定义文件完整内容: apiVersion: v1 #必选,版本号,例如v1 kind: Pod #必选,Pod metadata: #必选,元数据 name: string # ...
- k8s核心资源之namespace与pod污点容忍度生命周期进阶篇(四)
目录 1.命名空间namespace 1.1 什么是命名空间? 1.2 namespace应用场景 1.3 namespacs常用指令 1.4 namespace资源限额 2.标签 2.1 什么是标签 ...
- 四、Pod 介绍
一.什么是 Pod Pod 是 kubernetes 集群中最小的部署和管理的基本单元,协同寻址,协同调度. Pod 是一个或多个容器的集合,是一个或一组服务(进程)的抽象集合. Pod 中可以 ...
随机推荐
- HDFS修改副本数,并生效。
1.hadoop集群使用的ucloud的uahdoop 2.是公司集群配置小,只有两台core节点,实际就是两台的datanode. 容量占用超过了80%,需要缩减副本以空出容量. 3.查看 hado ...
- 使用 Laravel 自带的用户系统 包括登录注册功能以及错误处理
一.默认 Laravel 不会自动帮你装上用户系统, 二.但是我们可以从默认首页的代码中看到,登录注册按钮被隐藏了 三.需要手动输入命令进行安装 php artisan make:auth 安装完成后 ...
- IfcEdge
/* Generated By: IFC Tools Project EXPRESS TO JAVA COMPILER: Do not edit this file!! */ package ifc2 ...
- LeetCode 112. Path Sum(路径和是否可为sum)
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...
- redis-cli中文乱码
在开发过程中,需要验证redis缓存中的数据,发现redis存储的中文全是乱码,因为默认情况下redis不转义中文.如果在平常开发中想要看到中文内容,可以在使用redis-cli 命令登陆redis服 ...
- 爬虫相关-scrapy框架介绍
性能相关-进程.线程.协程 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时必然会引起等待,从而使得请求整体变慢. 串行执行 import requests def fetc ...
- [LeetCode] 334. Increasing Triplet Subsequence 递增三元子序列
Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar ...
- Java白皮书(总结一些题目)
java基础 1. 简述JVM的运行原理? Java平台由Java 虚拟机和Java 应用程序接口搭建,Java语言则是进入这个平台的通道, 用Java语言编写并编译的程序可以运行在这个平台 ...
- [转帖]在VirtualBox Linux 7u2 中安装Oracle RAC 12.2.0.1.0
https://xiaoyu.blog.csdn.net/article/details/81980936
- 设计模式 AOP,OOP
AOP.OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想. 简单说,AOP面向动词领域,OOP面向名词领域 AOP: (Aspect Oriented Programming) 面向切面编 ...