K8s常用命令
namespace#创建namespacekubectl apply -f ns-test.yamlapiVersion: v1kind: Namespacemetadata:name: ns-test#查看kubectl get ns#删除namespacekubectl delete namespace ns-test#k8s中几乎所有的资源都可以通这YAML编排来创建可以使用kubectl
·
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
如果这篇文章帮助到了你,请帮忙点赞 + 收藏哦!!!
更多推荐
所有评论(0)