Kubernetes 包管理工具 Helm

Helm概述Helm 是 Kubernetes 的软件包管理工具。类似于Ubuntu的包管理工具apt以及Centos的包管理工具yum。可以根据文档安装 helm v3 https://helm.sh/docs/intro/install/Helm安装安装 Helm# Use homebrew on Macbrew install helm# Upgrade helmbrew upgrade helm维护 Helm 仓库# 添加微软Azure云服务的中国镜像仓库helm repo add azure http://mirror.azure.cn/kubernetes/charts/# 更新仓库helm repo update# 移除仓库helm repo remove azure# 列举仓库$ helm repo listNAME URLstable https://charts.helm.sh/stableingress-nginx https://kubernetes.github.io/ingress-nginxazure ...

Docker Desktop 启用 Kubernetes

Docker Desktop 简介Docker Desktop 是 Docker 公司推出的一款桌面应用程序,用于在本地搭建容器部署环境。Docker Desktop 提供对 Kubernetes 的支持,会启动一个单节点 Kubernetes 集群,并同时安装kubectl命令工具。使用 Docker Desktop 构建容器化应用程序,并将其部署到使用相同 Docker 实例的 Kuberntes 本地集群上,从而使得 Kubernetes 能够直接访问存储于 Docker 本地 Registry 的镜像。阿里云容器服务教程https://github.com/AliyunContainerService/k8s-for-docker-desktopKubernetes 相关组建的镜像地址目前都在海外,国内无法快速拉去镜像,这个项目通过修改优先从阿里云的镜像服务器拉取镜像,然后再修改为对应的tag名称的方式,解决访问海外镜像困难的问题。项目在images.properties文件中,维护了不同 Kubernetes 版本的镜像地址。k8s.gcr.io/pause:3.2=r...

Docker镜像

镜像仓库本地镜像都保存在 Docker 宿主机的 /var/lib/docker 目录下。镜像从仓库下载而来,而仓库存在于 Registry 中。默认的 Registry 是由 Docker 公司运营的公用 Registry 服务,即 Docker Hub。Docker Hub 中有两种类型的仓库: 用户仓库(user repository):由 Docker 用户创建的,用户仓库的命名由用户名和仓库名两部分组成。 顶层仓库(top-level repository):由 Docker 内部的人来管理的,顶层仓库只包含仓库名部分。镜像类型intermediate imagesDocker 镜像是分多层构成的,层与层之间存在继承关系。所有的 Docker 文件系统层默认存储在 /var/lib/docker/graph 目录,Docker 称其为图形数据库。比如通过命令 docker pull fedora 拉去镜像时,除了会下载 fedora:latest 层,还会下载一个匿名的<none>:<none>中间层镜像,可以通过-a查看这些中间层。因此,通...

Kubernetes 概念

Pod为什么需要使用 Pod 包含容器而不是直接使用容器对于一个由多个进程组成的应用程序,无论使用IPC进程间通信,还是本地存储文件进行通信,都要求这些进程位于同一台极其上。如果在单个容器中运行多个不相关的进程时,会存在下述问题: 主进程是正常运行的而其他进程的异常,则无法让 Docker 识别为崩溃的容器,从而触发自动重启机制。 单个容器中运行的进程都将记录到相同的标准输出中,这将很难确定每个进程分别输出了什么。考虑上述实践过程中发现的问题,Docker 与 Kubernetes 将容器设计为每个容器只运行一个进程(除非进程本身产生子进程)。正是由于不能将多个进程聚集在一个单独的容器中,才需要一种更为高级的结构来将容器绑定在一起,并将其作为一个单元进行管理,这就是 Pod 的本质。通过在 Pod 中下同时运行一些密切相关的进程,并为它们提供几乎相同的环境,在保证一定的隔离的情况下,使得这些进程仿佛全部运行于单个容器中。既利用了容器所提供的特性,同时又使得这些进程仿佛全部运行同个容器中一样,近乎完美的结局了这个问题。Kubernetes 通过配置 Docker 来让一个 Po...

跨域请求

同源策略定义:浏览器禁止从一个源上加载的脚本访问加载自另一个源文档属性判定:如果两个URL的协议、域名、端口相同,则表示同源跨域的充要条件 请求必须为ajax请求 请求中的Host与Origin不相同(违反同源策略)以在 a.com 源页面请求 b.com 接口加载数据为例:Origin: http://a.com ==> Host: b.com浏览器会检查响应头中是否存在 Access-Control-Allow-Origin:http://a.com 的响应头,表示服务器端 b.com 是否允许来自 http://a.com 的跨域请求,否则将拒绝加载服务器响应的数据。可以通过抓包工具看到响应的数据包是完整的,仅是因为浏览器拒绝加载该数据包。跨域请求类型浏览器将CORS请求分成两类:简单请求(Simple requests)和预检查请求(Prefighted requests),浏览器对这两种类型的CORS请求的处理是不同的。其中,简单请求不会触发CORS prefight(跨域请求预检查)。简单请求(Simple requests)首先,请求方法必须为HEAD/P...

Java版本特性

允许使用数值文字的加强int billion = 1_000_000_000;允许在switch中使用字符串String availability = "available";switch(availability) {}允许使用前缀0b创建二进制文字int binary = 0b1001_1001;集合语言简写List list = ["item"];String item = list[0];Set set = {"item"};Map map = {"key" : 1};int value = map["key"];参考资料http://code.joejag.com/2009/new-language-features-in-java-7.htmlhttp://openjdk.java.net/projects/coin/http://developer.51cto.com/art/201004/194814_1.htm