引言
Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。随着容器技术的流行,Kubernetes成为了现代云原生架构的核心。本文将手把手教你如何从零开始安装Kubernetes,并通过实战加深理解。
环境准备
在开始安装之前,请确保以下环境:
- 操作系统:推荐使用Ubuntu 18.04或CentOS 7
- 硬件要求:至少2GB内存
- 虚拟化:确保虚拟化扩展被启用(例如,在CentOS上使用
virsh capabilities命令)
安装步骤
1. 准备节点
首先,我们需要准备几个节点,这里以三节点集群为例。
- 主节点:用于运行Kubernetes控制平面组件。
- 工作节点:用于运行Pod。
2. 安装Docker
Kubernetes依赖于Docker容器引擎,因此我们需要在每个节点上安装Docker。
# 对于Ubuntu
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce
# 对于CentOS
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum install -y docker-ce docker-ce-cli containerd.io
3. 安装Kubeadm、Kubelet和Kubectl
Kubeadm、Kubelet和Kubectl是Kubernetes集群管理的三个关键工具。
# 对于Ubuntu
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
sudo apt-mark hold kubelet kubeadm kubectl
# 对于CentOS
sudo cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
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=kubelet kubeadm kubectl
EOF
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable --now kubelet
4. 初始化主节点
在主节点上,执行以下命令初始化Kubernetes集群。
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化完成后,会输出一些信息,包括一个用于后续加入工作节点的命令。
5. 配置Kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
6. 安装Pod网络
Kubernetes需要Pod网络来使Pod之间的通信成为可能。这里以Calico为例。
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
7. 加入工作节点
在所有工作节点上,执行以下命令将其加入集群。
sudo kubeadm join <主节点IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
8. 验证集群状态
kubectl get nodes
如果所有节点都处于Ready状态,说明集群安装成功。
实战演练
下面,我们将通过部署一个简单的Nginx应用来测试集群是否正常工作。
1. 创建Nginx部署
kubectl run nginx --image=nginx --replicas=2
2. 查看Pod状态
kubectl get pods
3. 访问Nginx服务
kubectl get svc
找到Nginx服务的IP地址,并在浏览器中访问它。
总结
本文详细介绍了如何从零开始安装Kubernetes集群,并通过实战加深了对Kubernetes的理解。希望本文能帮助你快速上手Kubernetes,并在实际项目中应用它。