Kubernetes-常用命令
本文主要介绍一些常用的k8s命令
且持续更新
<resource>=nodes、pods、service、deployment等
一、查看资源
#查看所有资源的简要信息
kubectl get <resource>
#查看所有资源的详细信息
kubectl get <resource> -o wide
#查看所有资源的详细信息(含namespaces)
kubectl get <resource> --all-namespaces -o wide
二、查看具体某个资源的详细信息
kubectl describe <resource> <resource-name>
三、简单的发布一个应用
通常情况下,使用的是定义一个yaml格式的文件创建deployments
如:kubectl create -f ***.yaml
kubectl create deployment <deploymentName> --image=<image-name>
四、删除资源
kubectl delete <resource> <resource-name>
五、服务扩(缩)容
kubectl scale deployment/<deploymentName> --replicas=3
六、服务滚动更新
kubectl set image deployments/<deploymentName> imageName=<imageName>:<imageVersion>
七、关于k8s yaml文件定义的例子
通过yaml文件创建资源:kubectl create -f ***.yaml
通过yaml文件替换资源:kubectl replace -f ***.yaml
1)、定义一个Deployments
apiVersion: extensions/v1beta1 #确定apiVersion
kind: Deployment #确定类型
metadata:
name: mysql #deployment的名称,全局唯一
spec:
replicas: 2 #Pod副本期待数量
selector:
matchLabels:
app: mysql #符合目标的Pod拥有次标签
matchExpressions:
- {key: release, operator: In, values: [stable]}
template: #根据此模版创建pod副本实例
metadata:
name: mysql
labels:
app: mysql #Pod副本定义标签
release: stable #Pod副本定义标签
spec:
containers: #Pod内容器的定义部分
- name: mysql
image: mysql:5.7.26
imagePullPolicy: IfNotPresent #只有当本地没有才拉取镜像
ports:
- containerPort: 3306 #容器应用监听的端口号
env: #注入容器内的环境变量
- name: MYSQL_ROOT_PASSWORD
value: "pwd"
resources:
requests:
memory: "256Mi" #定义mysql容器申请最少0.2个cpu以及256MiB内存
cpu: "200m"
limits:
memory: "512Mi" #定义mysql容器最大允许使用的量
cpu: "400m"
2)、定义一个Service
apiVersion: v1 kind: Service metadata: name: mysqlsvc #service全局唯一名称 spec: ports: - port: 3306 #service提供服务的端口号 selector: app: mysql #对应pod定义的标签名,确认哪些pod副本实例对应本服务
3)、官方地址
更多关于k8s的内容可以参考官方文档地址:
https://kubernetes.io/zh/docs/