[ k8s-006 ] 运行应用(1)

122 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第6天,点击查看活动详情

Kubernetes通过各种Controller来管理Pod的生命周期。为了满足各种不同使用场景,Kubernetes开发了Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job等多种Controller

通过Kubectl连接Kubernetes集群

类似openssh是通过.ssh文件夹来记录ssh相关信息,k8s中是通过.kube文件夹来记录cluster相关信息。我们如果需要远程访问,直接进行拷贝即可

kubectl config view

cat ~/.kube/config

KUBECONFIG=~/.kube/config:~/.kube/config.183 kubectl config view --merge --flatten > ~/.kube/config

export KUBECONFIG=~/.kube/config

Deployment

运行Deployment

通过以下命令,可以将一个deployment运行起来

kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=2

kubectl create deployment nginx-deployment --image=nginx:1.7.9 --replicas=2

kubectl describe deployment kubernetes-bootcamp

Events是用于记录Deployment的日志,也就是将ReplicaSet的启动过程进行了记录。通过上面的例子,可以知道Deployment是通过ReplicaSet来管理Pod

kubectl get replicaset

kubectl describe replicaset kubernetes-bootcamp-123456789

Controlled By这里说明当前ReplicaSet是由Deployment nginx-deployment来创建的

kubectl describe pod kubernetes-bootcamp-123456789-12345

Controlled By这里说明当Pod是由ReplicaSet nginx-deployment-123456789来创建的。跟上面类似Pod的启动过程由Events来记录。比如image不存在导致操作失败,在这个地方也能查到原因。

过程如下

(1)通过kubectl创建Deployment。

(2)通过Deployment创建ReplicaSet。

(3)通过ReplicaSet创建Pod。

Kubernetes支持两种创建资源的方式

(1)使用kubectl命令创建,比如“kubectl run nginx-deployment --image=nginx:1.7.9--replicas=2”,同时通过参数来指定我们需要资源的属性。

(2)通过配置文件和kubectl apply创建。可执行命令“kubectl apply -fnginx.yml”

总结

下面对这两种方式进行比较

(1)基于命令的方式:简单、直观、快捷

(2)基于配置文件的方式:配置文件支持创建资源的template,也能够重复部署。类似代码管理。在生产环境试用较多。我们大多数会采用配置文件的方式

Kubernets还提供了其它的几个命令,比方说kubectl create、kubectl replace、kubectl edit和kubectl patch。为避免产生误导,本文尽量只使用kubectl apply,这个命令已经能够应对大多数场景,用起来更加方便。