1. 引言

Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。本文将详细介绍如何安装Kubernetes 1.12版本,帮助您轻松上手并告别复杂的部署过程。

2. 安装前的准备工作

在开始安装之前,请确保您的系统满足以下要求:

  • 操作系统:Ubuntu 16.04 或 CentOS 7
  • CPU:位
  • 内存:至少2GB
  • 磁盘:至少1GB(用于Kubernetes存储)

3. 安装步骤

3.1 准备主机

  1. 设置主机名

为您的服务器设置主机名,以便于后续操作。例如,将主机名设置为 k8s-master

   hostnamectl set-hostname k8s-master
  1. 禁用Swap

在安装Kubernetes之前,需要禁用Swap。执行以下命令:

   sudo swapoff -a
  1. 更新系统

更新系统软件包,确保所有依赖项都是最新的。

   sudo apt-get update
   sudo apt-get upgrade

3.2 安装Docker

  1. 安装Docker
   sudo apt-get install docker.io
  1. 启动Docker服务
   sudo systemctl start docker
   sudo systemctl enable docker

3.3 安装Kubernetes组件

  1. 安装kubeadm、kubelet和kubectl
   curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
   cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
   deb https://apt.kubernetes.io/ kubernetes-xenial main
   EOF
   sudo apt-get update
   sudo apt-get install -y apt-transport-https ca-certificates curl
   curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
   cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
   deb https://apt.kubernetes.io/ kubernetes-xenial main
   EOF
   sudo apt-get update
   sudo apt-get install -y kubelet kubeadm kubectl
  1. 启动kubelet服务
   sudo systemctl start kubelet
   sudo systemctl enable kubelet

3.4 初始化集群

  1. 初始化master节点
   sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  1. 将worker节点加入到集群

将worker节点加入到集群,需要执行以下命令(在master节点上执行):

   sudo kubectl config set-context --current --cluster k8s-master --namespace default --host <master-node-ip>:43

其中 <master-node-ip> 为master节点的IP地址。

  1. 安装网络插件

安装Flannel网络插件,以实现跨节点通信。

   kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

4. 验证安装

  1. 检查集群状态
   kubectl get nodes

应该看到所有节点都已正常加入集群。

  1. 部署一个示例应用
   kubectl apply -f https://k8s.io/examples/application/deployment.yaml
  1. 查看应用状态
   kubectl get pods

应该看到应用已成功部署。

5. 总结

通过本文的教程,您已经成功安装了Kubernetes 1.12版本,并掌握了基本的集群管理操作。希望这篇教程能帮助您轻松上手Kubernetes,并开启您的容器化之旅。