1. 概述

老话说的好:努力学习,努力提高,做一个有真才实学的人。

言归正传,之前我们聊了 如何使用国内的镜像源搭建 kubernetes(k8s)集群 ,今天我们来聊聊如何在 kubernetes(k8s)上部署容器。

官网教程:https://kubernetes.io/docs/home/

2. 部署 Pod

2.1 概述

Pod 是 kubernetes(k8s)的最小单元,一个 Pod 中可部署多个容器,这里我们以部署 Nginx 为例,先介绍一下 kubernetes(k8s)的编排脚本。

2.2 Pod 脚本例子

新建一个脚本,名为 my-pod.yml

# vi my-pod.yml

apiVersion: v1
kind: Pod
metadata:
name: my-nginx
spec:
containers:
- name: my-nginx
image: nginx

apiVersion:脚本的版本,Pod 通常使用 v1 这个版本

kind:脚本的类型,这里就是 Pod

metadata.name:Pod 的名称

spec.containers:Pod 中运行的容器,可以是多个

注意:下级相对上级缩进两个空格,而不是Tab。

2.3 执行脚本

# kubectl apply -f my-pod.yml

2.4 查看 pod 信息

# kubectl get pod -o wide

ContainerCreating 状态代表 pod 正在添加

Running 状态代表 pod 已经运行

2.5 查看 pod 详细信息
# kubectl describe pod my-nginx

2.6 删除 pod

# kubectl delete pod my-nginx

3. 部署 Deployment

3.1 概述

在 kubernetes(k8s)中, 使用 Pod 脚本部署 pod,只能单节点部署,无法高可用。

因此需要用到 Deployment ,Deployment 可以指定 Pod 的副本数,通常情况是使用 Deployment  部署。

3.2 Deployment 脚本例子

新建一个脚本,名为 my-deployment.yml

# vi my-deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx-deployment
template:
metadata:
labels:
app: nginx-deployment
spec:
containers:
- name: my-nginx
image: nginx

spec.replicas:部署 Pod 的副本数

sepc.template.metadata.labels.app:deployment 标签名称。

3.3 执行脚本

# kubectl apply -f my-deployment.yml

3.4 查看 deployment 信息

# kubectl get deployment

# kubectl get pod -o wide

3.5 查看 deployment 详细信息

# kubectl describe deployment nginx-deployment

3.6 删除 deployment

# kubectl delete deployment nginx-deployment

4. 部署 Service

4.1 概述

上一步我们使用 deployment 部署了多个 Pod 实例,但我们无法访问到 Pod 中的 Nginx。

此时就要借助 Service。

4.2 Service 脚本例子

新建一个脚本,名为 my-service.yml

# vi my-service.yml

apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort
selector:
app: nginx-deployment
ports:
- protocol: TCP
nodePort: 30000
port: 20000
targetPort: 80

spec.type:Service 的类型,NodePort 是端口映射的方式,就是把容器的端口映射到宿主机的端口。

spec.selector.app:作用于哪个 deployment 标签。

spec.ports:是端口映射设置,targetPort 是容器中服务真实的端口,Nginx默认使用 80 端口,port 是Service 对外暴露的端口,用于 K8s 内部访问,nodePort 是映射的宿主机的端口。

4.3 执行脚本

# kubectl apply -f my-service.yml

4.4 查看 Service 信息

# kubectl get service -o wide

4.5 查看 Service 详细信息

# kubectl describe service nginx-service

4.6 删除 Service

# kubectl delete service nginx-service

4.7 访问 Nginx

地址:http://宿主机IP:30000

例如:http://192.168.1.12:30000/

5. 综述

今天聊了一下 kubernetes(k8s)集群上是如何部署容器的,希望可以对大家的工作有所帮助。

欢迎帮忙点赞、评论、转发、加关注 :)

关注追风人聊Java,每天更新Java干货。

6. 个人公众号

追风人聊Java,欢迎大家关注

