k8s常用命令


一、基础命令

1.节点

# 查看节点
kubectl get nodes

2.命名空间

命名空间,k8s中用来隔离资源的对象

2.1命令行方式

# 1、查看所有命名空间
kubectl get ns
# 2、查看指定的ns
kubectl get ns ns-name
# 3、指定输出格式 kubectl get ns ns-name -o [格式参数:json、yaml、wide。。]
kubectl get ns ns-name -o yaml
# 4、查看ns详情
kubectl describe ns ns-name
# 5、创建命名空间
kubectl create ns ns-name
# 6、删除命名空间
kubectl delete ns ns-name

2.2yaml方式

# hello.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: hello
# 创建hello Namespace
kubectl create -f hello.yaml
# 删除hello Namespace
kubctl delete -f hello.yaml

3.pod

k8s的最小控制单元,程序运行在容器中,而容器则运行在pod中,一个pod可以有1个或多个容器

# 1、创建并运行
kubectl run nginx --image=nginx:latest --port=80 --namespace dev
# 2、查看pod基本信息
kubectl get pod -n dev
# 3、查看pod详细信息
kubectl describe pod nginx -n dev
# 4、查看所有pod
kubectl get pods -A
# 5、访问pod(获取podIp)
kubectl get pods -n dev -o wide
# 6、删除pod
kubectl delete pod nginx -n dev
# 7、查看pod的运行日志
kubectl logs pod-name

4. 标签

它的作用就是在资源上添加标识,用来对它们进行区分和选择。

# 1、为pod资源打标签
kubectl label pod nginx version=1.0 -n dev
# 2、为pod资源更新标签
kubectl label pod nginx version=2.0 -n dev --overwrite pod/nginx labeled
# 3、查看标签
kubectl get pod nginx -n dev --show-labels
# 4、筛选标签
kubectl get pod -n dev -l version=2.0 --show-labels
# 5、删除标签
kubectl label pod nginx version -n dev pod/nginx labeled

4. Controllers

PControllers的作用是控制Pod,使Pod拥有多副本,自愈,扩缩容等能力
在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。

简单介绍4种

  1. Deployment: 无状态应用部署,比如微服务,提供多副本等功能
  2. StatefulSet:有状态应用部署,比如redis,提供稳定的存储,网络等功能
  3. DaemonSet:守护型应用部署,比如日志收集组件,在每个机器都运行一份
  4. Job/CronJob:定时任务部署,比如垃圾清理组件,可以在指定时间运行
# 1、pod控制器多副本创建pod
kubectl create deployment my-dep --image=nginx --replicas=3
# 2、扩缩容
kubectl scale --replicas=5 deployment/my-dep
# 3、滚动更新
kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record
kubectl rollout status deployment/my-dep

# 4、版本回退
# 4.1、历史记录
kubectl rollout history deployment/my-dep
# 4.2、查看某个历史详情
kubectl rollout history deployment/my-dep --revision=2
# 4.3、回滚(回到上次)
kubectl rollout undo deployment/my-dep
# 4.4、回滚(回到指定版本)
kubectl rollout undo deployment/my-dep --to-revision=2

5.Service

  • 在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。

  • 为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址。通过访问Service的入口地址就能访问到后面的pod服务。

5.1 ClusterIP 集群内部可以访问

# 1、暴露deploy
kubectl expose deployment my-dep --port=8000 --target-port=80 --type=ClusterIP
# 2、使用标签检索pod
kubectl get pod -l app=my-dep
# 3、查看service
kubectl get svc

5.2 NodePort 集群外部可以访问

kubectl expose deployment my-dep --port=8000 --target-port=80 --type=NodePort

二、进阶命令

1. 生成新令牌

kubeadm token create --print-join-command
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值