Java开发必须掌握的运维知识 (十)-- Docker集群自动化部署管理:Kubernetes快速入门

news2024/11/15 15:34:51

一、什么是Kubernetes

Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。
Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。
Kubernetes官网地址

二、Kubernetes相关特性

Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes一个核心特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望运行。以下是Kubernetes相关特性:

1、自动包装

根据资源需求和其他约束自动放置容器,同时不会牺牲可用性,混合关键和最大努力的工作负载,以提高资
源利用率并节省更多资源。

2、横向缩放

使用简单的命令或 UI,或者根据 CPU 的使用情况自动调整应用程序副本数。

3、自动部署和回滚

Kubernetes 逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有实例。 如果出现问题,Kubernetes会为您恢复更改,利用日益增长的部署解决方案的生态系统。

4、存储编排

自动安装您所选择的存储系统,无论是本地存储,如公有云提供商 GCP 或 AWS, 还是网络存储系统 NFS,iSCSI, Gluster, Ceph, Cinder, 或 Flocker。

5、自我修复

重新启动失败的容器,在节点不可用时,替换和重新编排节点上的容器,终止不对用户定义的健康检查做出响应的容器,并且不会在客户端准备投放之前将其通告给客户端。

6、服务发现和负载均衡

不需要修改您的应用程序来使用不熟悉的服务发现机制,Kubernetes 为容器提供了自己的 IP 地址和一组容器的单个 DNS 名称,并可以在它们之间进行负载均衡。

7、密钥和配置管理

部署和更新密钥和应用程序配置,不会重新编译您的镜像,不会在堆栈配置中暴露密钥(secrets)。

8、批处理

除了服务之外,Kubernetes还可以管理您的批处理和 CI 工作负载,如果需要,替换出现故障的容器。

使用Kubernetes可以在物理或虚拟机的Kubernetes集群上运行容器化应用,Kubernetes能够提供一个以容器为中心的基础架构,满足在生产环境中运行应用的一些常见需求,如:

  • 多个进程协同工作
  • 存储系统挂载
  • Distributing secrets
  • 应用健康检测
  • 应用实例的复制
  • Pod自动伸缩/扩展
  • Naming and discovering
  • 负载均衡
  • 滚动更新
  • 资源监控
  • 日志访问
  • 调度应用程序
  • 提供认证和授权

三、Kubernetes快速入门

1、环境准备

1)关闭CentOS防火墙

systemctl disable firewalld
systemctl stop firewalld

2)安装etcd和kubernetes软件

yum install -y etcd kubernetes

3)启动服务

systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy

注:如果docker启动失败,请参考(vi /etc/sysconfig/selinux 把selinux后面的改为disabled,重启一波机器,再重启docker就可以了)

2、配置Kubernetes

1)Tomcat配置

kubectl create -f mytomcat.rc.yaml

mytomcat.rc.yaml 配置内容

apiVersion: v1
kind: ReplicationController
metadata:
	name: mytomcat
spec:
	replicas: 2
	selector:
		app: mytomcat
template:
	metadata:
		labels:
			app: mytomcat
spec:
	containers:
		- name: mytomcat
			image: tomcat:7-jre7
			ports:
			- containerPort: 8080
kubectl create -f mytomcat.svc.yaml

mytomcat.svc.yaml 配置内容

apiVersion: v1
kind: Service
metadata:
	name: mytomcat
spec:
	type: NodePort
	ports:
		- port: 8080
		nodePort: 30001
	selector:
		app: mytomcat

3、浏览测试

配置并启动完成后,打开浏览器测试是否成功启动docker的tomcat服务。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb_第3章_HTTPTomcatServlet

JavaWeb_第3章_HTTP&Tomcat&Servlet 文章目录JavaWeb_第3章_HTTP&Tomcat&Servlet1,Web概述1.1 Web和JavaWeb的概念1.2 JavaWeb技术栈1.2.1 B/S架构1.2.2 静态资源1.2.3 动态资源1.2.4 数据库1.2.5 HTTP协议1.2.6 Web服务器1.3 Web核心课程安排2, HT…

vue中,页面布局之使用vue-splitpane实现窗格的拆分和调节,类似于flex布局

vue中,页面布局之使用vue-splitpane实现窗格的拆分和调节,类似于flex布局 1、基本介绍 npm地址:https://www.npmjs.com/package/vue-splitpane 安包 npm install vue-splitpane注册 main.js import splitPane from vue-splitpane // 注…

土豆清洗去皮机设计

目 录 摘 要 I Abstract II 1绪论 1 1.1选题背景及意义 1 1.2国内外研究现状 1 1.2.1国内外现状 2 1.2.2国外研究现状 2 1.3 发展趋势 3 1.4研究内容及方法 4 2毛刷式土豆清洗去皮机总体设计 5 2.1毛刷式土豆清洗去皮机的构造及工作原理 5 2.2 土豆擦皮机的相关计算 6 2.2.1设计…

动手学深度学习(1)—— 基础知识

文章目录一、基本概念1.1 关键组件数据模型目标函数优化算法1.2 各种机器学习问题监督学习无监督学习强化学习1.3 神经网络的特点二、预备知识2.1 数据操作入门运算符广播机制索引和切片节省内存转换为其他python 对象2.2 数据预处理读取数据集处理缺失的数据2.3 线性代数标量向…

WPS通过“文档部件”的“域”设置图、表和公式的自动序列号

写文档时,当有多张图片、多个表格和多个公式需要编号时,可以通过设置自动序列号,实现一定程度的自动编号和任意位置插入后随时更新序号。具体操作如下 ​ 1. 图的设置 在WPS中,首先设置好一张图片的格式后,对于需要设…

【并发】J.U.C线程池

