创建 pod

cd ~
vi pod-demo.yaml
# 内容如下
apiVersion: v1
kind: Pod
metadata:
name: pod-demo
namespace: default
labels:
app: myapp
tier: frontend
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
- name: busybox
image: busybox:latest
command:
- "/bin/sh"
- "-c"
- "sleep 3600" # 使用 kubectl create 创建 pod
kubectl create -f pod-demo.yaml # 这个 pod 里面有两个容器,一个是 myapp,一个是 busybox
# 查看日志
kubectl logs pod-demo myapp # 进入 pod 中的容器内部
kubectl exec -it pod-demo -c myapp -- /bin/sh

创建 deployment

vi deploy-demo.yaml
# 内容如下
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deploy
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: myapp
release: canary
template:
metadata:
labels:
app: myapp
release: canary
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort: 80 # 使用 kubectl apply 创建 deployment
kubectl apply -f deploy-demo.yaml



# 通过 kubectl describe 查看 deployment 信息
kubectl describe deploy myapp-deploy

创建 DeamonSet

DeamonSet 用于每个 Node 最多只运行一个 Pod 副本的场景。正如其名称所揭示的,DaemonSet 通常用于运行 daemon。如果一个 yaml 文件中需要定义两种资源需要使用 --- 进行分割。

vi ds-demo.yaml
# 内容如下
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: redis
role: logstor
template:
metadata:
labels:
app: redis
role: logstor
spec:
containers:
- name: redis
image: redis:4.0-alpine
ports:
- name: redis
containerPort: 6379 ---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: myapp-ds
namespace: default
spec:
selector:
matchLabels:
app: filebeat
release: stable
template:
metadata:
labels:
app: filebeat
release: stable
spec:
containers:
- name: filebeat
image: ikubernetes/filebeat:5.6.5-alpine
env:
- name: REDIS_HOST
value: redis.default.svc.cluster.local
- name: REDIS_LOG_LEVEL
value: info kubectl apply -f ds-demo.yaml
kubectl expose deployment redis --port=6379

创建 service

vi myapp-svc.yaml
# 内容如下:
apiVersion: v1
kind: Service
metadata:
name: myapp
namespace: default
spec:
selector:
app: myapp
release: canary
clusterIP: 10.99.99.99
type: NodePort
ports:
- port: 80
targetPort: 80
nodePort: 30080 kubectl apply -f myapp-svc.yaml # 说明
port :service 暴露在 cluster ip上的端口
targetPort :targetPort 是 pod 上的端口
nodePort : 暴露在集群物理节点上 node 的端口

可以使用其他机器访问 kubernets 上的 30080 端口来访问页面

eg:

192.168.31.205:30080

192.168.31.206:30080

192.168.31.207:30080

K8S 通过 yaml 文件创建资源的更多相关文章

  1. K8s简单yaml文件运行例子deployment

    kubectl run 创建并运行一个或多个容器镜像. 创建一个deployment 或job 来管理容器. kubectl run 语法: $ run NAME --image=image [--e ...

  2. Kubernetes K8S之通过yaml文件创建Pod与Pod常用字段详解

    YAML语法规范:在kubernetes k8s中如何通过yaml文件创建pod,以及pod常用字段详解 YAML 语法规范 K8S 里所有的资源或者配置都可以用 yaml 或 Json 定义.YAM ...

  3. K8S(02)管理核心资源的三种基本方法

    系列文章说明 本系列文章,可以基本算是 老男孩2019年王硕的K8S周末班课程 笔记,根据视频来看本笔记最好,否则有些地方会看不明白 需要视频可以联系我 管理k8s核心资源的三种基本方法: 目录 系列 ...

  4. k8s之yaml详解

    k8s之yaml详解 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 metadata: #资源的元数 ...

  5. Kubernetes实战指南(三十三):都0202了,你还在手写k8s的yaml文件?

    目录 1. k8s的yaml文件到底有多复杂 2. 基于图形化的方式自动生成yaml 2.1 k8s图形化管理工具Ratel安装 2.2 使用Ratel创建生成yaml文件 2.2.1 基本配置 2. ...

  6. k8s之yaml文件书写格式

    k8s之yaml文件书写格式 1 # yaml格式的pod定义文件完整内容: 2 apiVersion: v1 #必选,版本号,例如v1 3 kind: Pod #必选,Pod 4 metadata: ...

  7. k8s之yaml文件详解

    k8s之yaml文件详解 目录 k8s之yaml文件详解 1. k8s支持的文件格式 2. YAML语言格式 3. 查看api资源版本标签 4. 编写nginx-test.yaml资源配置清单 4.1 ...

  8. 利用yaml文件管理资源

    利用yaml配置文件管理资源 [root@master ~]# cat nginx-deployment.yaml apiVersion: apps/v1beta2 kind: Deployment ...

  9. k8s中yaml文常见语法

    在k8s中,所有的配置都是 json格式的.但为了读写方便,通常将这些配置写成yaml 格式,其运行的时候,还是会靠yaml引擎将其转化为json,apiserver 也仅接受json的数据类型. y ...

随机推荐

  1. java项目引用证书文件(微信支付的p12文件)

    1. 绝对路径: // windows: public static String PATH1 = "E:\\project27_app_wuyoujie\\apiclient_cert.p ...

  2. 【ABP框架系列学习】启动配置(5)

    ABP提供了在启动时配置模块的基础设施和模型. 1.配置ABP 配置ABP是在模块的PreInitialize方法中完成的,例如: public class SimpleTaskSystemModul ...

  3. java提高(2)---正则表达式(1)常用符号

    正则表达式---常用符号 首先声明,我这里列表的是经常使用的一些符号,如果你想得到全部,那建议你通过API中,搜索Pattern类,会得到所有符号. 字符类 [abc] a.b 或 c(简单类) [^ ...

  4. Asp.net core 环境配置

    参考: 在 ASP.NET Core 中使用多个环境 ASP.NET Core 中的配置 在项目的 Properties\launchSettings.json中可以配置多个环境 { "ii ...

  5. linux 命令 — archive

    tar 一般用法 tar -cf out.tar [files] tar -cf out.tar file1 file2 -c :创建文件 -f:指定创建的文件名称,-f必须是所有参数的最后一项,比如 ...

  6. Kubernetes理论基础

    Kubernetes理论基础 Kubernetes定义 ​ kubernetes是Google开源的容器集群管理系统,2014年6月开源.在Docker技术之上,为容器应用提供资源调度.部署运行.服务 ...

  7. 使用字面量,比new更加有效

    参考原文:http://www.cnblogs.com/yxf2011/archive/2012/04/01/2428225.html http://www.cnblogs.com/mushishi/ ...

  8. man nfsd(rpc.nfsd中文手册)

    本人译作集合:http://www.cnblogs.com/f-ck-need-u/p/7048359.html rpc.nfsd() System Manager's Manual rpc.nfsd ...

  9. Tomcat(一):背景知识和安装tomcat

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 基础背景知识 1.1 java和jdk概念 无论是何种程序,要能在计算机 ...

  10. GVRP 的工作机制和工作模式

    GVRP 简介 GVRP 基于 GARP 的工作机制来维护设备中的 VLAN 动态注册信息,并将该信息向其他设备传播:当设备启动了 GVRP 之后,就能够接收来自其他设备的 VLAN 注册信息,并动态 ...