推荐阅读:
[AI-人工智能]免翻墙的AI利器:樱桃茶·智域GPT,让你轻松使用ChatGPT和Midjourney - 免费AIGC工具 - 拼车/合租账号 八折优惠码: AIGCJOEDISCOUNT2024
[AI-人工智能]银河录像局: 国内可靠的AI工具与流媒体的合租平台 高效省钱、现号秒发、翻车赔偿、无限续费|95折优惠码: AIGCJOE
[AI-人工智能]免梯免翻墙-ChatGPT拼车站月卡 | 可用GPT4/GPT4o/o1-preview | 会话隔离 | 全网最低价独享体验ChatGPT/Claude会员服务
[AI-人工智能]边界AICHAT - 超级永久终身会员激活 史诗级神器,口碑炸裂!300万人都在用的AI平台
本文详细介绍在Linux操作系统下如何部署Kubernetes集群,涵盖kubectl命令的使用及具体部署步骤,旨在帮助用户高效地在Linux环境中搭建和管理Kubernetes集群。
本文目录导读:
Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序,在 Linux 系统下部署 Kubernetes 集群,可以帮助企业高效地管理容器化应用,提高运维效率,本文将详细介绍在 Linux 系统下部署 Kubernetes 集群的步骤,包括环境准备、安装 Kubernetes 组件、配置网络和存储等。
环境准备
1、准备一台或多台 Linux 服务器,建议使用 Ubuntu 18.04 或 CentOS 7.6 及以上版本。
2、安装 Docker:Kubernetes 需要依赖 Docker 来运行容器,在终端执行以下命令安装 Docker:
Ubuntu:
sudo apt-get update sudo apt-get install docker.io
CentOS:
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
3、启动 Docker 并设置为开机自启:
sudo systemctl start docker sudo systemctl enable docker
4、安装 kubeadm、kubelet 和 kubectl:kubeadm 用于初始化 Kubernetes 集群,kubelet 用于运行集群中的节点,kubectl 用于与集群进行交互。
Ubuntu:
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add - cat <<EOF | sudo tee -a /etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl
CentOS:
sudo cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/centos/7/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF sudo yum install -y kubelet kubeadm kubectl
5、设置 kubeadm、kubelet 和 kubectl 为开机自启:
sudo systemctl enable kubelet sudo systemctl start kubelet
初始化 Kubernetes 集群
1、初始化主节点:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
执行上述命令后,系统会自动生成一个 token,用于后续添加工作节点。
2、设置普通用户权限:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装网络插件
Kubernetes 集群需要安装网络插件来实现不同节点之间的通信,这里我们使用 Calico 作为网络插件。
1、下载 Calico 插件的 YAML 文件:
curl -O https://docs.projectcalico.org/manifests/calico.yaml
2、应用 YAML 文件:
sudo kubectl apply -f calico.yaml
添加工作节点
1、在工作节点上执行以下命令加入集群:
sudo kubeadm join <主节点 IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
<主节点 IP> 是主节点的 IP 地址,<token> 是初始化主节点时生成的 token,<hash> 是主节点的 ca 证书哈希值。
2、检查节点状态:
sudo kubectl get nodes
配置存储
Kubernetes 集群需要配置存储来持久化数据,这里我们使用 Local Persistent Volume(本地持久卷)。
1、创建存储类:
cat <<EOF | sudo kubectl apply -f - apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-storage provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer EOF
2、创建 PersistentVolume(持久卷):
cat <<EOF | sudo kubectl apply -f - apiVersion: v1 kind: PersistentVolume metadata: name: example-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: local-storage local: path: /mnt/disks/ssd1 EOF
3、创建 PersistentVolumeClaim(持久卷声明):
cat <<EOF | sudo kubectl apply -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: example-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: local-storage EOF
部署应用
1、创建 Deployment:
cat <<EOF | sudo kubectl apply -f - apiVersion: apps/v1 kind: Deployment metadata: name: example-deployment spec: replicas: 1 selector: matchLabels: app: example template: metadata: labels: app: example spec: containers: - name: example image: nginx:latest ports: - containerPort: 80 volumeMounts: - name: example-storage mountPath: /usr/share/nginx/html volumes: - name: example-storage persistentVolumeClaim: claimName: example-pvc EOF
2、检查应用状态:
sudo kubectl get pods
至此,您已经成功在 Linux 系统下部署了一个 Kubernetes 集群,您可以在此基础上继续扩展集群、部署更多应用,以及进行其他相关操作。
中文相关关键词:Linux, 部署, Kubernetes, 集群, 主节点, 工作节点, 网络插件, Calico, 存储类, 持久卷, 持久卷声明, Deployment, 应用, YAML, token, 配置, 环境准备, Docker, kubeadm, kubelet, kubectl, 初始化, 加入集群, 检查状态, 扩展集群, 运维, 容器编排, 自动化部署, 高效管理, 容器化应用, 运维效率, 服务器, 通信, 持久化数据, 本地存储, 读写权限, 资源请求, 集群管理, 集群监控, 应用部署, 集群维护, 集群优化, 集群扩展, 集群安全性, 集群性能, 集群稳定性, 集群备份, 集群迁移, 集群监控工具, 集群故障排查, 集群自动化部署, 集群资源调度, 集群负载均衡, 集群网络优化, 集群存储优化, 集群安全性策略, 集群性能监控, 集群故障转移, 集群备份与恢复, 集群监控平台, 集群日志管理, 集群资源管理, 集群运维工具
本文标签属性:
Linux操作系统:linux操作系统的特点
Kubernetes集群部署:kubernetes集群部署组件
linux 部署 kubernetes 集群:kubernetes集群安装