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/