引言
在当今的云计算时代,容器技术已经成为了一种主流的部署方式。Kubernetes(简称K8s)作为目前最流行的容器编排工具,能够帮助我们轻松管理容器化应用。本文将手把手教你从零开始安装K8s集群,并通过可视化操作指南,让你轻松掌握容器编排。
环境准备
在开始安装K8s之前,我们需要准备以下环境:
- 操作系统:推荐使用CentOS 7或Ubuntu 18.04。
- 虚拟化技术:确保你的操作系统支持虚拟化技术,如KVM或VMware。
- Docker:K8s依赖于Docker,所以需要先安装Docker。
- 网络工具:如ping、curl等。
安装Docker
以CentOS 7为例,安装Docker的步骤如下:
# 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动Docker服务
sudo systemctl start docker
# 设置Docker服务开机自启
sudo systemctl enable docker
安装Kubeadm、Kubelet和Kubectl
以下命令适用于大多数Linux发行版:
# 安装依赖
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
# 添加Kubernetes仓库
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
# 安装Kubeadm、Kubelet和Kubectl
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
# 设置Kubelet开机自启
sudo systemctl enable kubelet
初始化Master节点
在Master节点上执行以下命令:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
执行完成后,你会得到一个初始化命令,用于将节点加入集群:
sudo mkdir -p /etc/rancher/k3s/kubelet
sudo cp -i /etc/rancher/k3s/k3s.yaml /etc/rancher/k3s/kubelet/kubelet.yaml
sudo cat <<EOF | sudo tee /etc/rancher/k3s/kubelet/kubelet.yaml
apiVersion: kubelet.config.k8s.io/v1
kind: KubeletConfiguration
authToken: "your-token"
EOF
# 将Master节点的kubeconfig文件复制到用户目录
sudo cp -i /etc/rancher/k3s/k3s.yaml /home/$(whoami)/.kube/config
sudo chown $(whoami):$(whoami) /home/$(whoami)/.kube/config
部署网络插件
这里以Calico为例,部署Calico网络插件:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
加入Worker节点
在Worker节点上执行以下命令:
sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
其中,<master-ip>为Master节点的IP地址,<token>和<hash>分别为你之前获取的token和hash值。
验证集群状态
在Master节点上执行以下命令,查看集群状态:
kubectl get nodes
此时,你应该能看到所有节点都处于Ready状态。
可视化操作指南
为了方便管理K8s集群,我们可以使用可视化工具,如Kubeadm Dashboard、Grafana、Prometheus等。
以下以Kubeadm Dashboard为例,部署Kubeadm Dashboard:
# 部署Kubeadm Dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
# 获取Kubeadm Dashboard的token
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}') -o jsonpath="{.data.token}" | base64 --decode; echo
# 访问Kubeadm Dashboard
# 访问地址:https://<master-ip>:30000
总结
通过本文,你已成功从零开始安装了K8s集群,并通过可视化操作指南掌握了容器编排。希望本文能帮助你更好地了解和使用Kubernetes。
