美文网首页
k8s基础命令

k8s基础命令

作者: 小圆圈Belen | 来源:发表于2020-08-28 00:06 被阅读0次

    具体命令详解:

    1.基础命令:
    https://www.jianshu.com/p/d2fe32fd4675
    2.设置命令:
    https://www.jianshu.com/p/97f71c8ec720
    3.部署命令:
    https://www.jianshu.com/p/43a5d6bd1b67
    4.集群管理命令:
    https://www.jianshu.com/p/f7a0b418eeac
    5.集群故障排查和调试命令:
    https://www.jianshu.com/p/c03f3799e3ab
    6.其他命令:
    https://www.jianshu.com/p/c069c799a6c1

    基础命令

    1.create命令:根据文件或者输入来创建资源

    # 创建Deployment和Service资源
    kubectl create -f javak8s-deployment.yaml
    kubectl create -f javak8s-service.yaml
    

    2.delete命令:删除资源

    # 根据yaml文件删除对应的资源,但是yaml文件并不会被删除,这样更加高效
    kubectl delete -f javak8s-deployment.yaml 
    kubectl delete -f javak8s-service.yaml
    # 也可以通过具体的资源名称来进行删除,使用这个删除资源,需要同时删除pod和service资源才行
    kubectl delete 具体的资源名称
    

    3.get命令:获得资源信息

    # 查看所有的资源信息
    kubectl get all
    # 查看pod列表
    kubectl get pod
    # 显示pod节点的标签信息
    kubectl get pod --show-labels
    # 根据指定标签匹配到具体的pod
    kubectl get pods -l app=example
    # 查看node节点列表
    kubectl get node 
    # 显示node节点的标签信息
    kubectl get node --show-labels
    # 查看pod详细信息,也就是可以查看pod具体运行在哪个节点上(ip地址信息)
    kubectl get pod -o wide
    # 查看服务的详细信息,显示了服务名称,类型,集群ip,端口,时间等信息
    kubectl get svc
    [root@master ~]# kubectl get svc
    NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
    go-service      NodePort    10.10.10.247   <none>        8089:33702/TCP   29m
    java-service    NodePort    10.10.10.248   <none>        8082:32823/TCP   5h17m
    kubernetes      ClusterIP   10.10.10.1     <none>        443/TCP          5d16h
    nginx-service   NodePort    10.10.10.146   <none>        88:34823/TCP     2d19h
    # 查看命名空间
    kubectl get ns
    # 查看所有pod所属的命名空间
    kubectl get pod --all-namespaces
    # 查看所有pod所属的命名空间并且查看都在哪些节点上运行
    kubectl get pod --all-namespaces  -o wide
    # 查看目前所有的replica set,显示了所有的pod的副本数,以及他们的可用数量以及状态等信息
    kubectl get rs
    [root@master ~]# kubectl get rs
    NAME                          DESIRED   CURRENT   READY   AGE
    go-deployment-58c76f7d5c      1         1         1       32m
    java-deployment-76889f56c5    1         1         1       5h21m
    nginx-deployment-58d6d6ccb8   3         3         3       2d19h
    # 查看目前所有的deployment
    kubectl get deployment
    [root@master ~]# kubectl get deployment
    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    go-deployment      1/1     1            1           34m
    java-deployment    1/1     1            1           5h23m
    nginx-deployment   3/3     3            3           2d19h
    # 查看已经部署了的所有应用,可以看到容器,以及容器所用的镜像,标签等信息
     kubectl get deploy -o wide
    [root@master bin]# kubectl get deploy -o wide     
    NAME    READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES       SELECTOR
    nginx   3/3     3            3           16m   nginx        nginx:1.10   app=example
    

    4.run命令:在集群中创建并运行一个或多个容器镜像。

    # 基本语法
    run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...]
    # 示例,运行一个名称为nginx,副本数为3,标签为app=example,镜像为nginx:1.10,端口为80的容器实例
    kubectl run nginx --replicas=3 --labels="app=example" --image=nginx:1.10 --port=80
    其他用法参见:http://docs.kubernetes.org.cn/468.html
    

    5.expose命令:创建一个service服务,并且暴露端口让外部可以访问

    # 创建一个nginx服务并且暴露端口让外界可以访问
    kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80 --name=nginx-service
    关于expose的详细用法参见:http://docs.kubernetes.org.cn/475.html
    

    6.set命令: 配置应用的一些特定资源,也可以修改应用已有的资源

    # 使用kubectl set --help查看,它的子命令,env,image,resources,selector,serviceaccount,subject。
    set命令详情参见:http://docs.kubernetes.org.cn/669.html
    语法:
    resources (-f FILENAME | TYPE NAME) ([--limits=LIMITS & --requests=REQUESTS]
    

    7.kubectl set resources 命令:用于设置资源的一些范围限制。

    # 将deployment的nginx容器cpu限制为“200m”,将内存设置为“512Mi”
    kubectl set resources deployment nginx -c=nginx --limits=cpu=200m,memory=512Mi
    # 为nginx中的所有容器设置 Requests和Limits
    kubectl set resources deployment nginx --limits=cpu=200m,memory=512Mi --requests=cpu=100m,memory=256Mi
    # 删除nginx中容器的计算资源值
    kubectl set resources deployment nginx --limits=cpu=0,memory=0 --requests=cpu=0,memory=0
    

    8.kubectl set selector命令:设置资源的selector(选择器)
    如果在调用"set selector"命令之前已经存在选择器,则新创建的选择器将覆盖原来的选择器。

    selector必须以字母或数字开头,最多包含63个字符,可使用:字母、数字、连字符" - " 、点"."和下划线" _ "。如果指定了--resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。

    注意:目前selector命令只能用于Service对象。

    # 语法
    selector (-f FILENAME | TYPE NAME) EXPRESSIONS [--resource-version=version]
    

    9.kubectl set image命令:用于更新现有资源的容器镜像。可用资源对象包括:pod (po)、replicationcontroller (rc)、deployment (deploy)、daemonset (ds)、job、replicaset (rs)。

    # 将deployment中的nginx容器镜像设置为“nginx:1.9.1”。
    kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1
    # 所有deployment和rc的nginx容器镜像更新为“nginx:1.9.1”
    kubectl set image deployments,rc nginx=nginx:1.9.1 --all
    # 将daemonset abc的所有容器镜像更新为“nginx:1.9.1”
    kubectl set image daemonset abc *=nginx:1.9.1
    # 从本地文件中更新nginx容器镜像
    kubectl set image -f path/to/file.yaml nginx=nginx:1.9.1 --local -o yaml
    

    10.explain命令:用于显示资源文档信息
    kubectl explain rs
    11.edit命令:用于编辑资源信息

    # 编辑Deployment nginx的一些信息
    kubectl edit deployment nginx
    # 编辑service类型的nginx的一些信息
    kubectl edit service/nginx
    

    相关文章

      网友评论

          本文标题:k8s基础命令

          本文链接:https://www.haomeiwen.com/subject/fgwfsktx.html