kubernetes笔记-3-快速入门
一、增删改查
root@master:~# kubectl run ninig-deploy --image=nginx:1.14-alpine --port=80 --replicas=1 --dry-run=true #创建一个容器;run已被弃用
--image:指定镜像
--port:暴露的端口
--replicas=1:指定创建的数量
--dry-run:干跑模式
root@master:~# kubectl create --help #运行kubectl run 查看帮助,有示例
root@master:~# kubectl create deployment nginx-deploy --image=nginx --replicas=1 --port=80 #创建一个pod,运行的容器为nginx
root@master:~# kubectl delete pod nginx-deploy #删除一个容器
如发现创建后一直示运行可能过:root@master:~# kubectl describe pod nginx-app-6f7d8d4d55-m9sh8 #查看报错
出现如下错误提示:
network: open /run/flannel/subnet.env: no such file or directory #需要检查该目录下是否有该文件,如果没有该文件,需要重初始化环境,初始化时必须加上:--pod-network-cidr 10.244.0.0/16 \参数即可
root@master:~# kubectl get pods -o wide #查看该pod运行的详细信息
root@master:~# kubectl expose deployment nginx-app --port=80 --target-port=80 --name=nginx-http #创建端口服务,只能在集群内部可以访问,用来被pod客户端访问,pod间可直接通过nginx-http访问
root@master:~# kubectl exec client-644bb55ffc-6kk58 -it -- bash #进入指定pod
root@client-644bb55ffc-6kk58:/# curl nginx-http #pod间直接通过NAME访问
root@master:~# kubectl get pods --show-labels #查看POD标签
root@master:~# kubectl describe service nginx-http #查看service详细标签
创建两个pod,一个service实现访问固定service,后端访问两个pod的内容
kubectl create deployment myapp --image=ikubernetes/myapp:v1 --replicas=2 --port=80
kubectl expose deployment myapp --name=myapp --port=80 --target-port=80 --protocol=TCP
root@master:~# kubectl exec client-644bb55ffc-6kk58 -it -- bash
root@client-644bb55ffc-6kk58:/# curl myapp/hostname.html
修改deployment内pod的数量--pod扩展
root@master:~# kubectl scale --replicas=5 deployment myapp #将myapp的pod数量改为5
root@master:~# kubectl scale deployment demoapp --replicas=5 #将myapp的pod数量改为5
修改deployment内pod的数量--pod缩减
root@master:~# kubectl scale --replicas=3 deployment myapp #缩减命令与扩展命令一至,只是数量区别
修改pod使用的镜像
root@master:~# kubectl set image deployment myapp myapp=ikubernetes/myapp:v2 #myapp是容器的名称,需要通过describe查看得知
root@master:~# kubectl rollout status deployment myapp #显示更新过程,
root@master:~# kubectl rollout undo deployment myapp #回滚,默认回滚到上一版本,也可以指定回滚的版本
修改seriver配置使得可以外部访问
root@master:~# kubectl edit service myapp
type: NodePort
root@master:~# kubectl create service nodeport demoapp --tcp=80 #将pod的80端口暴露到外部可访问,外部端口随机使用,可通过--tcp=<port>[:<targetPort>]指定外部端口
创建一个client,并测试pod间可直接通过Service Name进行互相访问
root@master:~# kubectl run client-pod --image="ikubernetes/admin-toolbox:v1.0" --rm -it --command -- bash #自动进入pod内,使用完成退出后自动删除
[root@client-pod /]$ nslookup --query=A demoapp.default.svc.cluster.local
[root@client-pod /]$ curl http://demoapp.default #测试通过ServiceName进行互相访问,可直接使用demoapp,不加default
查询看容器
root@master:~# kubectl get pods -l app=demoapp #查看标签为demoapp的pod
root@master:~# kubectl get pods #查看所有pod
删除名称空间的所有的pod
root@master:~# kubectl delete deployment --all #将deployment名称空间下的所有pod全部删除
总结:
kubeadm是由Kubernetes原生提供的集群部署工具,支持高可用控制平面;kubeadm init可快速拉起一个控制平面,而kubeadm join则用于将节点加入集群之中。
Pod是运行容器化应用及调度的原子单元,同一个Pod中可同时运行多个容器,这些容器共享Mount、UTS及Network等Linux内核名称空间,并能够访问同一组存储卷。
Deployment是最常用的无状态应用控制器,它支持应用的扩缩容、滚动更新等操作,为容器化应用赋予了极具弹性的功能。
Service为弹性变动且存在生命周期的Pod对象提供了一个固定的访问接口,用于服务发现和服务访问。
kubectl是Kubernetes API Server最常用的客户端程序之一,它功能强大、特性丰富,几乎能完成除了安装部署之外的所有管理操作。
kubernetes笔记-3-快速入门的更多相关文章
- C++ Primer学习笔记_1_快速入门
C++快速入门 一 编写简单程序 // main是操作系统唯一显示调用的函数int main() {/**return返回的值是一个状态指示器 0:成功 非0:返回错误给OS*以echo $?命令可以 ...
- springboot笔记02——快速入门quickstart
前言 学习一个新的框架,往往会用一个quickstart快速入门,这次就写一下springboot的quickstart程序. 开发环境 JDK 1.8 Springboot 2.1.6 Maven ...
- SQLite:自学笔记(1)——快速入门
SQLite的安装和入门 了解 啥是SQLite? SQLite是一种轻巧迷你的关系型数据库管理系统.它的特点如下: 不需要一个单独的服务器进程或操作的系统(无服务器的). SQLite 不需要配置, ...
- (笔记)快速入门PADS logic 到 layout
以前从未接触过画板,先是硬着头皮边学边操作<Layout2007中文教程之PADS_Logic>,刚好在中秋节前把这个教程从头到尾通学了一遍,随后感觉这个教程有了方方面面但没有工程的系统性 ...
- 4、kubernetes资源清单快速入门190625
一.资源清单概念 资源/对象的类型 工作负载型资源:Pod, ReplicaSet, Deployment, StatefulSet, DaemonSet, Job, Cronjob, ... 服务发 ...
- R语言笔记:快速入门
1.简单会话 > x<-c(1,2,4) > x [1] 1 2 4 R语言的标准赋值运算符是<-.也可以用=,不过不建议用它,有些情况会失灵.其中c表示连接(concaten ...
- Kafka学习笔记2: 快速入门
在开始Kafka环境搭建之前,首先要安装Linux系统,并在Linux系统上安装JDK1.8版本,关于linux虚拟机的安装和linux系统下jdk的安装可以参考我的博文: http://blog.c ...
- React官方文档笔记之快速入门
快速开始 JSFiddle 我们建议在 React 中使用 CommonJS 模块系统,比如 browserify 或 webpack. 要用 webpack 安装 React DOM 和构建你的包: ...
- 学习笔记-CCS-MSP430F5529[快速入门篇二]
由于2021的全国电赛延期了,从今天开始打算好好整理一下使用CCS编程的经验,本篇笔记会好好整理一下我备赛期间用CCS写的程序,包括外部中断,定时器部分的定时中断,定时器输入捕获,PWM波输出,UAR ...
- webpack 学习笔记 02 快速入门
webpack 的目标 将依赖项分块,按需加载. 减少web app的初始加载时间. 使每一个静态集合都能够作为组件使用. 有能力集成第三方库,作为组件使用. 高度可配置化. 适用于大型项目. INS ...
随机推荐
- React Native 入门 调试项目
不管时用哪种语言,哪种框架,调试永远都是一个避不开的话题 为我们提供了远程调试的功能,而这个功能需要Chrome浏览器的配合. 1. 首先浏览器一定要安装好React Developer Tool 插 ...
- 银河麒麟v4_sp4安装英伟达驱动
bios设置视频输出为auto模式 视频线插独立显卡上 先dpkg 安装两个deb包 1.禁用开源驱动:sudo vim /etc/modprobe.d/blacklist.conf,在里面添加 bl ...
- linux 运维有趣的实用工具
1.实时监控磁盘 IO-IOTop IOTop 命令是专门显示硬盘 IO 的命令, 界面风格类似 top 命令. [root@localhost ~]# yum -y install iotop` 2 ...
- 新建Github仓库并上传本地代码
按照Github的教程 Adding a local repository to GitHub using Git 1. 创建空的Github仓库 创建远程仓库 ,注意不要勾选Add a README ...
- 微服务系列之授权认证(一) OAuth 2.0 和 OpenID Connect
1.传统架构的授权认证 传统应用架构,用户使用账号密码登录后,可以使用前端cookie存储登录状态,也可以使用后端session方式存储登录状态,小应用这么做其实很高效实用,当应用需要横向扩展时,就需 ...
- Vue3 封装 Element Plus Menu 无限级菜单组件
本文分别使用 SFC(模板方式)和 tsx 方式对 Element Plus el-menu 组件进行二次封装,实现配置化的菜单,有了配置化的菜单,后续便可以根据路由动态渲染菜单. 1 数据结构定义 ...
- 【学习笔记】Vin-Mono论文阅读笔记(一)
VINS-Mono 概述 VINS-Mono VINS-Mono是由一个单目相机和一个低成本IMU组成的鲁棒通用的单目视觉惯性系统.通过融合预积分的IMU测量值和特征观测值来获得高精度的视觉惯性里程计 ...
- Java容器化参数配置最佳实践
Java是以VM为基础的,而云原生讲究的就是Native,天然的矛盾,虽然Quarkus是为GraalVM和HotSpot量身定制的K8s Native Java框架,生态原因切换成本太高,这种矛盾体 ...
- Helm3 安装 ElasticSearch & Kibana 7.x 版本
文章转载自:http://www.mydlq.club/article/13/ 系统环境: helm 版本:v3.2.1 Kubernetes 版本:1.18.3 ElasticSearch Char ...
- 云原生分布式文件存储 MinIO 教程
文章转载自:https://mp.weixin.qq.com/s/_52kZ5jil1Cec98P5oozoA MinIO 提供开源.高性能.兼容 s3 的对象存储,为每个公共云.每个 Kuberne ...