本文主要介绍一些常用的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/

发表评论

电子邮件地址不会被公开。