Funky's NoteBook

Funky's NoteBook

it's better to burn out than to fade away

Kubernetes Storage
Kubernetes 持久化存储Kubernetes 项目中涉及存储最多的2个概念即是 Persistent Volume(PV)和 Persistent Volume Claim(PVC),这两个概念形成的kubernetes的持久化存储体系。 PV 与 PVC Persistent Volume(PV)即持久化存储卷,他是实现创建好的一个已经挂载在宿主机上的目录,示例定义如下: 12345678910111213apiVersion: v1kind: PersistentVolumemetadata: name: nfsspec: storageClassName: manua...
Kubernetes's API
Kubernetes 声明式 APIKubernetes 项目中,一个API 对象在 Etcd 里的完整资源路径由:Group(API 组)、Version(API 版本)和 Resource (API 资源类型)三部分组成。 通过该图可以清楚看见 kubernetes 里 API 组织方式是层层递进的。 123apiVersion: batch/v2alpha1kind: CronJob... 当Group和完整的版本保证后,kind标识版本下的对象,此时APIServer 就可以创建这个对象了。 首先发起 创建 CronJob 的 Post 请求后,我们编写的 YAML 的信息就...
Istio's traffic management
Istio 流量管理使用 Istio 的流量管理模型,本质上是将流量与基础设施扩容解耦,让运维人员可以通过 Pilot 指定流量遵循什么规则,而不是指定哪些 pod/VM 应该接收流量——Pilot 和智能 Envoy 代理会帮我们搞定。因此,例如,您可以通过 Pilot 指定特定服务的 5% 流量可以转到金丝雀版本,而不必考虑金丝雀部署的大小,或根据请求的内容将流量发送到特定版本。 将流量从基础设施扩展中解耦,这样就可以让 Istio 提供各种独立于应用程序代码之外的流量管理功能。 除了 A/B 测试的动态请求路由,逐步推出和金丝雀发布之外, 它还使用超时、重试和熔断器来处理故障恢复...
Views about the struct of istio
浅谈 Istio 架构​ 使用云平台可以为组织提供丰富的好处。然而,不可否认的是,采用云可能会给 DevOps 团队带来压力。开发人员必须使用微服务以满足应用的可移植性,同时运营商管理了极其庞大的混合和多云部署。 ​ 在较高的层次上,Istio 有助于降低这些部署的复杂性,并减轻开发团队的压力。它是一个完全开源的服务网格,可以透明地分层到现有的分布式应用程序上。它也是一个平台,包括允许它集成到任何日志记录平台、遥测或策略系统的 API。Istio 的多样化功能集使您能够成功高效地运行分布式微服务架构,并提供保护、连接和监控微服务的统一方法。 什么是服务网格?​ 服务网格...
Install Istio using helm
使用 Helm 安装 istio v1.1一、下载 Istio1、你可以通过以下官方提供的脚本安装最新版本的 istio,也可以通过设置ISTIO_VERSION对应的版本安装指定版本的 istio: 1$ curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.1.0 sh - 执行完毕您将看见如下输出: 12345678910111213 % Total % Received % Xferd Average Speed Time Time Time Current ...
Install Helm for k8s
为 Kubernetes 集群安装 HelmStep1: 使用官方提供的脚本安装 Helm:使用以下命令安装 Helm: 123curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.shchmod 700 get_helm.sh./get_helm.sh 在命令行执行: 1helm 如果你看见以下输入说明 Helm 安装成功: 123456789101112131415161718192021222324252627282930The Kubernetes package ma...
Install K8S dashboard with ingress
安装 kubernetes dashboard(仪表盘)同时开启 ingressKubernetes Dashboard是Kubernetes集群的基于Web的通用UI。 它允许用户管理在群集中运行的应用程序并对其进行故障排除,以及管理群集本身。 Step1: 为 dashboard 创建 service account我们创建一个命名空间在 kube-system 中, 名为 kubernetes-dashboard 的 Service Account: 12345apiVersion: v1kind: ServiceAccountmetadata: name: kubernetes...
Install a single master K8S cluster with kubeadm
Prestep: 使用 kubdeadm 安装 K8S 前每个节点: 关闭swap 关闭selinux 关闭防火墙 集群里的每个节点的/etc/hosts都要有所有节点ip和与其对应的hostname docker安装完毕 让系统内核开启网络转发 关闭 Swap(每个节点)12swapoff -a &>/dev/nullsed -i '/\s\+swap\s\+/d' /etc/fstab &>/dev/null 关闭 Selinux(每个节点)1234567891011121314setenforce 0 cat > /etc/selinux...
Go Core Dev Interface
接口接口是一个编程规约,一组方法签名的组合。接口是没有具体实现的逻辑,不能定义字段 变量和实例 实例里蕴含了变量值、变量类型和附着在类型上的方法等语义。实例和面向对象编程中的对象改了类似,我们使用实例来代表具体类型的变量,接口变量只有值和类型的概念,所有接口类型变量仍然称为接口变量,接口内部存放的具体类型变量被称为接口指向的实例。接口只有声明没有实现,所有定义一个新接口,通常又变成声明一个新接口,定义接口和声明接口两者代表相同的意思。 空接口 最常使用的接口字面量类型就是空接口 interface{} ,由于空接口的方法集为空,所以任意类型都被认为实现了空接口,任意类型的实例都可...
Go Core Dev Type-System
类型系统命名类型 & 未命名类型1234567891011121314151617181920package mainimport "fmt"type Person struct { name string age int}func main() { // 使用 struct 字面量声明的是未命名类型 a := struct { name string age int }{"andes", 18} fmt.Printf("%T\n", a) ...
avatar
Linus Lee
Coding everything.