zoukankan      html  css  js  c++  java
  • kubernetes常用命令

    kubernetes常用命令

    常用命令

    # 查看k8s集群节点简单信息
    $ kubectl get nodes
    # 查询k8s集群节点详细信息
    $ kubectl get nodes -o wide
    # 查看k8s集群更详细的信息
    $ kubectl describe nodes
    
    # 查询k8s集群所有namespace
    $ kubectl get ns
    $ kubectl get namespace
    $ kubectl describe namespace
    # 创建namespace,名称为dev
    $ kubectl create namespace -name dev
    # 删除namespace (如果namespace下面有pods,需要先删除namespace下pods)
    $ kubectl delete namespace dev
    
    # 以下命令不带-n参数指定namespace,默认都在default这个namespace下执行
    # 创建一个nginx服务,副本数量3
    $ kubectl create deployment nginx-app --image=nginx --replicas=3
    # 查看此deployment状态,READY 3/3 标识3个副本均启动完成
    $ kubectl get deploy nginx-app
    # 进入deployment的任一pod终端,使用curl访问
    $ kubectl get pods
    $ kubectl exec -it nginx-app-d6ff45774-8wb5t -- /bin/sh
    # 在pod中执行非交互式命令
    $ kubectl exec nginx-app-d6ff45774-xm6bm -- cat /etc/hostname
    # 在容器中执行下面命令,查看是否返回nginx首页
    $ curl localhost
    $ exit
    # 创建service,暴露deployment的服务供外部访问,随机生成NodePort端口,--target-port=8000容器端口
    $ kubectl expose deployment nginx-app --port=80 --type=NodePort --name=nginx-http
    
    # 查看创建的service端口,使用浏览器访问nodeIp:此端口可以看到nginx页面,多次访问,请求随机落到3个副本上
    $ kubectl get svc nginx-http
    # 查看指定pod的滚动日志
    $ kubectl logs -f nginx-app-d6ff45774-xm6bm
    
    # 查看deployment,service,pods并删除
    $ kubectl get svc
    $ kubectl get deploy
    $ kubectl get pods
    $ kubectl delete svc nginx-http
    $ kubectl delete deploy nginx-app
    $ kubectl delete pods nginx
    
    

    发布一个nginx服务

    创建 nginx-pod.yml nginx-deployment.yml nginx-svc.yml 三个yml配置文件,三个配置文件内容也可以写在一个yml中

    • nginx-pod.yml

      apiVersion: v1
      kind: Pod
      metadata:
        name: nginx
        labels:
          app: nginx
      spec:
        containers:
        - name: nginx
          image: nginx:alpine
          ports:
          - containerPort: 80
      
    • nginx-deployment.yml

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx-deployment
      spec:
        selector:
          matchLabels:
            app: nginx
        replicas: 3
        template:
          metadata:
            labels:
              app: nginx
          spec:
            containers:
            - name: nginx
              image: nginx:alpine
              ports:
              - containerPort: 80
      
    • nginx-svc.yml

      apiVersion: v1
      kind: Service
      metadata:
        name: nginx-service
      spec:
        selector:
          app: nginx
        ports:
        - protocol: TCP
          port: 80
          targetPort: 80
          nodePort: 30080
        type: NodePort
      

    使用配置文件定义服务发布服务

    # 发布pod到指定的namespace
    $ kubectl apply -f nginx-pod.yml -n dev
    $ kubectl apply -f nginx-deployment.yml -n dev
    $ kubectl apply -f nginx-svc.yml -n dev
    $ kubectl get deploy -n dev
    $ kubectl get svc -n dev
    # 本机浏览器访问http://nodeIp:30080,能看到nginx欢迎页就代表服务启动没有问题
    # 查看副本数量
    $ kubectl get rs
    # 手动扩缩容
    $ kubectl scale deploy nginx-deployment --replicas=4 -n dev
    # 自动扩缩容,cpu使用率达到80%,最小副本数量10,最大扩容数量15
    $ kubectl autoscale deploy nginx-deployment --min=10 --max=15 --cpu-percent=80
    # 查看自动扩缩容配置
    $ kubectl get hpa
    # 删除自动扩缩容配置
    $ kubectl delete hpa nginx-deployment
    
    # 删除deployment和service
    $ kubectl delete -f nginx-deployment.yml -n dev
    $ kubectl delete -f nginx-svc.yml -n dev
    
    

    参考文档: http://docs.kubernetes.org.cn/683.html
    如果不知道命令用法可以加参数 --help查看帮助文档

    博采众长才能相互印证,故步自封必将粗陋浅薄!
  • 相关阅读:
    ie烦人的bug篇
    javascript之复习(框架里的方法们)
    javascript之判断专题
    js 值类型和引用类型
    作用域链
    javascript解析机制——预解析
    SSH做反向代理
    怎样在 CentOS 7.0 上安装和配置 VNC 服务器
    创建GitHub技术博客全攻略
    rsync 备份 CENTOS 系统!
  • 原文地址:https://www.cnblogs.com/tangwan/p/k8s_command.html
Copyright © 2011-2022 走看看