背景

由于K8S官方提供的安装包可能不满足生产环境需求,以及对K8S的扩展进行开发的需求,需要对K8S从源代码去构建安装包。为了能够部署K8S集群,需要如下安装包:

  • 镜像
    • k8s.gcr.io/kube-controller-manager-amd64
    • k8s.gcr.io/kube-scheduler-amd64
    • k8s.gcr.io/kube-proxy-amd64
    • k8s.gcr.io/kube-apiserver-amd64
    • k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64
    • k8s.gcr.io/k8s-dns-sidecar-amd64
    • k8s.gcr.io/k8s-dns-kube-dns-amd64
    • k8s.gcr.io/coredns
    • k8s.gcr.io/pause-amd64
  • rpm包
    • kubelet
    • kubeadm
    • kubectl
    • cri-tools
    • kubernetes-cni

Read More

背景

在对K8S版本升级或修改K8S源码重新编译后,使用kubeadm去部署K8S集群时,会拉取其对应的固定版本kube镜像,因此需要确认相关镜像版本:

  • 通过kubeadm去部署K8S集群时,kube-controller-manager-amd64 / kube-scheduler-amd64 / kube-proxy-amd64 / kube-apiserver-amd64 这四个镜像版本跟 kubernetes(即kubelet/kubeadmin)版本保持一致,但是 dns 和 pause 镜像版本跟 kubernetes 版本没有直接关联
  • 关于如何确认对应的dns(k8s v1.13之前使用kube-dns; k8s v1.13版本之后使用coredns)和pause镜像版本,是确认镜像版本的重点

Read More

介绍

本文将介绍如何使用kubeadm工具来完成高可用的Kubernetes集群部署,主要包括:

  • 使用kubeadm工具来部署Kubernetes
  • 使用单独的TLS-etcd集群来保存集群数据
  • 使用keepalived来保证集群的高可用
  • 使用nginx来完成负载均衡

Read More

介绍

一个项目通常有多个源文件组成,关于如何编译这些源文件,Makefile定义了一套规则决定:

  • 哪些文件要先编译
  • 哪些文件后编译
  • 哪些文件要重新编译

整个编译操作,只要运行一条make命令即可。

本文将对makefile的基本规则/语法/使用进行介绍,并进行一些实践操作。

Read More