Kubernetes(K8s)极速入门的更多相关文章

  1. K8S从入门到放弃系列-(16)Kubernetes集群Prometheus-operator监控部署

    Prometheus Operator不同于Prometheus,Prometheus Operator是 CoreOS 开源的一套用于管理在 Kubernetes 集群上的 Prometheus 控 ...

  2. K8S 从入门到放弃系列文章目录(Kubernetes 1.14)

    1)软件环境 软件 版本 系统 Centos7.5 Kubernetes 1.14.1 Docker 18.09 Calico 3.6 Etcd 3.3.12 2)部署过程简单概要 三台master节 ...

  3. Kubernetes --(k8s)入门

    k8s 简介: 什么是k8s? Kubernetes (k8s)是Google开源的容器集群管理系统(谷歌内部:Borg).在Docker技术基础上,为容器化的应用提供部署运行.资源调度.服务发现和动 ...

  4. Knative 初体验:CICD 极速入门

    Knative 社区很早就在讨论用 Tekton 替换 Build 模块的相关事宜.Knative Build 官方已经正式说明不再建议使用 Knative Build 了. 如果你知道 Knativ ...

  5. 菜鸟系列k8s——k8s快速入门(1)

    k8s快速入门 1.快速创建k8s集群 参考网站:https://kubernetes.io/docs/tutorials/kubernetes-basics 点击教程菜单 1. Create a C ...

  6. k8s miniKube 入门

    k8s miniKube 入门 miniKube 是单机版kubernetes, 可以配置运行在同一台主机上的服务和pod,并使用docker作为虚拟化工具 下载:直接下载可执行文件,复制到path ...

  7. k8s(00)入门知识介绍

    系列文章说明 本系列文章,可以基本算是 老男孩2019年王硕的K8S周末班课程 笔记,根据视频来看本笔记最好,否则有些地方会看不明白 需要视频可以联系我 k8s概念入门 目录 系列文章说明 k8s概念 ...

  8. [转]Nginx基本功能极速入门

    原文链接:Nginx基本功能极速入门 | 叉叉哥的BLOG 本文主要介绍一些Nginx的最基本功能以及简单配置,但不包括Nginx的安装部署以及实现原理.废话不多,直接开始. 1.静态HTTP服务器 ...

  9. 《Python黑客编程之极速入门》正式开课

    玄魂 玄魂工作室 今天 之前开启了一个<Python黑客编程>的系列,后来中断了,内容当时设置的比较宽,不太适合入门.现在将其拆分成两个系列<Python黑客编程之极速入门>和 ...

  10. 1 小时 SQL 极速入门(三)——分析函数

    1 小时 SQL 极速入门 前面两篇我们从 SQL 的最基础语法讲起,到表联结多表查询. 大家可以点击链接查看 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 今天我们讲一些在做报 ...

随机推荐

  1. 从0到1使用Kubernetes系列(三):使用Ansible安装Kubernetes集群

    前两期的文章介绍了Kubernetes基本概念和架构,用Kubeadm+Ansible搭建Kubernetes集群所需要的工具及其作用.本篇介绍怎么使用Ansible安装Kubernetes集群. 启 ...

  2. 电脑(windows)端口被占用如何解决

    问题: 今天在启动项目的时候,控制台提示"8080端口被占用",此时我并没有启动其他项目.那么8080端口被占用解决方法如下: 1.点击左下角"开始",在搜索框 ...

  3. Setoolkit部署

    禁止使用本文的知识进行违法犯罪活动!!学习这些内容是为了更好的防范钓鱼网站 详见我的github仓库 Setoolkit : Social-Engineer Toolkit(社会工程学工具包) 其作为 ...

  4. 改善深层神经网络-week1编程题(Regularization)

    Regularization Deep Learning models have so much flexibility and capacity that overfitting can be a ...

  5. alertmanager的使用

    alertmanager的使用 一.Alertanager的安装 1.下载 2.安装 3.启动 4.alertmanager和prometheus的整合 二.告警分组 1.告警规则 2.alertma ...

  6. PCB电路板元器件布局的一般原则*(转)

    PCB电路板元器件布局的一般原则: 设计人员在PCB电路板布局过程中需要遵循的一般原则如下. (1)元器件最好单面放置.如果需要双面放置元器件,在底层(Bottom Layer)放置插针式元器件, ) ...

  7. allegro查看线宽的方法

  8. 华为HCIP-Eth-trunk原理知识点

    Eth-trunk(端口聚合.链路捆绑.链路聚合.以太通道) Eth-trunk技术出现的原因: • 随着网络中部署的业务量不断增长,对于全双工点对点链路,单条物理链路的带宽已不能满足正常的业务流量 ...

  9. greenplum分布键的hash值计算分析

    greenplum 数据分布策略 greenplum 是一个 MPP 架构的数据库,由一个 master 和多个 segment 组成(还可选配置一个 standby master),其数据会根据设置 ...

  10. analysis_screencap

    #!/usr/bin/env pythonfrom PIL import Imageimg = Image.open("./screen.png")maps = [[] for i ...