- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 java8 -Date and Time
为什么我们需要一个新的日期和时间库?Java长期存在的一个问题是对日期和时间的支持非常不理想。例如,现有的类(例如java.util.Date和SimpleDateFormatter)不是线程安全的,导致用户可能出现并发问题 - 普通开发人员在编写日期处理代码时并不希望处理这样的问题。一些日期和时间类的API设计也表现的差强人意。 例如,在Java 1.0中,对日期和时间的支持只能依赖jav...
2019-09-12 11:31:28
387
原创 Kubernetes addons 之 Ingress Controllers部署
Ingress管理群集中服务的外部访问的API对象,通常是HTTP。Ingress可以提供负载平衡,SSL 终止和基于名称的虚拟主机。Ingress是什么Ingress, Kubernetes v1.1开始增加的,暴露集群 services 的 http和https的路由。流量路由规则的控制是定义在Ingress resource。 internet ...
2019-09-03 10:03:22
618
原创 Kubernetes addons 之 coredns部署
DNS 是 Kubernetes 的核心功能之一,通过 kube-dns 或 CoreDNS 作为集群的必备扩展来提供命名服务。Kubernetes基于DNS的服务发现在Kubernetes集群推荐使用Service Name作为服务的访问地址,因此需要一个Kubernetes集群范围的DNS服务实现从Service Name到Cluster Ip的解析,这就是Kubernetes基于DNS的...
2019-09-03 10:02:34
905
原创 Kubernetes addons 之 Dashboard部署
Dashboard是Kubernetes集群的基于Web的通用UI。 它允许用户管理在群集中运行的应用程序并对其进行故障排除,以及管理群集本身。##安装步骤解压源码包修改配置文件创建dashboard容器创建Service Account,Dashboard Role & Role Binding测试访问解压源码包我们解压了kubernetes-server-linu...
2019-09-03 10:01:49
729
原创 Kubernetes Node 二进制部署
K8s Node 两个组件:kubeletkube-proxy每个节点上都运行一个 kubelet 服务进程,默认监听 10250 端口,接收并执行 master 发来的指令,管理 Pod 及 Pod 中的容器。每个 kubelet 进程会在 API Server 上注册节点自身信息,定期向 master 节点汇报节点的资源使用情况,并通过 cAdvisor 监控节点和容器的资源。每...
2019-09-03 10:01:13
550
原创 Kubernetes Master 二进制部署
K8s Master 三个组件:kube-apiserverkube-controller-managerkube-schedulerkubernetes master 节点运行如下组件: kube-apiserver kube-scheduler kube-controller-manager. 其中kube-scheduler 和 kube-controller-manager ...
2019-09-03 10:00:35
635
原创 Flannel 安装部署
FlannelFlannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。这次的分享内容将从Flannel的介绍、工作原理及安装和配置三方面来介绍这个工具的使用方法。Flannel通过给每台宿主机分配一个子网的方式为容器提供虚拟网络,它基于Li...
2019-09-03 09:59:58
1968
原创 etcd 集群部署
Etcd 是 CoreOS 基于 Raft 开发的分布式 key-value 存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)。Etcd 主要功能基本的 key-value 存储监听机制key 的过期及续约机制,用于监控和服务发现原子 CAS 和 CAD,用于分布式锁和 leader 选举环境准备操作系统IP 地址HostNameCent...
2019-09-03 09:59:08
1014
1
原创 Kubernetes 核心组件
本文介绍了Kubernetes集群所需的各种二进制组件。Master 组件Master组件提供集群的管理控制中心。Master 组件提供全局决策(比如调度),以及检测(比如健康检查)和响应集群时间(比如副本不够时,的调用replication controller启动新的podMaster组件可以在集群中任何节点上运行。但是为了简单起见,通常在一台VM/机器上启动所有Master组件,并且不...
2019-09-03 09:58:25
293
原创 Kubernetes 架构
Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。下面这张图是Kubernetes的架构图。##Kubernetes 节点在这张系统架构图中,我们把服务分为运行在工作节点上的服务和组成集群级别控制板的服务。Kubernetes节点有运行应用容器必备的服务,而这些都是受Master的控制。每次个节...
2019-09-03 09:57:50
319
原创 Kubernetes是什么
#Kubernetes是什么?Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。通过Kubernetes你可以:快速部署应用快速扩展应用无缝对接新的应用功能节省资源,优化硬件资源的使用我们的目标是促进完善组件和工具的生态系统,以减轻应用程序在公有云或私有云中运行的负担。#Kubernetes 特点可移植: 支持公...
2019-09-03 09:57:00
126
原创 docker 二进制安装
系统要求centos 的稳定版本,不支持测试版本.本章节选择的系统是CentOS-7-x86_64-DVD-1708软件下载下载地址如下:wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgztar zxf docker-18.06.3-ce.tgzcp docker/* /us...
2019-09-03 09:56:00
387
原创 kubeadmin 快速部署k8s集群
安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件:一台或多台机器,操作系统 CentOS7.x-86_x64硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多集群中所有机器之间网络互通可以访问外网,需要拉取镜像禁止swap分区学习目标在所有节点上安装Docker和kubeadm部署Kubernetes Master部署容器网络...
2019-09-03 09:55:26
2567
原创 SSH无密码登录
#免密登录的目的在搭建Linux集群服务的时候,想在master或者跳板机上执行远程命令的时候,我们需要一遍一遍的属于密码,如果是编写脚本的话,我们还需要利用expect工具自动实现交互任务,这在实际生产环境当中是相当耗时的.所以我们需要了解linux的免密码登录。#环境三台虚拟机,如下:iphostname10.0.52.13k8s.master10.0.52...
2019-09-03 09:54:13
755
原创 java8 新特性
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的日期 API,新的Stream API 等。在Java SE 8中,添加了新类,并且增强了现有类以利用lambda表达式和Stream 。 您可以在以下包中找到大多数这些新类和增强类:java.util: 除了jav...
2019-09-03 09:53:17
148
原创 Lambda 表达式
Lambda 表达式想要更好的了解Lambda,请先了解匿名类, 匿名类通常比命名类更简洁,但对于只有一个方法的类,即使是匿名类也似乎有点繁琐,Lambda表达式允许更紧凑地表达单方法类的实例。我们接下来一步步的来了解Lambda。首先我们有一个Person类import java.util.List;import java.util.ArrayList;import java.tim...
2019-09-03 09:52:36
515
原创 java8 之方法引用
方法引用你可以使用lambda表达式来创建匿名方法。 但是,有时,lambda表达式只是仅仅调用一个方法。在这些情况下,通过方法名称调用现有方法会更清楚得表达意思。java8得方法引用现在允许你这样做,对于已有名称的方法,方法引用是紧凑的,易于阅读的lambda表达式。在Lambda 表达式中,我们创建了一个Person类:public class Person { public ...
2019-09-03 09:51:57
140
原创 Java 8 – Default Method
Default Methods传统上,Java程序的接口是将相关方法按照约定组合到一起的方式。实现接口的类必须为接 口中定义的每个方法提供一个实现,或者从父类中继承它的实现。但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题。现实情况是,现存的实体类往往不在接口设计者的控制范围之内,这些实体类为了适配新的接口约定也需要进行修改。由于Java 8的 API在现存的接口上引...
2019-09-03 09:50:44
214
原创 java8 – Functional Interfaces
什么是Functional interfacesFunctional interfaces 也被称作Single Abstract Method interfaces (SAM Interfaces). 顾名思义,它们有且只有一个抽象方法. Java 8引入了一个注释,即**@FunctionalInterface**,当你使用@FunctionalInterface注释的接口违反了Functi...
2019-09-03 09:49:54
347
原创 java8 -stream part1
使用流操作来表达复杂的数据处理查询。集合是Java中使用多的API。要是没有集合,还能做什么呢?几乎每个Java应用程序都会制 造和处理集合。集合对于很多编程任务来说都是非常基本的:它们可以让你把数据分组并加以处理。例如,你希望根据创建一个银行的交易集合来分析用户的消费行为。所以,你希望通过处理整个集合来了解用户的消费的消费情况,这在银行业务方面很常见,也很重要,但是java在集合操作方面却远远...
2019-09-03 09:48:49
273
原创 java8 -stream part2
Stream 复杂API的操作在第一部分stream part1中,我们已经学习了部分stream的api来处理数据集合。我们先复习一下上一章节的内容,对transaction value 大于100的值进行汇总求和,我们建立了一个由中间操作(过滤器,映射)和终端操作(reduce)组成的pipeline。如下所示:例1double sumExpensive = ...
2019-09-03 09:48:03
278
原创 java8 -Optional
厌倦了空指针异常? 考虑使用Java SE 8的Optional!使代码更具可读性并使得免受空指针异常的影响。有人曾经说过,在未处理空指针异常之前,你不是真正的Java程序员。 开玩笑说,空引用是许多问题的根源,因为它通常表示缺少值。 Java SE 8引入了一个名为java.util.Optional的新类,可以缓解一些这样的问题。让我们从一个例子开始,看看空指针的危险性。 下面是一个计算机...
2019-09-03 09:45:11
294
原创 java8 -CompletableFuture
新颖的、优雅的异步处理数据的方法Java SE 8为Java平台带来了许多新东西,其中很多已经在生产环境当中得到了应用。但是在异步编程方法,却并不是每个程序员都能很好的使用,也并非所有应用程序都使用java.util.concurrent包,即使此包中对于编写正确的并发代码提供的原语非常有用。java.util.concurrent包在Java 8中增加了几个非常好的补充接口和实现类。我们在本...
2019-09-03 09:23:14
576
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人