首页 > 其他分享 >Kubernetes(K8S) 常用命令

Kubernetes(K8S) 常用命令

时间:2022-12-23 10:06:02浏览次数:48  
标签:kubectl Kubernetes -- deployment k8smaster 常用命令 K8S root javademo1

Docker 常用命令

​​Docker 常用命令​​

# 查看API版本
[root@k8smaster ~]# kubectl api-versions
# 重启 K8S
[root@k8smaster ~]# systemctl restart kubelet
# 查看 kubelet 状态
[root@k8smaster ~]# systemctl status kubelet
# 重启 POD kubectl rollout restart deployment <deployment-name> -n <namespace>
[root@k8smaster ~]# kubectl rollout restart deployment javademo1 -n default
# 查看节点资源,需要安装metrics-server
[root@k8smaster ~]# kubectl top node
# 查看 Pod 在节点上的资源分配情况
[root@k8smaster ~]# kubectl describe node
# 查看 Pod 资源使用情况
[root@k8smaster ~]# kubectl top pod -A
# 查看 所有 secret
[root@k8smaster ~]# kubectl get secret -A
# 查看 secret 明细
[root@k8smaster ~]# kubectl describe secret -A
# 创建 secret
[root@k8smaster ~]# kubectl create secret docker-registry registry-vipsoft-shanghai \
--namespace=default \
--docker-server=registry.cn-shanghai.aliyuncs.com \
--docker-username=vipsoft \
--docker-password=123456 \
[email protected]
# 删除 secret
[root@k8smaster ~]# kubectl delete secret registry-vipsoft-shanghai -n namespace

# 弹性伸缩 创建 3 个副本
[root@k8smaster ~]# kubectl scale deployment javademo1 --replicas=3
# 查看 node3的详情
[root@k8smaster ~]# kubectl describe nodes k8snode3
# 给node打标签
[root@k8smaster ~]# kubectl label node k8snode1 env_role=dev
# 查看 node 标签
[root@k8smaster ~]# kubectl get nodes k8snode1 --show-labels

# 查看当前节点的污点
[root@k8smaster ~]# kubectl describe node k8snode3 | grep Taint
# 添加污点 kubectl taint node 节点名称 key=value:污点值-
[root@k8smaster ~]# kubectl taint node k8snode1 key=value:NoSchedule
# 删除污点 kubectl taint node 节点名称 key=value:污点值-
[root@k8smaster ~]# kubectl taint node k8snode1 env_role:NoSchedule-
# 删除  svc
[root@k8smaster ~]# kubectl delete svc nginx
# 删除 svc
[root@k8smaster ~]# kubectl delete statefulset --all
# 创建命名空间
[root@k8smaster ~]# kubectl create ns vipsoft-dev
# 看所有Pod都在哪些节点上运行
[root@k8smaster ~]# kubectl get pod -A -o yaml |grep '^ n'|grep -v nodeSelector|awk 'NR%3==1{print ++n"\n"$0;next}1'

创建 Deployment

# 创建 POD
[root@k8smaster ~]# kubectl create -f xx.yaml
[root@k8smaster ~]# kubectl apply -f xx.yaml
# 如果yaml文件中的kind值为deployment,那么上面这两个命令都可以创建一个deployment,生成相应数量的pod
区别:
kubectl create:
(1)kubectl create命令,是先删除所有现有的东西,重新根据yaml文件生成新的。所以要求yaml文件中的配置必须是完整的
(2)kubectl create命令,用同一个yaml 文件执行替换replace命令,将会不成功,fail掉。
kubectl apply:
kubectl apply 命令,根据配置文件里面列出来的内容,升级现有的。所以yaml文件的内容可以只写需要升级的属性

