k8s操作简单入门

一、k8s操作的三种方式简介

  • 使用kubectl + 命令操作,例如:
kubectl run nginx --image=nginx:latest --port=80
这种方式简单灵活,但无法审计和跟踪对象,通常用于测试环境
  • 使用kubectl + 命令 + yaml操作,例如:
kubectl create -f nginx.yaml
这种方式可以跟踪和审计,但项目大时操作繁琐,一般用于开发环境
  • 使用kubectl + apply + yaml操作,例如:
kubectl apply -f nginx.yaml
这种方式支持按目录批量操作,但很难调试,适合大项目批量部署

二、namespace的简单操作

  • namespace就是用来划分不同的区域,不同区域中的pod相互隔离(pod可以先理解为docker的容器)

1.查看namespace

kubectl get ns

Kubernetes怎么重启 kubernetes怎么用_docker

2.创建一个namespace,例如test。命令中的namespace可简写为ns

kubectl create namespace test

Kubernetes怎么重启 kubernetes怎么用_Kubernetes怎么重启_02

3.删除一个namespace,此时namespace中的pod也会被删除

kubectl delete ns test

Kubernetes怎么重启 kubernetes怎么用_容器_03

4.使用yaml方式进行上面的三个操作

首先书写ns-test.yaml,内容如下:

apiVersion: v1
kind: Namespace
metadata:
  name: test

Kubernetes怎么重启 kubernetes怎么用_nginx_04


1.创建namespace

kubecel create -f ns-test.yaml

或者

kubectl apply -f ns-test.yaml

Kubernetes怎么重启 kubernetes怎么用_容器_05


2.删除namespace

kubectl delete -f ns-test.yaml

Kubernetes怎么重启 kubernetes怎么用_容器_06

三、pod的简单操作

  • Docker中使用镜像创建容器运行。在k8s中,使用镜像创建pod运行,所有容器都称之为pod

1.创建一个pod,例如nginx

kubectl run pod --image=nginx:latest -n test
  • 注意,-n参数是指定namespace,即将容器创建在哪个namespace中。若不指定,则创建在名为default的namespace中。

2.查看pod

kubectl get pod -n test

Kubernetes怎么重启 kubernetes怎么用_Kubernetes怎么重启_07

3.删除pod

  • 注意,pod-644584df94-nl6mq是上面查到的pod名称
kubectl delete pod pod-644584df94-nl6mq -n test
 删除 test 中,名为 pod-644584df94-nl6mq 的 pod

Kubernetes怎么重启 kubernetes怎么用_容器_08

  • 小插曲:此时再查询pod,会发现还能查询到nginx的pod,但是仔细看,会发现这个pod的名字已经和之前不同了,这就是k8s强大的地方之一。它发现pod被删掉了,就会马上启动一个同样的pod来代替之前的pod,以保证服务继续运行

4.使用yaml方式进行上面的三个操作

1.编写pod-nginx.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: test

---

apiVsersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: test
spec:
  containers:
  - name: nginx-pod
    image: nginx:latest
  • yaml分为两部分,上面就是namespace的部分,下面就是nginx的pod基本信息了。namespace部分这里不要也可以。
  • 注意:因为这个yaml中包含namespace的配置,所以创建时,若没有这个namespace,就会创建namespace。同理,使用yaml执行删除操作时,会同时删除这个namespace

2.创建

kubectl create -f pod-nginx.yaml

或者

kubectl apply -f pod-nginx.yaml

Kubernetes怎么重启 kubernetes怎么用_nginx_09


3.查看

kubectl get -f pod-nginx.yaml

Kubernetes怎么重启 kubernetes怎么用_容器_10


4.删除

kubectl delete -f pod-nginx.yaml

Kubernetes怎么重启 kubernetes怎么用_docker_11

四、kubectl apply命令简单解释

  • 资源不存在时,执行kubectl apply + yaml,就会创建资源,相当于执行kubectl create + yaml
  • 资源存在时,执行kubectl apply,则会更新资源,相当于执行kubectl patch。

所以,创建或者更新时,使用apply命令即可。
删除时使用delete查询则使用get