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 中可以 ...
随机推荐
- TCP 粘包问题
TCP 粘包,主要是因为发送端发送的两个包,TCP按照流进行发送,缓冲器满了才发送. 假如两个包都比较小的话,就会把两个包合并到一起进行发送,造成接收端接到的流无法知道这是一个包还是两个包 假如发送两 ...
- RabbitMQ的应用总结
RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准 ...
- IDEA @override处标红
报错问题如下 这个是没有导入父类,无法重写父类的方法 创建项目的时候没有使用jdk1.6以上的版本.将版本更正就好了
- Vue 组件封装发布到npm 报错 Uncaught TypeError: Cannot read property 'toLowerCase' of undefined
Uncaught TypeError: Cannot read property 'toLowerCase' of undefined 原因是 没有导出 export default { name:& ...
- Qt之如何自定义model
Qt之如何自定义model https://blog.csdn.net/wei375653972/article/details/86592209
- C/C++配置
VScode 插件推荐与C/C++配置 https://www.cnblogs.com/harrypotterjackson/p/11432252.html 阅读目录 C++类 美化 git tab ...
- 【记录】【springboot】动态定时任务ScheduledFuture,可添加、修改、删除
这里只演示添加和删除任务的,因为修改就是删除任务再添加而已. 方便演示,任务就是每3秒打印 1.没有任务 后台 2.添加一个任务 3.再添加一个任务 4.删除一个任务 5.再添加一个任务 6.代码 运 ...
- PHP表单select中有0选项的处理
<div class="layui-inline"> <label class="layui-form-label">是否锁定</ ...
- golang笔记之DOS篇
Dos的常用命令 dos的基本介绍 Dos: Disk Operating System 磁盘操作系统 ,简单说一下Windows下的目录 2. dos的基本操作原理 目录的操作: md ...
- 改變帳款性質別以利排序沖帳才不會有問題,把19->17,把12->17
Cxrp400 應收 LET ls_sql = SELECT xrccdocno,xrccseq,xrcc001,xrca035,xrca014, , xrca015,xrca006,xrcc008, ...