• kubernets: StatefulSets Basics

    Objectives Before you begin Creating a StatefulSet Pods in a StatefulSet Scaling a StatefulSet Updating Containers Deleting StatefulSets 原文在这。部分涉及到PV的地方做了修改。 Objectives StatefulSets是为了有状态的应用和分布式系统设计的。然而有状态应用、分布式系统的管理是一个宽泛、复杂的主题。为了演示St...


  • 写给自己的Java面试题(2):复用类、多态

    可以通过this访问static变量吗? 可以。static可以通过类和对象来访问,this是对象的引用,当然可以通过this访问static变量、方法。 类域初始化的规则? 本质上都是赋值为0,具体到基础类型则为0(int), 0.0(float), false(boolean),而对象引用则为null。 注意String, Integer这种基础类型的包装类,类域实际是个引用,print出来是null的。 父类和子类的初始化顺序是什么? 先父类,后子类,不管子类里有没有调用super(a...


  • 怎么设置pxe安装时使用的cobbler的默认ks?

    在之前的如何为linux集群批量装机?中,提到了可以使用cobbler来安装pxe装机环境,最近在写cobbler安装的脚本,遇到了一个问题: 怎么设置pxe安装时使用的cobbler的默认ks? 之前解决过这个问题,但是时过境迁已经完全忘记了,这里记录下过程。 cobbler import --arch=x86_64 --path=/mnt/iso --name=CentOS-7 cobbler signature update cobbler profile edit --name=Ce...


  • 写给自己的Java面试题(1)

    什么时候才相等? 对于基础类型来说,值相等则相等。 int a =3; int b = 3; System.out.println("a==b is " + (a==b)); //a==b is true 对于对象来说,“==”比较的其实是对象的引用,如果要比较两个对象是否相等,应该用.equals()。 Integer a = 3; Integer b = 3; Integer c = b; System.out.println("a==b is " + (a==b)); System.o...


  • kubernets部署备忘

    记录下GFW内k8s的部署流程,备忘。 1、各节点上配置hostname,配置resole.conf echo "titan1" > /etc/hostname sysctl kernel.hostname="titan1" echo "nameserver x.x.x.x" >> /etc/resolv.conf 2、各节点上加k8s的repo cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernete...


  • 谈谈kubernets的service组件的Virtual IP

    Service kube-proxy NodePort k8s的pod可以有多个副本,但是在访问pod时,会有几个问题: 客户端需要知道各个pod的地址 某一node上的pod如果故障,客户端需要感知 为了解决这个问题,k8s引入了service的概念,用以指导客户端的流量。 Service 以下面的my-nginx为例。 pod和service的定义文件如下: [root@localhost k8s]# cat run-my-nginx.yaml apiVe...


  • kubernets的网络插件:flannel

    docker的网络方案 k8s的flannel模式 flannel模式原理 flannel模式:udp vs vxlan 部署及验证 kubernets的网络,从设计上来讲是“扁平、直接”的,即要求: 所有容器可以不使用NAT技术就可以与其他容器通信 所有节点(物理机 虚拟机 容器)都可以不使用NAT同容器通信 容器看到的IP地址和别的机器看到的IP是一致的 docker的网络方案 docker的网络支持如下四种:...


  • Scala字符串插值的妙用,以及java+scala混合编程

    一 二 一 我们在项目中遇到一个需求,输入为json字符串,如: { "title": "lrtest", "alg": "LogisticRegression", "params": { "inputTable": "xxx.lrtest3", "labelColumn": "label", "featureColumns": [ {"columnName":"f0","columnType":"Double"}, ...


  • Java虚拟机笔记(3):Java内存模型与线程

    Java 内存模型 Java线程 从硬件出发: 1、各处理器有自己的缓存,但当多个处理器涉及的同一块主内存,处理器需要遵循一些一致性协议来操作主内存。Java Memory Model(JMM)与此类似。 2、为了处理器内部的运算单元能够最大化得到利用,处理器可能会对输入代码进行乱序运行优化。Java虚拟机的编译器也有指令重排序的功能。 Java 内存模型 分为整个虚拟机范围的主内存和各个线程的工作内存;线程只能操作自己的工作内存,不能直接操作主内存或其他线程的工作内存(线程间的...


  • Java虚拟机笔记(2):对象分配与回收机制

    Java虚拟机内存回收 1、怎么判断对象已死? 内存回收算法 垃圾收集器 内存分配 对象优先分配到Eden区 大对象直接分配到老年代 长期存活对象进入老年代 动态对象年龄判断 内存分配担保 Java虚拟机内存回收 1、怎么判断对象已死? 方法1:引用计数法 道理很简单,GC时查看对象的引用计数,如果引用计数为0,说明孤家寡人一个,回收掉就好...