Kubernetes 安装工具 Kubeadm

Kubernetes 可以使用 Kubeadm + Ansible 的方式搭建,本文介绍 Kubeadm 概念和作用。

 

1. Kubeadm 是什么

Kubeadm 是一个提供 Kubeadm init 和 Kubeadm join 命令,用于创建 Kubernetes 集群的快速路径的工具。

Kubeadm 可以在多种设备上运行,可以是 Linux笔记本电脑,虚拟机,物理/云服务器或 Raspberry Pi。这使得 Kubeadm 非常适合与不同种类的配置系统(例如Terraform,Ansible等)集成。

开发者可以在支持安装 deb 或 rpm 软件包的操作系统上非常轻松地安装 Kubeadm。SIG 集群生命周期SIG Cluster Lifecycle Kubeadm的 SIG 相关维护者提供了预编译的这些软件包,也可以在其他操作系统上使用。

 

2. Kubeadm 目标

Kubeadm 的目标是在不安装其他功能插件的基础上,建立一个通过 Kubernetes 一致性测试 Kubernetes Conformance tests 的最小可行集群。它在设计上并不会安装网络解决方案,而是需要用户自行安装第三方符合 CNI 的网络解决方案(如:flannel,calico,weave network等)。

 

3. Kubeadm 子任务

  • kubeadm init 初始化Kubernetes主节点
  • kubeadm join 初始化Kubernetes工作节点并将其加入群集
  • kubeadm upgrade 将Kubernetes集群升级到更新版本
  • kubeadm token 用于管理Kubeadm join所使用的令牌
  • kubeadm reset 恢复由Kubeadm init或 Kubeadm join对此主机所做的任何更改
  • kubeadm version 版本打印Kubeadm版本

 

4. Kubeadm 安装

安装Kubeadm需要手动安装Kubelet和Kubectl,因为Kubeadm是不会安装和管理这两个组件的。

  • Kubelet:在群集中的所有计算机上运行的组件,并执行诸如启动pod和容器之类的操作。
  • Kubectl:操作群集的命令行工具。

1) Ubuntu

apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

2) CentOS

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable kubelet && systemctl start kubelet

 

5. CFSSL

CFSSL 是 CloudFlare开源的一款PKI/TLS工具。它既是命令行工具,也是用于签名、验证和捆绑TLS证书的HTTP API 服务器。

CFSSL包括: - 一组用于生成自定义 TLS PKI 的工具 - cfssl,即CFSSL的命令行工具 - multirootca 是可以使用多个签名密钥的证书颁发服务器 - kbundle 用于构建证书池 - cfssljson 从cfssl和multirootca中获取JSON输出,并将证书,密钥,CSR和bundle写入磁盘。

PKI 借助数字证书和公钥加密技术提供可信任的网络身份,通常,证书就是一个包含如下身份信息的文件: - 证书所有组织的信息 - 公钥 - 证书颁发组织的信息 - 证书颁发组织授予的权限,如:证书有效期、适用的主机名、用途等 - 使用证书颁发组织私钥创建的数字签名。

 

6. CFSSL的安装

由于运行环境不同,故使用Go命令进行编译安装,在安装之前请确保已安装1.8版本以上的Go命令行以及配置了环境变量GOPATH。

go get -u github.com/cloudflare/cfssl/cmd/...

Kubernetes 可以使用 Kubeadm + Ansible 的方式搭建,本文介绍 Ansible 概念和作用。 1. Ansible 是什么Ansible是个什么东西呢?官方 ...