Kubernetes(K8s)极速入门
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

5. 综述
今天聊了一下 kubernetes(k8s)集群上是如何部署容器的,希望可以对大家的工作有所帮助。
欢迎帮忙点赞、评论、转发、加关注 :)
关注追风人聊Java,每天更新Java干货。
6. 个人公众号
追风人聊Java,欢迎大家关注

Kubernetes(K8s)极速入门的更多相关文章
- K8S从入门到放弃系列-(16)Kubernetes集群Prometheus-operator监控部署
Prometheus Operator不同于Prometheus,Prometheus Operator是 CoreOS 开源的一套用于管理在 Kubernetes 集群上的 Prometheus 控 ...
- K8S 从入门到放弃系列文章目录(Kubernetes 1.14)
1)软件环境 软件 版本 系统 Centos7.5 Kubernetes 1.14.1 Docker 18.09 Calico 3.6 Etcd 3.3.12 2)部署过程简单概要 三台master节 ...
- Kubernetes --(k8s)入门
k8s 简介: 什么是k8s? Kubernetes (k8s)是Google开源的容器集群管理系统(谷歌内部:Borg).在Docker技术基础上,为容器化的应用提供部署运行.资源调度.服务发现和动 ...
- Knative 初体验:CICD 极速入门
Knative 社区很早就在讨论用 Tekton 替换 Build 模块的相关事宜.Knative Build 官方已经正式说明不再建议使用 Knative Build 了. 如果你知道 Knativ ...
- 菜鸟系列k8s——k8s快速入门(1)
k8s快速入门 1.快速创建k8s集群 参考网站:https://kubernetes.io/docs/tutorials/kubernetes-basics 点击教程菜单 1. Create a C ...
- k8s miniKube 入门
k8s miniKube 入门 miniKube 是单机版kubernetes, 可以配置运行在同一台主机上的服务和pod,并使用docker作为虚拟化工具 下载:直接下载可执行文件,复制到path ...
- k8s(00)入门知识介绍
系列文章说明 本系列文章,可以基本算是 老男孩2019年王硕的K8S周末班课程 笔记,根据视频来看本笔记最好,否则有些地方会看不明白 需要视频可以联系我 k8s概念入门 目录 系列文章说明 k8s概念 ...
- [转]Nginx基本功能极速入门
原文链接:Nginx基本功能极速入门 | 叉叉哥的BLOG 本文主要介绍一些Nginx的最基本功能以及简单配置,但不包括Nginx的安装部署以及实现原理.废话不多,直接开始. 1.静态HTTP服务器 ...
- 《Python黑客编程之极速入门》正式开课
玄魂 玄魂工作室 今天 之前开启了一个<Python黑客编程>的系列,后来中断了,内容当时设置的比较宽,不太适合入门.现在将其拆分成两个系列<Python黑客编程之极速入门>和 ...
- 1 小时 SQL 极速入门(三)——分析函数
1 小时 SQL 极速入门 前面两篇我们从 SQL 的最基础语法讲起,到表联结多表查询. 大家可以点击链接查看 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 今天我们讲一些在做报 ...
随机推荐
- allure报告中allure.title 如何去掉后方的参数化显示
1.解决方法如下 listener.py 文件位置:Lib\site-packages\allure_pytest\listener.py (第三方包所在的LIb目录) 将下图中红色部分test_re ...
- EMC测试国家标准GB/T 17626
转载: 详解EMC测试国家标准GB/T 17626 - whik - 博客园 (cnblogs.com)
- 初学Python-day10 函数2
函数 1.函数也是一种数据 函数也是一种数据,可以使用变量保存 回调函数(参数的值还是一个函数) 实例: def test(): print('hello world') def test1(a): ...
- PyCharm中目录directory与包package的区别及相关import详解
一.概念介绍 在介绍目录directory与包package的区别之前,先理解一个概念---模块 模块的定义:本质就是以.py结尾的python文件,模块的目的是为了其他程序进行引用. 目录(Dire ...
- VMware虚拟机安装Linux
我们都知道,Linux的学习如果依靠大量的物理真机,是不切实际的,会非常的麻烦. 今天来和分享一下VMware虚拟机安装Linux操作系统的方法 (centos 7) 1. 我们要先把VMware虚 ...
- [技术博客] 通过ItemTouchHelper实现侧滑删除功能
通过ItemTouchHelper实现侧滑删除功能 一.效果 二.具体实现 demo中演示的这种左滑删除的效果在手机APP中比较常用,安卓也为我们提供了专门的辅助类ItemTouchHelper来帮助 ...
- 运维常用python库&模块
sutil:是一个跨平台库(https://github.com/giampaolo/psutil)能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资 ...
- 攻防世界 杂项 10.2017_Dating_in_Singapore
题目描述: 01081522291516170310172431-050607132027262728-0102030209162330-02091623020310090910172423-0201 ...
- Spring源码解读(一):Spring的背景起源及框架整体介绍
一.前言 Spring起源于2002年Rod Johnson写的一本书<Expert One-on-One J2EE>,书里介绍了Java企业应用程序开发情况,并指出Java EE和EJB ...
- hdu 2154 跳舞毯(简单DP)
题意: 有一个圆圆的毯,被平均分成三个扇形.分为标记为A,B,C. 小余从A开始跳,每次可跳到相邻的扇形上.(A->B 或 A->C) 问小余跳n次,最后回到扇形A的方案数是多少. 思路: ...