K8s核心概念-命令式和声明式命令

Pod

统计pod的数量

 kubectl get pods

创建一个nginx的镜像

 kubectl run nginx --image=nginx

生成一个yaml文件但是不创建镜像

kubectl run nginx --image=nginx --dry-run=client -o yaml

运行redis123的pod

 kubectl run redis --image=redis123 --dry-run=client -o yaml > redis-definition.yaml

创建redis-definition.yaml的pod

kubectl create -f redis-definition.yaml

ReplicaSets

获取replicaset的信息

kubectl get replicaset
OR
controlplane ~ ➜  kubectl get rs
NAME                             DESIRED   CURRENT   READY   AGE
frontend-deployment-577494fd6f   4         4         0       2m9s

replicaset的详细信息

kubectl describe replicaset new-replca-set

获取replicaset中pod是的详细信息

kubectl describe pod new-replica-set-xxxx

删除replicaset

kubectl delete rs replicaset-x

复制新的副本集

kubectl edit rs new-replca-set

Deployment

查看部署的数量

kubectl get deployment
OR
controlplane ~ ➜  kubectl get deploy
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
frontend-deployment   0/4     4            0           18s

查看部署的详细信息

kubectl describe deploy

创建nginx的部署

kubectl create deployment --image=nginx nginx

生成一个yaml文件但是不创建部署

kubectl create deployment --image=nginx nginx --dry-run=client -o yaml

生成一个yaml文件但是不创建部署并将它保存到文件中

kubectl create deployment --image=nginx nginx --dry-run=client -o yaml > nginx-deployment.yaml

添加副本然后创建部署

kubectl create -f nginx-deployment.yaml

在 k8s 版本 1.19+ 中,指定--replicas创建4个副本的部署

kubectl create deployment --image=nginx nginx --replicas=4 --dry-run=client -o yaml > nginx-deployment.yaml

Service

查看service的数量

kubectl get svc
OR
controlplane ~ ➜  kubectl get service
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.43.0.1    <none>        443/TCP   37m

查看service的详细信息

kubectl describe service

创建yaml服务

kubectl apply -f service-definition-1.yaml

Namespace

获取namespace的数量

kubectl get namespace
OR 
kubectl get ns

显示namespace的pod数量

kubectl get pod --namespace=research
OR
kubectl get pod -n=research

在 finance 命名空间中创建 POD

kubectl run redis --image=redis -n=finance

获取包含 blue 这个pod的namespace

kubectl get pods --all-namespaces | grep blue
OR
kubectl get pods -A | grep blue

创建一个名为 dev-ns 的 namespace

kubectl create ns dev-ns

创建一个服务 redis-service 以在端口 6379 上公开集群中的 redis 应用程序。

kubectl expose pod redis --port=6379 --name redis-service

使用 redis 映像 redis-deploy 在 dev-ns 命名空间中创建一个名为的新部署,且包含两个副本

kubectl create deployment redis-deploy --image=redis --replicas=2 -n dev-ns

使用默认命名空间中的映像 httpd:alpine 创建一个 httpd Pod。接下来,创建一个同名类型的 ClusterIP 服务 (httpd) 。服务的目标端口应为 80 。

kubectl run httpd --image=httpd:alpine --port=80 --expose

官方

Pod

生成 POD 清单 YAML 文件 (-o yaml)。不要创建它(--dry-run)

kubectl run nginx --image=nginx --dry-run=client -o yaml

Deployment

生成部署 YAML 文件 (-o yaml)。不要创建它(--dry-run)

kubectl create deployment --image=nginx nginx --dry-run=client -o yaml

生成具有 4 个副本的部署

kubectl create deployment nginx --image=nginx --replicas=4

还可以使用 kubectl scale 命令扩展部署

kubectl scale deployment nginx --replicas=4

另一种方法是将 YAML 定义保存到文件中并修改

kubectl create deployment nginx --image=nginx --dry-run=client -o yaml > nginx-deployment.yaml

然后,您可以在创建部署之前使用副本或任何其他字段更新 YAML 文件。

Service

创建一个名为 redis-service 的 ClusterIP 类型的服务,以在端口 6379 上公开 pod redis

kubectl expose pod redis --port=6379 --name redis-service --dry-run=client -o yaml

OR

kubectl create service clusterip redis --tcp=6379:6379 --dry-run=client -o yaml

(这不会使用 pod 标签作为选择器,而是将选择器假定为 app=redis。不能将选择器作为选项传入。因此,如果您的 Pod 具有不同的标签集,则效果不佳。因此,在创建服务之前生成文件并修改选择器)

创建一个名为 nginx 的 NodePort 类型的服务,以在节点上的端口 30080 上公开 pod nginx 的端口 80

kubectl expose pod nginx --type=NodePort --port=80 --name=nginx-service --dry-run=client -o yaml

OR

kubectl create service nodeport nginx --tcp=80:80 --node-port=30080 --dry-run=client -o yaml

(这不会使用 pod 标签作为选择器)

上述两个命令都有自己的挑战。虽然其中一个不能接受选择器,但另一个不能接受节点端口。我建议使用kubectl expose命令。如果需要指定节点端口,请使用相同的命令生成定义文件,并在创建服务之前手动输入节点端口。

kubectl apply

  • 自己写的yaml文件会自动转换成json格式的文件
  • kubectl apply 会对本地的yaml文件、最后一次执行的配置JSON文件和实时对象配置文件进行对比,本地的yaml文件更新后也会同时更新其他两个配置文件

参考

Kubectl Reference Docs

kubectl Usage Conventions | Kubernetes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值