线程池 经历了Java内存模型、JUC基础之AQS、CAS、Lock、并发工具类、并发容器、阻塞队列、atomic类后,我们开始JUC的最后一部分:线程池。 线程池的优势 为什么多线程会带来性能问题 多线程的性能问题,分为两类,一类是线程本身…

从今天起真正释放创造力——亚马逊云科技re:Invent

对于开发者而言,成就感来自于每一次敲下代码后可实现的创造力,而不是把时间和精力消耗在写千篇一律又无法复用的“胶水”代码,或是在越来越复杂的软件栈面前,疲惫地写业务流程并尽量减少Bug。更加不堪的是,有时仅仅是因…

2022.12.4 学习周报

文章目录摘要文献阅读1.题目2.摘要3.介绍4.方法5.实验5.1 数据集5.2 网络模型5.3 实验表现6.展望深度学习1.LSTM原理1.1 什么是LSTM?1.2 遗忘门(forget gate)1.3 输入门(input gate)1.4 输出门(output gate…

Python声明式统计可视化库 altair-GitHub鉴赏官

推荐理由:Vega-Altair是 Python 的声明式统计可视化库。借助 Vega-Altair,您可以花更多时间来理解数据及其含义。Vega-Altair 的 API 简单、友好且一致,建立在强大的 Vega-Lite JSON 规范之上。这种优雅的简单性可以用最少的代码产生漂亮而有…

FT2004(D2000)开发实战之在线开发GPIO LED程序

一 在线开发GPIO LED程序 分析GPIO LED原理图 从飞腾FT2004原理图可知,开发板将GPIO1_A3和GPIO1_A4连接到LED上,具体如下: 开发板将GPIO1_A3和GPIO1_A4连接到LED上,因此代码初始化时需要注意以下几点: => 打开/dev/gpiochip1设备 => gpio偏移量为3和4创建led.c roo…

OpenShift 4 - 从 FreeIPA/RHIdM 向 RHSSO 同步用户和组

《OpenShift / RHEL / DevSecOps / Ansible 汇总目录》 说明:本文已经在 OpenShift 4.11 环境中验证 文章目录安装 FreeIPA/RHIdM在 FreeIPA/RHIdM 中添加用户和组从 FreeIPA/RHIdM 向 RHSSO 同步用户和组参考红帽 RHIdM 基于开源项目 FreeIPA,其内部提供…

Windows Access Token

Windows Access Token Windows Token其实叫Access Token(访问令牌),它是一个描 述进程或者线程安全上下文的一个对象。不同的用户登录计算机后, 都会生成一个Access Token,这个Token在用户创建进程或者线程 时会被使用,不断的拷贝…

如何选择和使用腾讯云服务器的方法新手教程

本文将介绍如何选择和使用腾讯云服务器的方法新手教程。云服务器能帮助快速构建更稳定、安全的应用,降低开发运维的难度和整体IT成本。腾讯云CVM云服务器提供多种类型的实例、操作系统和软件包。各实例中的 CPU、内存、硬盘和带宽可以灵活调整,以满足应用…

C++11中可变参数模板使用

在看同事编写的代码&#xff0c;发现有如下的代码&#xff0c;因为没用过&#xff0c;所以查了一下这是什么语法&#xff0c;通过查询资料知道了这是C11中增加的可变参数模板。 template<class T, class ...Args> bool GetValue(T &value, Args &&...args) c…

12.2-12.4总结

12.2 明明跟着Vue3的视频学的&#xff0c;结果今天发现我学的都是vue2的写法&#xff0c;导致网上查阅资料调用组件有很多东西看不懂。设置langts也用不了&#xff0c;所以去查文档&#xff0c;增加配置了。 -安装vue-cli手脚架 解决lang"ts"报错http://t.csdn.cn/…

【力扣周总结】

题目汇总 判断括号的合法 #20 有效的括号&#xff08;栈问题 stack &#xff09;#921. 使括号有效的最少添加&#xff08;纯逻辑题&#xff09;#1541. 平衡括号字符串的最少插入次数&#xff08;纯逻辑题&#xff09; 单调(递减)栈 - Next Greater Element 题型 496. 下一个…

计算机毕业设计源码——基于Android的真人社交游戏辅助应用开发

编号 本科生毕业设计&#xff08;论文&#xff09; 题目&#xff1a; 真人社交游戏辅助应用开发 专业 学 号 学生姓名 指导教师 摘 要 时至今日&#xff0c;社交已成为人们生活中必不可少的一部分&#xff0c;社交网络的盛行已经成为一种必然趋势&#xff0e;与此同时&a…

央企招聘:正式编制!八险三金!各项福利!中国邮政招人啦!

中国邮政薪酬待遇情况 &#xff08;仅供参考&#xff09; &#xff08;一&#xff09;薪酬水平 1.邮储总行&#xff1a;刚入职有六个月实习期&#xff0c;月薪6k左右&#xff0c;转正以后一年到手大概25w&#xff0c;在大行中处于中等偏上。利润中心等部门可能更高一些&#…

Java基于JSP的幼儿园管理系统

幼儿是祖国的花朵,是未来国家建设的接班人。如果能够让幼儿园更好的对院所内部进行更好的管理是很多家长和幼儿园的工作人员所关心的问题。为此我开发了幼儿园管理系统,让家长和院所的管理人员能够更好的进行沟通,从而到达更好的培养幼儿和让家长更好的了解自己孩子生活教育问题…

springboot自定义参数解析器

springboot自定义参数解析器1.前言2.springMVC参数解析器3.如何自定义参数解析器4测试1.前言 1.springMVC是如何把参数解析完毕后注入到controller方法参数上的呢&#xff1f;在javaweb阶段&#xff0c;我们都学过使用HttpServletRequest这个对象获取参数&#xff0c;比如 req…