K8s常用命令

namespace

#创建namespace
kubectl apply -f ns-test.yaml
apiVersion: v1
kind: Namespace
metadata:
 name: ns-test

#查看
kubectl get ns
#删除namespace
kubectl delete namespace ns-test 

#k8s中几乎所有的资源都可以通这YAML编排来创建
可以使用kubectl edit 资源类型 资源名编辑资源的YAML语法
kubectl edit namespace ns1

也可使用kubectl get 资源类型 资源名 -o yaml来查看
kubectl get ns ns1 -o yaml

查看namespace pods

kubectl get pods -n mall-pre [-o wide]

Deployment

创建Deployment

# 方式一:使用命令创建
kubectl create deployment deployment名称 --image=镜像地址 -n ns-test
# 方式二:基于命令
kubectl apply -f deployment-nginx.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
 labels:
  app: nginx
 name: nginx-deployment
 namespace: ns-test
spec:
 replicas: 1
 selector:
  matchLabels:
   app: nginx
 template:
  metadata:
   labels:
     app: nginx
  spec:
   containers:
   - image: 'daocloud.io/library/nginx:1.9.1'
     name: nginx
     ports:
     - containerPort: 80

删除Deployment

kubectl delete deployment deployment名称

Service

查看service

kubectl get svc -n mall-pre [-o wide] 

删除service

kubectl delete service nginx-deployment -n ns-test

绑定Deployment(暴露内部访问)

kubectl expose deployment deployment名称 --port=暴露的端口 --target-port=目标端口 -n 命名空间
# example
kubectl expose deployment deployment名称 --port=8888 --target-port=80 -n ns-test
# 访问方式一:然后可以通过serviceIp+端口号进行内部访问
curl 10.97.99.60:8888
# 访问方式二:curl deployment名称:命名空间:service:暴露的端口
curl nginx-deployment.ns-test.service:8888

绑定Deployment(暴露外部访问) --type=NodePort

kubectl expose deployment deployment名称 --port=暴露的端口 --target-port=目标端口 -n 命名空间 --type=NodePort
# example
kubectl expose deployment deployment名称 --port=8888 --target-port=80 -n ns-test --type=NodePort
# 访问方式一:然后可以通过serviceIp+端口号进行内部访问
curl 10.109.238.248:8888
# 访问方式二:curl deployment名称:命名空间:service:暴露的端口
curl nginx-deployment.ns-test.service:8888
# 访问方式三(外部访问)
curl 10.109.238.248:32232

通过yaml文件创建Service

apiVersion: apps/v1
kind: Deployment
metadata:
 labels:
  app: nginx
 name: nginx-deployment
 namespace: ns-test
spec:
 replicas: 1
 selector:
  matchLabels:
   app: nginx
 template:
  metadata:
   labels:
     app: nginx
  spec:
   containers:
   - image: 'daocloud.io/library/nginx:1.9.1'
     name: nginx
     ports:
     - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
 namespace: ns-test
 name: nginx-service
 labels:
  app: nginx-deployment
spec:
 selector:
  app: nginx
 ports:
 - port: 8888
   targetPort: 80
 type: NodePort

Pod

查看pod日志

kubectl -n {namespace} logs -f {podName} --tail 10

重启pod

#方式一:使用yaml
kubectl replace --force -f xxxx.yaml -n mall-sit
#方式二:设置pod数量
kubectl scale deployment order-service --replicas=0 -n mall-sit
kubectl scale deployment order-service --replicas=1 -n mall-sit

查看pod(组件)详细信息

kubectl describe pod nginx

删除Pod

# 这种可以删除使用kubectl run 运行的pod,不能删除使用yaml文件运行的pod
kubectl delete pod nginx -n default
# 删除使用yaml文件运行的pod
kubectl delete -f yaml文件名

根据镜像启动pod

kubectl run nginx --image=daocloud.io/library/nginx:1.12.0-alpine -n ns-test

进入pod内部

kubectl exec -it pod名称 -- bash -n ns-test

如果这篇文章帮助到了你,请帮忙点赞 + 收藏哦!!!

你可能感兴趣的:(k8s常用命令)