# 删除 Pod nfs-nginx.yaml
[root@k8smaster ~]# kubectl delete -f nfs-nginx.yaml
# 查看 pod 的日志 并 持续打印
[root@k8smaster ~]# kubectl logs -f --tail=200 pods/podname -n namespace
# 进到容器
[root@k8smaster ~]# kubectl exec -it nginx-pvc-58b7bf955f-5clzg bash
# 查看 K8S 配置
[root@k8smaster ~]# cat $HOME/.kube/config
# 查看 pods 情况
[root@k8smaster ~]# kubectl get pods -n kube-system
# 查看 nodes 情况
[root@k8smaster ~]# kubectl get nodes
# 删除 nodes
[root@k8smaster ~]# kubectl drain centos-7-56 --delete-local-data --force --ignore-daemonsets node/centos-7-56 cordoned
# 查看default 命名空间下的 pod 状态
[root@k8smaster ~]# kubectl get pods
# 查看所有命名空间下的 pod
[root@k8smaster ~]# kubectl get pods -A
# 查看 pod,排除 default 命名空间
[root@k8smaster ~]# kubectl get pod -A |grep -v default
# 查看所有 javademo1 的 pod 的详情
[root@k8smaster ~]# kubectl describe pod javademo1
# 对外暴露 80 端口
[root@k8smaster ~]# kubectl expose deployment nginx --port=80 --type=NodePort

[root@k8smaster ~]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/javademo1-d7856c75c-czv2g 1/1 Running 0 152m
pod/javademo1-d7856c75c-n28rs 1/1 Running 0 151m
pod/javademo1-d7856c75c-xzqjc 1/1 Running 0 151m
pod/nginx-f89759699-5hkdw 1/1 Running 0 26d

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/javademo1 NodePort 10.106.43.46 <none> 8111:31452/TCP 20d
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 26d
service/nginx NodePort 10.103.87.81 <none> 80:30339/TCP 26d
[root@k8smaster ~]# kubectl get pods -n ingress-nginx -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-ingress-controller-5cb8688798-gspq4 1/1 Running 0 18h 10.244.2.39 k8snode2 <none> <none>
[root@k8smaster ~]# kubectl describe svc javademo1
Name: javademo1
Namespace: default
Labels: app=javademo1
Annotations: <none>
Selector: app=javademo1
Type: NodePort
IP: 10.106.43.46
Port: <unset> 8111/TCP
TargetPort: 8111/TCP
NodePort: <unset> 31452/TCP
Endpoints: 10.244.1.31:8111,10.244.1.32:8111,10.244.2.38:8111
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
[root@k8smaster ~]#

# 查看创建的 Deployment 对象
[root@k8smaster ~]# kubectl get deployments
# 查看 Deployeement 详情
[root@k8smaster ~]# kubectl describe deployment/javademo1
# 查看 Deployment 上线状态
[root@k8smaster ~]# kubectl rollout status deployment/javademo1

# 查看 Deployment 对象创建的 ReplicaSet:
[root@k8smaster ~]# kubectl get rs

# 查看 Deployment 对象操作 ReplicaSet 创建的 Pod,并显示生成的标签:
[root@k8smaster ~]# kubectl get pods --show-labels

#查看当前运行的 Pod
[root@k8smaster ~]# kubectl get pods
# 查看当前证书到期时间
[root@k8smaster ~]# kubeadm alpha certs check-expiration

# 初次创建,生成 yaml 文件 --dry-run,减少编写量,避免出错
[root@k8smaster ~]# kubectl create deployment javademo1 --image=registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:1.0.0 --dry-run -o yaml > javademo1.yaml
# 已部署的,导出 yaml 文件
[root@k8smaster ~]# kubectl get deployment javademo1 -o yaml > javademo2.yaml

升级

# kubectl describe deployment/javademo1
# 查看 Deployeement 详情 里可以看到 Containers 内容
# Containers:
# vipsoft:
# Image: registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:1.0
# 设置vipsoft容器中的镜像,镜像版本变了,就会触发重新拉取动作
[root@k8smaster ~]# kubectl set image deployment/javademo1 vipsoft=registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:2.0
deployment.apps/javademo1 image updated
# 查看状态
[root@k8smaster ~]# kubectl rollout status deployment/javademo1
deployment "javademo1" successfully rolled out

