k8s相关

POD

  • 创建一个pod
kubectl create -f nginx.yml
  • 查看pod
kubectl get pod

$ kubectl get pods
NAME           READY   STATUS    RESTARTS   AGE
nginx          1/1     Running   0          40s

kubectl describe po nginx
  • 删除容器
kubectl delete po nginx  删除指定的pod
kubectl delete po --all   删除所有的Pod

LivenessProbe

存活探针,有HTTPS/HTTP,有SCOKET,有TCP SCOKET

Label

为POD打上标签,用于分类区别

Namespace:资源分组

Kubernetes提供了Namespace来做资源组织和划分,使用多Namespace可以将包含很多组件的系统分成不同的组。Namespace也可以用来做多租户划分,这样多个团队可以共用一个集群,使用的资源用Namespace划分开。

通过如下命令可以查询到当前集群下的Namespace。

$ kubectl get ns

NAME               STATUS   AGE
default            Active   36m
kube-node-realease Active   36m
kube-public        Active   36m
kube-system        Active   36m

默认情况下,我们都是在default Namespace下操作,当使用kubectl get而不指定Namespace时,默认为default Namespace。

看下kube-system下面有些什么东西。

$ kubectl get po --namespace=kube-system
NAME                                      READY   STATUS    RESTARTS   AGE
coredns-7689f8bdf-295rk                   1/1     Running   0          9m11s
coredns-7689f8bdf-h7n68                   1/1     Running   0          11m
everest-csi-controller-6d796fb9c5-v22df   2/2     Running   0          9m11s
everest-csi-driver-snzrr                  1/1     Running   0          12m
everest-csi-driver-ttj28                  1/1     Running   0          12m
everest-csi-driver-wtrk6                  1/1     Running   0          12m
icagent-2kz8g                             1/1     Running   0          12m
icagent-hjz4h                             1/1     Running   0          12m
icagent-m4bbl                             1/1     Running   0          12m

  • 创建Namespace
    使用如下方式定义Namespace。
apiVersion: v1 
kind: Namespace 
metadata: 
  name: custom-namespace

使用kubectl命令创建。

$ kubectl create -f custom-namespace.yaml
namespace/custom-namespace created

还可以使用kubectl create namespace命令创建。

$ kubectl create namespace custom-namespace 
namespace/custom-namespace created

在指定Namespace下创建资源。

$ kubectl create -f nginx.yaml -n custom-namespace

pod/nginx created

这样在default和custom-namespace下,就分别有一个名为nginx的Pod。

POD的编排和调度 Deployment

在Pod:Kubernetes中的最小调度对象这个章节介绍了Pod,Pod是Kubernetes创建或部署的最小单位,但是Pod是被设计为相对短暂的一次性实体,Pod可以被驱逐(当节点资源不足时)、随着集群的节点崩溃而消失。Kubernetes提供了Controller(控制器)来管理Pod,Controller可以创建和管理多个Pod,提供副本管理、滚动升级和自愈能力,其中最为常用的就是Deployment。

  • Deployment如何控制Pod

如果删掉一个Pod,您会发现立马会有一个新的Pod被创建出来,如下所示,这就是前面所说的Deployment会确保有2个Pod(创建的时候配置的)在运行,如果删掉一个,Deployment会重新创建一个,如果某个Pod故障或有其他问题,Deployment会自动拉起这个Pod。

$ kubectl delete pod nginx-7f98958cdf-txckx

$ kubectl get pods
NAME                     READY     STATUS    RESTARTS   AGE
nginx-7f98958cdf-tdmqk   1/1       Running   0          21s
nginx-7f98958cdf-tesqr   1/1       Running   0          21s

通过如下命令可以查询ReplicaSet,其中rs是ReplicaSet的缩写

$ kubectl get rs
NAME               DESIRED   CURRENT   READY     AGE
nginx-7f98958cdf   2         2         2         1m

Deployment是通过一种名为ReplicaSet的控制器控制Pod,通过如下命令可以查询ReplicaSet,其中rs是ReplicaSet的缩写。

StatefulSet

亲和和反亲和

# k8s 

评论

渣男 : 456
三群的弟弟 : 123
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×