引言
Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化计算机容器化应用程序的部署、扩展和管理。随着微服务架构的兴起,Kubernetes因其高效、灵活的特性成为了容器编排的首选工具。本文将手把手教你如何轻松安装Kubernetes,从入门到实战一步到位。
准备工作
在开始之前,请确保以下准备工作已完成:
- 一台物理机或虚拟机,推荐配置为2核CPU、4GB内存。
- 操作系统为Ubuntu 18.04或CentOS 7。
- SSH客户端工具,如PuTTY。
- 需要准备至少3台机器,其中一台作为Master节点,另外两台作为Worker节点。
安装步骤
1. 安装Docker
首先,在每台机器上安装Docker。以下是Ubuntu 18.04的安装步骤:
# 安装Docker引擎
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# 启动Docker服务
sudo systemctl start docker
# 将Docker添加到开机启动
sudo systemctl enable docker
对于CentOS 7,可以使用以下命令:
# 安装Docker引擎
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动Docker服务
sudo systemctl start docker
# 将Docker添加到开机启动
sudo systemctl enable docker
2. 安装Kubernetes组件
接下来,安装Kubernetes的所有组件。这里以Ubuntu 18.04为例,可以使用以下命令:
# 安装Kubernetes相关工具
sudo apt-get install -y apt-transport-https ca-certificates curl
# 添加Kubernetes GPG密钥
sudo curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
# 添加Kubernetes apt仓库
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
# 安装Kubernetes
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
# 设置kubelet开机启动
sudo systemctl enable kubelet
对于CentOS 7,可以使用以下命令:
# 安装Kubernetes相关工具
sudo yum install -y yum-utils
sudo cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg
exclude=kubelet kubeadm kubectl
EOF
# 安装Kubernetes
sudo yum install -y kubelet kubeadm kubectl
# 设置kubelet开机启动
sudo systemctl enable kubelet
3. 初始化Master节点
在Master节点上,执行以下命令初始化Kubernetes集群:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化完成后,记录下命令行中的输出内容,特别是admin.conf文件所在的路径,例如:
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
4. 配置Worker节点
在Worker节点上,执行以下命令:
sudo kubeadm join <Master节点IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
替换 <Master节点IP>、<token> 和 <hash> 为初始化Master节点时记录的信息。
5. 安装网络插件
选择一个网络插件(如Calico、Flannel等)来配置网络。以下是安装Calico插件的示例:
sudo kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
实战演练
完成以上步骤后,你已经成功安装了Kubernetes集群。接下来,我们可以进行一些实战演练,比如部署一个简单的Nginx应用:
# 创建Nginx部署文件
cat <<EOF | sudo tee /manifests/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
EOF
# 创建Nginx服务
cat <<EOF | sudo tee /manifests/service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
EOF
# 部署Nginx
sudo kubectl apply -f /manifests/deployment.yaml
# 查看Nginx服务
sudo kubectl get svc
此时,你可以通过访问Master节点或任意Worker节点的80端口,查看Nginx应用的响应。
总结
本文手把手教你从入门到实战一步到位地安装了Kubernetes集群,并通过实战演练展示了如何部署一个简单的Nginx应用。希望本文能帮助你更好地理解Kubernetes,为你的后续学习和实践打下坚实基础。