k8s快速入门之命令行

网友投稿 317 2022-09-09

k8s快速入门之命令行

k8s快速入门之命令行

Namspace

查看命名空间

kubectl get namespace #查看所有命名空间的pod资源 kubectl get pod --all-namespaces kubectl get pod -A #简写命令 kubectl get ns

默认的四个命令空间

default 用户创建的pod默认在此命名空间 kube-public 所有用户均可以访问,包括未认证用户 kube-node-lease kubernetes集群节点租约状态,v1.13加入 kube-system kubernetes集群在使用

创建NameSpace

kubectl create namespace swifty #简写命令 kubectl create ns swifty

删除NameSpace

kubectl delete namespace swifty #简写命令 kubectl delete ns swifty

Pod相关

Pod是kubernetes集群能够调度的最小单元。Pod是容器的封装 。 在Kubernetes集群中,Pod是所有业务类型的基础,也是K8S管理的最小单位级,它是一个或多个 容器的组合。这些容器共享存储、网络和命名空间,以及如何运行的规范。在Pod中,所有容器都被同 一安排和调度,并运行在共享的上下文中。对于具体应用而言,Pod是它们的逻辑主机,Pod包含业务 相关的多个应用容器。

查看Pod

#查看default命名空间下的pods kubectl get pods #查看kube-system命名空间下的pods kubectl get pods -n kube-system #查看所有命名空间下的pods kubectl get pod --all-namespaces kubectl get pod -A

创建Pod

#提前下载镜像 docker pull nginx:1.21.5 #运行pod #在default命名空间中创建一个pod副本的deployment kubectl run nginx-test --image=nginx:1.21.5 --port=80 #查看pod kubectl get pod kubectl get pod -o wide #使用pod的IP访问容器 crul IP:80

删除Pod

#删除默认命名空间下的nginx-test kubectl delete deployment nginx-test #删除swifty命名空间下的nginx-test kubectl delete deployment nginx-test -n swifty

扩容

#将副本扩容至3个 kubectl scale --replicas=3 deployment/nginx-test kubectl get deployment #查看pod详情-使用deployment的IP访问pod kubectl get deployment -o wide

缩容

kubectl edit deployments.apps nginx-test #修改replicas属性的值即可

创建服务

kubectl expose deployment nginx-test --name=nginx-svc --port=8888 --target-port=80 --protocol=TCP --type=NodePort kubectl get svc kubectl get svc -o wide #访问服务端口 curl 10.105.225.0:8888 #访问集群外端口-根据显示的节点和端口 get 列出一个或多个资源

# 查看集群状态信息 kubectl cluster-info # 查看集群状态 kubectl get cs # 查看集群节点信息 kubectl get nodes # 查看集群命名空间 kubectl get ns # 查看指定命名空间的服务 kubectl get svc -n kube-system # 以纯文本输出格式列出所有 pod。 kubectl get pods # 以纯文本输出格式列出所有 pod,并包含附加信息(如节点名)。 kubectl get pods -o wide # 以纯文本输出格式列出具有指定名称的副本控制器。提示:您可以使用别名 'rc' 缩短和替换 'replicationcontroller' 资源类型。 kubectl get replicationcontroller # 以纯文本输出格式列出所有副本控制器和服务。 kubectl get rc,services # 以纯文本输出格式列出所有守护程序集,包括未初始化的守护程序集。 kubectl get ds --include-uninitialized # 列出在节点 server01 上运行的所有 pod kubectl get pods --field-selector=spec.nodeName=server01

describe命令

kubectl describe 显示一个或多个资源的详细状态,默认情况下包括未初始化的资源

# 显示名称为 的节点的详细信息 kubectl describe nodes # 显示名为 的 pod 的详细信息 kubectl describe pods/ # 显示由名为 的副本控制器管理的所有 pod 的详细信息 # 记住:副本控制器创建的任何 pod 都以复制控制器的名称为前缀 kubectl describe pods # 描述所有的 pod,不包括未初始化的 pod kubectl describe pods --include-uninitialized=false

delete命令

kubectl delete 从文件、stdin或指定标签选择器、名称、资源选择器或资源中删除资源

# 使用 pod.yaml 文件中指定的类型和名称删除 pod kubectl delete -f pod.yaml # 删除标签名= 的所有 pod 和服务 kubectl delete pods,services -l name= # 删除所有具有标签名称= 的 pod 和服务,包括未初始化的那些 kubectl delete pods,services -l name= --include-uninitialized # 删除所有 pod,包括未初始化的 pod kubectl delete pods --all

进入容器命令

kubectl exec 对 pod 中的容器执行命令,与docker的exec命令非常类似

# 从 pod 中获取运行 'date' 的输出。默认情况下,输出来自第一个容器 kubectl exec date # 运行输出 'date' 获取在容器的 中 pod 的输出 kubectl exec -c date # 获取一个交互 TTY 并运行 /bin/bash 。默认情况下,输出来自第一个容器 kubectl exec -it /bin/bash

logs命令

kubectl logs 打印 Pod 中容器的日志

# 从 pod 返回日志快照 kubectl logs # 从 pod 开始流式传输日志。这类似于 'tail -f' Linux 命令 kubectl logs -f

格式化输出

#将pod信息格式化输出到一个yaml文件 kubectl get pod web-pod-13je7 -o yaml

强制删除

# 强制删除参数 --force --grace-period=0 # 强制删除指定Pod kubectl delete pod ${podname} --force --grace-period=0 # 强制删除指定Namespace kubectl delete namespace ${namespace_name} --force --grace-period=0

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:吴亦凡代言立白,引发明星营销新思考!
下一篇:云原生核心技术之:Service Mesh(服务网格)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~