0
点赞
收藏
分享

微信扫一扫

k8s快速入门之命令行

飞鸟不急 2022-07-15 阅读 110

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
#访问集群外端口-根据显示的节点和端口 
http://192.168.58.112:30217

get命令

kubectl 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 <rc-name> 
# 以纯文本输出格式列出所有副本控制器和服务。 
kubectl get rc,services 
# 以纯文本输出格式列出所有守护程序集,包括未初始化的守护程序集。 
kubectl get ds --include-uninitialized
# 列出在节点 server01 上运行的所有 pod
kubectl get pods --field-selector=spec.nodeName=server01

describe命令

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

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

delete命令

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

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

进入容器命令

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

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

logs命令

kubectl logs 打印 Pod 中容器的日志

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

格式化输出

#将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
举报

相关推荐

0 条评论