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文件更新后也会同时更新其他两个配置文件