• K8s 命令基础


    K8s 命令基础

    Namespace

    创建:

    • kubectl create namespace xiaoqu
    • kubectl apply -f namespace.yaml

    namespace.yaml

    apiVersion: v1
    kind: Namespace
    metadata:
      name: xiaoqu
    

    注意

    • 命名空间名称满足正则表达式a-z0-9?,最大长度为63位

    删除

    • kubectl delete namespace xiaoqu

    获取所有namesapce

    • kubectl get namespaces

    注意

    • 删除一个namespace会自动删除所有属于该namespace的资源。
    • default和kube-system命名空间不可删除。

    Deployments

    管理pod的扩容和收缩。pod的生死归Deployments管。

    • 如果删除service,deployments依旧会存在,并且pod也依旧存在。
    • 如果删除pod,deployments依旧存在,并且会去创建新的pod, service 依旧存在。
    • 如果删除deployments,pod会被删除,

    services

    services 本质上是通过pod的上的label selector 对一组pod进行汇总,路由分发,负载均衡等操作。

    pod

    注意

    通过yaml创建的pod 不可通过修改yaml,修改pod的属性,只能删除pod,然后再去apply yaml 创建新的。

    扩容回滚等常用命令

    ## 扩容
    kubectl scale deployment nginx-deployment --replicas 10
    ## 自动拓展
    kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80
    ## 更新镜像 还可以更新其他东西比如ENV, 
    kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1
    ## 回滚 可通过 --to-revision 指定版本
    kubectl rollout undo deployment/nginx-deployment
    ## 查看版本记录
    kubectl rollout history deployment
    ## 获取pods带着label
    kubectl get pods --show-labels
    ## 获取运行着的service的yaml
    kubectl get service hello-kube -o yaml
    ## pod 更新策略
    kubectl get rs
    

    常用yaml模版

    service

    apiVersion: v1
    kind: Service
    metadata:
      name: hello-kube-d
    spec:
      type: NodePort
      ports:
      - port: 80
        targetPort: 8080
      selector:
        app: hello-kube-d
    

    deployments

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-kube-d
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: hello-kube-d
      template:
        metadata:
          labels:
            app: hello-kube-d
        spec:
          containers:
          - name: hello-kube-d
            image: paulbouwer/hello-kubernetes:1.8
            ports:
            - containerPort: 8080
            env:
            - name: MESSAGE
              value: hello-kube-d
    

    pods

    apiVersion: v1
    kind: Pod
    metadata:
      name: hello-kube
    spec:
      hostNetwork: true
      containers:
      - name: hello-kube
        image: paulbouwer/hello-kubernetes:1.8
        ports:
        - containerPort: 8080
        env:
        - name: MESSAGE
          value: "hello-kube"
    

    namespaces

    apiVersion: v1
    kind: Namespace
    metadata:
      name: xiaoqu
    

    configMap

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: hello-kube-config
      labels:
        name: hello
    data:
      MESSAGE: "message"
      name: "hello"
    
  • 相关阅读:
    Java基础之集合框架(Collection接口和List接口)
    Management
    .NET实现多个不同有效时间Session方案思考
    C#操作MySql数据库帮助类(Dapper,T-Sql)
    MVC控制器传递多个实体类集合到视图的方案总结
    高德js API根据出行方式和出现策略由起始点经纬度实现路线规划
    c#QQ邮件编程学习(收发邮件)
    自定义tt文本模板实现MySql指数据库中生成实体类
    Socket客户端
    Socket服务端
  • 原文地址:https://www.cnblogs.com/qulianqing/p/13404218.html
Copyright © 2020-2023  润新知