5分钟快速使用k8s

234 阅读3分钟

5分钟快速使用k8s

了解k8s:服务分为pod容器和service两部分

空间:创建属于自己的空间namespace

存储:分为:pv 和 pvc

pod就是一个容器,一个pod里面可以启动多个服务。

一个pod对应一个service,如果说pod是容器大门,那么service就是让容器在浏览器展示出来的钥匙。

pv和pvc就相当于存储在哪里。比如是哪个路径或者哪个服务器的路径。

空间就相当于在一个房子里面创建属于自己的文件或者服务。

一、空间名称

1.1、 查询k8s名称有哪些

格式: (e.g. 'my-name', or '123-abc', regex used for validation is 'a-z0-9?') 从上面可以看出:只支持小写[a-z] 数字[0-9]

  • kubectl 命令
  • delete 删除命名空间
  • get 获取
  • create 创建命名空间
  • ns 命名空间 相当于 namespace
  • A 所有的namespace
[root@k8s-master-01 ~]# kubectl get namespace
NAME              STATUS   AGE
default           Active   7d22h
kube-node-lease   Active   7d22h
kube-public       Active   7d22h
kube-system       Active   7d22h
[root@k8s-master-01 ~]# 
[root@k8s-master-01 ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   7d22h
kube-node-lease   Active   7d22h
kube-public       Active   7d22h
kube-system       Active   7d22h
[root@k8s-master-01 ~]# kubectl get ns -A
NAME              STATUS   AGE
default           Active   7d22h
kube-node-lease   Active   7d22h
kube-public       Active   7d22h
kube-system       Active   7d22h

1.2、 创建自己的命名空间

如果空间命名多,创建自己的命名空间防止服务串用

[root@k8s-master-01 ~]# kubectl create ns ai-platform
namespace/ai-platform created
[root@k8s-master-01 ~]# 
[root@k8s-master-01 ~]# kubectl get ns
NAME              STATUS   AGE
ai-platform       Active   4s
default           Active   7d22h
kube-node-lease   Active   7d22h
kube-public       Active   7d22h
kube-system       Active   7d22h

1.2.1、命名空间已存在

如果命名空间存在查询里面的服务,下面会有介绍 [root@k8s-master-01 ~]# kubectl create ns ai-platform Error from server (AlreadyExists): namespaces "ai-platform" already exists

1.3、 删除自己命名空间

删除命名空间切记:一定要确认是不在使用在删除,删除namespace相当于把整个房子里面的东西全部销毁。

[root@k8s-master-01 ~]# kubectl delete ns ai-platform
namespace "ai-platform" deleted
[root@k8s-master-01 ~]# 
[root@k8s-master-01 ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   7d22h
kube-node-lease   Active   7d22h
kube-public       Active   7d22h
kube-system       Active   7d22h

二、创建自己的POD容器服务

格式:

  • kubectl 命令
  • delete 删除pod
  • get 获取
  • pod 容器<后面跟自己pod名称>
  • A 所有的pod服务

2.1 查询pod服务

查询服务后面跟自己的命名空间或者-A查询所有服务

kubectl get pod

No resources found in default namespace.

2.2、创建自己命名空间 jsionchao

[root@k8s-master-01 ~]# kubectl create ns jsionchao
namespace/jsionchao created
[root@k8s-master-01 ~]# 
[root@k8s-master-01 ~]# kubectl get ns jsionchao
NAME        STATUS   AGE
jsionchao   Active   11s

2.3、创建自己的pod服务

kubectl apply -f nginx.yaml

replicationcontroller/jsionchao-nginx created

[root@k8s-master-01 jsionchao]# cat nginx.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: jsionchao-nginx
  namespace: jsionchao
spec:
  replicas: 1
  selector:
    name: jsionchao-nginx
  template:
    metadata:
      labels:
        name: jsionchao-nginx
    spec:
      containers:
        - name: jsionchao-nginx
          image: nginx:latest
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80

2.4、查询自己pod服务

kubectl get pod -n jsionchao

NAME                    READY   STATUS    RESTARTS   AGE
jsionchao-nginx-lm2vr   1/1     Running   0          7s

这里有个疑问,自己创建的服务如何在页面访问出来呢?

2.5、创建server

image.png

vi nginx-server.yaml

kubectl apply -f nginx-server.yaml

apiVersion: v1
kind: Service
metadata:
  name: jsionchao-nginx
  labels:
    app: jsionchao-nginx
  namespace: jsionchao
spec:
  type: NodePort
  selector:
    app: jsionchao-nginx
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30050

2.5、访问localhost:30050