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的基本介绍的更多相关文章

  1. Kubernetes中强制删除Pod、namespace

    Kubernetes中强制删除Pod.namespace 解决方法 可使用kubectl中的强制删除命令 # 删除POD kubectl delete pod PODNAME --force --gr ...

  2. Kubernetes K8S之Pod跨namespace名称空间访问Service服务

    Kubernetes的两个Service(ServiceA.ServiceB)和对应的Pod(PodA.PodB)分别属于不同的namespace名称空间,现需要PodA和PodB跨namespace ...

  3. 聊聊 Kubernetes Pod or Namespace 卡在 Terminating 状态的场景

    这个话题,想必玩过kubernetes的同学当不陌生,我会分Pod和Namespace分别来谈. 开门见山,为什么Pod会卡在Terminationg状态? 一句话,本质是API Server虽然标记 ...

  4. 十二、Pod的NameSpace

    Pod 的 NameSpace 一.Pod 的 NameSpace 使用 kubectl 管理命名空间及其包含的资源相当简单.在这一节中,我们将演示一些最常见的命名空间操作,便于你开始有效地分割资源. ...

  5. Linux的Namespace与Cgroups介绍

    Namespace 的概念 Linux Namespace 是kernel 的一个功能,它可以隔离一系列系统的资源,比如PID(Process ID),User ID, Network等等.一般看到这 ...

  6. 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 ...

  7. k8s系列---pod介绍

    # yaml格式的pod定义文件完整内容: apiVersion: v1 #必选,版本号,例如v1 kind: Pod #必选,Pod metadata: #必选,元数据 name: string # ...

  8. k8s核心资源之namespace与pod污点容忍度生命周期进阶篇(四)

    目录 1.命名空间namespace 1.1 什么是命名空间? 1.2 namespace应用场景 1.3 namespacs常用指令 1.4 namespace资源限额 2.标签 2.1 什么是标签 ...

  9. 四、Pod 介绍

    一.什么是 Pod ​Pod 是 kubernetes 集群中最小的部署和管理的基本单元,协同寻址,协同调度. ​Pod 是一个或多个容器的集合,是一个或一组服务(进程)的抽象集合. ​Pod 中可以 ...

随机推荐

  1. 大数据 Hibernate

    大数据 Hibernate - 国内版 Binghttps://cn.bing.com/search?FORM=U227DF&PC=U227&q=%E5%A4%A7%E6%95%B0% ...

  2. Xamarin.FormsShell基础教程(4)Shell项目内容列表页面运行效果

    Xamarin.FormsShell基础教程(4)Shell项目内容列表页面运行效果 在创建好Shell解决方案后,就可以运行程序了.本小节将讲解运行后的效果. 内容列表页面 运行程序,初始效果如图1 ...

  3. 【mybatis】子查询

    networkResource的 resultMap <resultMap id="NetworkResultMap" type="com.chinamobile. ...

  4. springboot docker 部署

    1.新建一个最简单的springboot项目 https://code.aliyun.com/859143303/hello-world.git 2.src/main/docker下新建Dockerf ...

  5. microsoft vs code 绿化

    下载地址: https://code.visualstudio.com/#alt-downloads 各个版本比较 User Installer System Installer .zip resou ...

  6. nginx deny 封IP

    官方文档地址:http://nginx.org/en/docs/http/ngx_http_access_module.html#deny Syntax: deny address | CIDR | ...

  7. springboot2 设置系统访问的默认首页

    @Configuration public class WebMvcConfig implements WebMvcConfigurer{ @Override public void addViewC ...

  8. 使用Python的turtle画小绵羊

    今天学习使用turtle画图,本来想实现个3D效果,结果2D都画了半天,画圆被绕晕了 目标图片: 实现代码: # -*- coding:utf-8 -*- # __author__ :kusy # _ ...

  9. MQTT的Res接口发布消息

    MQTT(这里采用的V2版本)发布消息的常见方法: 1.通过MQTT客户端连接MQTT服务器,建立长连接,通过接口发布消息 最常见的客户端: <dependency> <groupI ...

  10. 025 SSM综合练习01--数据后台管理系统--功能介绍及数据库表

    1.功能介绍 (1)环境搭建 主要讲解maven工程搭建,以及基于oracle数据库的商品表信息,并完成SSM整合.(2)商品查询 基于SSM整合基础上完成商品查询,要掌握主面页面main.jsp及商 ...