# 修改 yaml 文件,直接更新版本号
[root@k8smaster ~]# kubectl edit deployment/javademo1

回滚

# 查看 Deployment 部署历史, CHANGE-CAUSE 里没有值,需要在创建 Deployment 时,使用 --record 参数,就可以在 CHANGE-CAUSE 列看到每个版本使用的命令了
[root@k8smaster ~]# kubectl rollout history deployment/javademo1
# 查看版本 2 的信息:
[root@k8smaster ~]# kubectl rollout history deployment/javademo1 --revision=2
# 这边没加参加,回滚到上一个版本
[root@k8smaster ~]# kubectl rollout undo deployment/javademo1
# 加上参数,回滚到指定版本
[root@k8smaster ~]# kubeetl rollout undo deployment/javademo1 --to-revision=2
# 查看 Deployeement 详情
[root@k8smaster ~]# kubectl describe deployment/javademo1



标签:kubectl,Kubernetes,--,deployment,k8smaster,常用命令,K8S,root,javademo1
From: https://blog.51cto.com/u_15116285/5964869

相关文章

  • Kubernetes(K8S) 配置静态资源服务
    Kubernetes(K8S)配置静态资源服务---apiVersion:v1kind:ConfigMapmetadata:name:img-confignamespace:vipsoftdata:img.conf:|server{charsetutf-......
  • Kubernetes(K8S) kubectl top (metrics-server) node NotFound
    kubectltop命令安装metrics-servercomponents.yaml网上的各种方法都有问题,找到了一个完整版的yamlapiVersion:v1kind:ServiceAccountmetadata:labels:k8s-app......
  • MySQL的一些常用命令
    mysql创建用户:createuser‘用户名’@‘%’identifiedby'密码';   #'%'表示所有地址都可以访问flushprivileges;   #刷新权限grantallon......
  • 每天一点基础K8S--K8S中的常用存储方案--emptyDir、hostPath、NFS
    这几天阳了,坐一会儿就腰痛K8S中的常用存储方案背景因为K8S的POD运行了最终的业务,而pod在控制器的管理下可能会出现重建,重建的pod是镜像的新实例,如果一些重要配置文件或......
  • Linux 常用命令总结
    Linux常用命令总结作者:Grey原文地址:博客园:Linux常用命令总结CSDN:Linux常用命令总结本文基于的Linux环境是CentOS7,主要是日常使用的一些命令,持续更新中……......
  • 004k8s pods volumes和pod的对应关系查询
    一、背景如二、描述所示pods频繁地重启,导致听云的探针收集规则文件占用大量的空间,需要查询"063915dd-c5b8-4137-9e9c-119488992b56"对应的是哪个pod听云data下存储的......
  • k8s域名解析错误:pod中/etc/reslove.conf中nameserver和kube-dns中ip不一致
    问题:k8s集群中,某台node节点上,dns解析失败,进入pod中查看/etc/reslove.conf中nameserver和kube-dns不一致,如图: pod中如下:   kube-dns如下:   造成这种......
  • centos安装k8s
    1、确保每台机器上有dockerhttp://get.daocloud.io/#install-docker2、关闭每台机器上的swap,selinuxswapoff-asetenforce0sed-i's/^SELINUX=enforcing$/SELINU......
  • centos安装k8s注意点
    安装方法,参考https://blog.csdn.net/frankgy01/article/details/127936367 https://www.cnblogs.com/yangzp/p/16932270.htmlhttps://blog.csdn.net/qq_40279964/artic......
  • Git的常用命令
    Git基础操作:本地分支与远程master保持同步:​1.先将本地的master拉到最新`gitcheckoutmaster`​gitpull使dev分支保持同步gitcheckoutdevgit......