• 利用k8s部署一个nginx服务的操作指令
  • kubectl命令
  • kubectl api-resource 查看k8s集群资源
  • kubectl –help 可以查看kubectl所有操作详情
  • 命令式对象管理
  • 使用yaml的方式创建nginx服务 命令式对象配置 和 声明式对象配置
  • 声明式对象配置
  • 实际使用时,三种方式应该如何使用?
  • 创建nginx-pod
  • label标签
  • 为资源打标签 命令方式
  • 为资源打标签 yaml配置方式
  • k8s通过service对外提供同类pod的服务
  • 创建集群外部也可访问的service 命令方式
  • 创建集群外部也可访问的service yaml配置文件方式
  • 创建集群内部可访问的service和集群外也可访问的service对比
  • pod定义的资源清单 part1
    apiVersion: v1 #必选,版本号,例如v1
    kind: Pod   #必选,资源类型,例如 Pod
    metadata:   #必选,元数据
    name: string #必选,Pod名称
    namespace: string #Pod所属的命名空间,默认为”default”
    labels:    #自定义标签列表
    – name: string  
    spec: #必选,Pod中容器的详细定义
    containers: #必选,Pod中容器列表
    – name: string #必选,容器名称
    image: string #必选,容器的镜像名称
    imagePullPolicy: [ Always|Never|IfNotPresent ] #获取镜像的策略
    command: [string] #容器的启动命令列表,如不指定,使用打包时使用的启动命令
    args: [string] #容器的启动命令参数列表
    workingDir: string #容器的工作目录
    volumeMounts: #挂载到容器内部的存储卷配置
    – name: string #引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名
    mountPath: string #存储卷在容器内mount的绝对路径,应少于512字符
    readOnly: boolean #是否为只读模式
    ports: #需要暴露的端口库号列表
    – name: string #端口的名称
    containerPort: int #容器需要监听的端口号
    hostPort: int #容器所在主机需要监听的端口号,默认与Container相同
    protocol: string #端口协议,支持TCP和UDP,默认TCP
    env: #容器运行前需设置的环境变量列表
    – name: string #环境变量名称
    value: string #环境变量的值
    resources: #资源限制和请求的设置
    limits: #资源限制的设置
    cpu: string #Cpu的限制,单位为core数,将用于docker run –cpu-shares参数
    memory: string #内存限制,单位可以为Mib/Gib,将用于docker run –memory参数
    requests: #资源请求的设置
    cpu: string #Cpu请求,容器启动的初始可用数量
    memory: string #内存请求,容器启动的初始可用数量
    lifecycle: #生命周期钩子
    postStart: #容器启动后立即执行此钩子,如果执行失败,会根据重启策略进行重启
    preStop: #容器终止前执行此钩子,无论结果如何,容器都会终止
    livenessProbe: #对Pod内各容器健康检查的设置,当探测无响应几次后将自动重启该容器
    exec:   #对Pod容器内检查方式设置为exec方式
    command: [string] #exec方式需要制定的命令或脚本
    httpGet: #对Pod内个容器健康检查方法设置为HttpGet,需要制定Path、port
    path: string
    port: number
    host: string
    scheme: string
    HttpHeaders:
    – name: string
    value: string
    tcpSocket: #对Pod内个容器健康检查方式设置为tcpSocket方式
    port: number
    initialDelaySeconds: 0 #容器启动完成后首次探测的时间,单位为秒
    timeoutSeconds: 0    #对容器健康检查探测等待响应的超时时间,单位秒,默认1秒
    periodSeconds: 0    #对容器
  • pod定义的资源清单 part2
    successThreshold: 0
    failureThreshold: 0
    securityContext:
    privileged: false
    restartPolicy: [Always | Never | OnFailure] #Pod的重启策略
    nodeName: <string> #设置NodeName表示将该Pod调度到指定到名称的node节点上
    nodeSelector: obeject #设置NodeSelector表示将该Pod调度到包含这个label的node上
    imagePullSecrets: #Pull镜像时使用的secret名称,以key:secretkey格式指定
    – name: string
    hostNetwork: false #是否使用主机网络模式,默认为false,如果设置为true,表示使用宿主机网络
    volumes: #在该pod上定义共享存储卷列表
    – name: string #共享存储卷名称 (volumes类型有很多种)
    emptyDir: {} #类型为emtyDir的存储卷,与Pod同生命周期的一个临时目录。为空值
    hostPath: string #类型为hostPath的存储卷,表示挂载Pod所在宿主机的目录
    path: string    #Pod所在宿主机的目录,将被用于同期中mount的目录
    secret:    #类型为secret的存储卷,挂载集群与定义的secret对象到容器内部
    scretname: string
    items:
    – key: string
    path: string
    configMap: #类型为configMap的存储卷,挂载预定义的configMap对象到容器内部
    name: string
    items:
    – key: string
    path: string
  • 查看每种资源的可配置项命令
    • kubctl explain 资源类型
    • kubctl explain 资源类型.属性
    • 三种镜像拉取策略
    • 在yaml中配置command参数示例
    • k8s对docker容器进行资源配额控制
    • pod定向调度 调度到单个指定node上
    • pod定向调度 调度到多个指定node上(通过打lable标签来实现)
    • 污点和容忍
    • master节点默认添加了一个Node污点,拒绝pod调度到master节点上
    • deployment控制pod的原理
    • 滚动更新的原理
    • 金丝雀发布
    • DaemonSet(DS) 控制器
    • cronJob控制器
  • nodeport模式的service(外部可访问的serveice服务)
  • 容器的持久化存储
  • emptydir(pod自带的临时空目录)
  • hostpath(给pod挂载实际目录)
  • NFS(网络共享盘服务)
  • 高级存储:PV 和 PVC

作者 admin

张宴银,大数据开发工程师

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注