kubernetes 初学命令

基础命令

kubectl

1. kubetcl get

#查看node节点状态

kubectl get nodes

#查看pods节点状态

kubectl get pods

2.kubectl run

#kubectl run 命令在 pod 中创建并运行特定的镜像

kubectl run nginx --image=nginx --port 80

3.kubectl describe

#看到pod 的详情

kubectl describe pod nginx

4. kubectl delete

#kubectl delete 删除pod

kubectl delete pod nginx

5.kubectl create/apply

kubectl create/apply 命令基于给定的配置文件。该配置文件具有以下特点:

  1. 配置文件描述了应用程序最终将达到的 Whatstate 。
  2. 配置文件提供创建资源的模板,可以重复部署。
  3. 部署可以像代码一样进行管理。
  4. 适用于正式的、跨环境的、大规模的部署。
  5. 需要熟悉配置文件的语法才能使用此方法。

vim nginx-deployment.yaml

复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

#创建pods

kubectl create -f nginx-deployment.yaml

#删除pods

kubectl delete -f nginx-deployment.yaml

root@k8s-master \~# kubectl apply -f nginx-deployment.yaml

deployment.apps/nginx created

root@k8s-master \~# kubectl get pods

NAME READY STATUS RESTARTS AGE

nginx-d46f5678b-tljff 1/1 Running 0 20s

root@k8s-master \~# kubectl delete -f nginx-deployment.yaml

deployment.apps "nginx" deleted

create 和 apply 之间的区别。

在 kubectl create 命令中,我们指定了一个特定行为,也就是 create ,因此它

是一种更具命令式的方法。

在 kubectl apply 命令中,我们指定系统的目标状态,而不指定一个特定的行为

6.kubectl get pod nginx -o yaml

#查看某个pod,以yaml格式展示结果

7.kubectl get cs

#查看健康状态

kubectl get cs

8.kubectl get namespace

也可指定查看某个命名空间

9.kubectl get namespace default

10.kubectl get all --namespace=kube-system

#用于在 kube-system 命名空间中获取所有资源的详细信息。

kubectl create namespace ns1

kubectl delete namespace ns1

10.kubectl get pods -o wide

#查看pod 详情 以及对应的集群IP地址

namespace

#创建一个namespace

kubectl create namespace namepase-test

#查看namespace

kubectl get namespace

#查看namespace ns

kubectl get ns

#删除namespace

kubectl delete namespace namepase-test

pod

#创建pod

kubectl run nginx --image=nginx:1.17.1 --port=80

#访问pod

kubectl get pod -o wide

url http://10.244.1.14

Label

kubectl run nginx --image=nginx:1.17.1 --port=80

#给pod打标签

kubectl label pod nginx version=1.0
#查看pod的标签

kubectl get pods --show-labels

#更新pod的标签

kubectl label pod nginx version=2.0 --overwrite

#筛选pod的标签

kubectl get pod -l version=2.0 --show-labels

#删除pod标签

kubectl label pod nginx version-

version- 表示删除标签 version

deployment

#创建namespace

kubectl delete ns dev

#删除namespace

kubectl create ns dev

#创建deployment 名称叫nginx

kubectl create deployment nginx --image=nginx:1.17.1 -n dev

#查看deploymet -n指的是在dev 的名称空间下看

kubectl get deployment -n dev

#删除deployment

kubectl delete deploy nginx -n dev

#查看dev 下的deployment和pod,pod随着deployment 删除

kubectl get deployment,pod -n dev

  • deployment nginx:指定要调整的资源类型(deployment)和资源名称(nginx)。

  • --replicas=4:指定目标副本数,这里是 4

  • 修改其deployment的副本数实现删除

kubectl scale deployment nginx --replicas=4

kubectl scale --replicas=0 deployment nginx

server

kubectl scale deployment nginx --replicas=3

kubectl get pod -o wide

kubectl delete pod nginx-59975f44cf-8vsg4

kubectl get pod -o wide

demo1 集群内部访问type=ClusterIP

#暴露端口 type=ClusterIP 这个IP只能集群内部访问 如果需要外部 type=NodePort

kubectl expose deployment nginx --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80

#获取service 信息

kubectl get service

#获取service信息 svc 简写

kubectl get svc

#访问集群IP

curl 10.107.19.254

demo集群外部访问type=NodePort

#集群外部访问

kubectl expose deployment nginx --name=svc-nginx2 --type=NodePort --port=80 --target-port=80

#查看service 注意post 中的32432对应的就是master的端口

kubectl get service

#删除service

kubectl delete service svc-nginx1

相关推荐
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS4 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun5 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
赵文宇(温玉)5 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang5 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
忆~遂愿5 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Thneonl5 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、5 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove5 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21