Kubernetes 创建资源
一、创建命名空间
命名空间(NameSpace) : 用来隔离资源使用,默认只隔了资源 不隔离网络 ,创建方式有如下2中 一种是命令方式 一种是yaml 资源文件方式
(1)命令方式
kubectl create ns dev
# 创建资源使用 create ns 代表资源类型为命名空间 后跟资源名称
# 可创建 也可删除 删除使用 delete
kubectl delete ns dev
#查询名称空间
kubectl get ns
(2) 资源文件方式
apiVersion: v1
kind: Namespace
metadata:
name: dev
资源文件名 ns.yaml
kubectl apply -f ns.yaml
#查询命名空间
kubectl get ns
#删除 以资源文件方式
kubectl delete -f ns.yaml
二、Pod 部署
(1) 命令方式
#kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client] [--overrides=inline-json]
[--command] -- [COMMAND] [args...] [options]
#创建一个 nginx 的 pod --image 使用的镜像名 -n 创建在那个namespace 中
kubectl run mynginx --image nginx -n dev
#查看pod defute 下的资源可以不使用 -n 参数
kubectl get pod mynginx -n dev
# 查看pod 描述 当启动后可以通过如下名查询pod 启动情况
kubectl describe pod mynginx -n dev
#删除 pod
kubectl delete pod mynginx -n dev
#查看日志
kubectl logs pod mynginx -n dev
#查看pod 部署详情
kubectl get pod mynginx -owide
[root@k8s-master k8s_yml]# kubectl get pod mynginx -owide -n dev
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
mynginx 1/1 Running 0 6m38s 10.244.1.7 k8s-node1 <none> <none>
(2)配置 yaml 方式
apiVersion: v1
kind: Pod
metadata:
name: mynginx
namespace: dev #定义命名空间创建
labels:
run: mynginx
spec:
containers:
- image: nginx
name: mynginx
(3)进入容器
#和 docker 一样 使用 exec 进入容器控制台 注意 后面 -- /bin/sh
kubectl exec -it mynginx -n dev -- /bin/sh
当然我们有了控制台管理页面,也可以通过可视化页面进入
(4)多服务部署同在一个pod
apiVersion: v1
kind: Pod
metadata:
name: myapp
namespace: dev #定义命名空间创建
labels:
run: myapp
spec:
containers:
- image: nginx
name: nginx
- image: tocmcat:8.5.68
name: tomcat
[root@k8s-master k8s_yml]# kubectl get pod -n dev
NAME READY STATUS RESTARTS AGE
myapp 1/2 InvalidImageName 0 13s
mynginx 1/1 Running 0 160m
[root@k8s-master k8s_yml]#