跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Kubernetes环境设置
”︁(章节)
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= Kubernetes环境设置 = '''Kubernetes环境设置'''是学习Kubernetes的第一步,它涉及安装和配置必要的工具和组件,以便在本地或云端运行Kubernetes集群。本文将详细介绍如何设置Kubernetes环境,包括单节点集群(如Minikube、Kind)和生产级集群(如kubeadm、托管Kubernetes服务)的部署方式。 == 介绍 == Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。在开始使用Kubernetes之前,需要先设置一个可用的环境。根据使用场景的不同,可以选择本地开发环境或生产环境。 常见的Kubernetes环境设置方式包括: * '''本地开发环境''':适合初学者和开发人员,如Minikube、Kind、Docker Desktop的Kubernetes模式。 * '''生产环境''':适合企业级部署,如使用kubeadm自建集群,或使用云服务商提供的托管Kubernetes(如EKS、GKE、AKS)。 == 本地开发环境设置 == === Minikube === Minikube是一个轻量级的Kubernetes实现,可在本地计算机上运行单节点集群。 ==== 安装Minikube ==== 1. 安装Hypervisor(如VirtualBox、Hyper-V或KVM)。 2. 下载并安装Minikube: <syntaxhighlight lang="bash"> # Linux curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube # macOS brew install minikube </syntaxhighlight> ==== 启动Minikube集群 ==== <syntaxhighlight lang="bash"> minikube start --driver=virtualbox </syntaxhighlight> 输出示例: <pre> 😄 minikube v1.28.0 on Darwin 12.6 ✨ Using the virtualbox driver based on user configuration 👍 Starting control plane node minikube in cluster minikube 🔥 Creating virtualbox VM (CPUs=2, Memory=2200MB, Disk=20000MB) ... 🐳 Preparing Kubernetes v1.25.2 on Docker 20.10.20 ... 🔎 Verifying Kubernetes components... 🌟 Enabled addons: storage-provisioner, default-storageclass 🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default </pre> === Kind (Kubernetes in Docker) === Kind允许在Docker容器中运行Kubernetes集群,适合CI/CD测试。 ==== 安装Kind ==== <syntaxhighlight lang="bash"> # Linux/macOS curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.17.0/kind-linux-amd64 chmod +x ./kind sudo mv ./kind /usr/local/bin/kind </syntaxhighlight> ==== 创建集群 ==== <syntaxhighlight lang="bash"> kind create cluster --name my-cluster </syntaxhighlight> == 生产环境设置 == === 使用kubeadm自建集群 === kubeadm是Kubernetes官方提供的集群部署工具,适合自定义生产环境。 ==== 安装kubeadm、kubelet和kubectl ==== <syntaxhighlight lang="bash"> # Ubuntu/Debian sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl </syntaxhighlight> ==== 初始化控制平面 ==== <syntaxhighlight lang="bash"> sudo kubeadm init --pod-network-cidr=10.244.0.0/16 </syntaxhighlight> 输出示例: <pre> [init] Using Kubernetes version: v1.28.0 [preflight] Running pre-flight checks [preflight] Pulling images required for setting up a Kubernetes cluster ... Your Kubernetes control-plane has initialized successfully! </pre> === 托管Kubernetes服务 === 云服务商提供托管的Kubernetes服务,如: * '''Google Kubernetes Engine (GKE)''' * '''Amazon Elastic Kubernetes Service (EKS)''' * '''Azure Kubernetes Service (AKS)''' 以GKE为例,创建集群: <syntaxhighlight lang="bash"> gcloud container clusters create my-cluster --num-nodes=3 --zone=us-central1-a </syntaxhighlight> == 验证集群状态 == 使用<code>kubectl</code>检查集群状态: <syntaxhighlight lang="bash"> kubectl cluster-info kubectl get nodes </syntaxhighlight> 输出示例: <pre> Kubernetes control plane is running at https://192.168.49.2:8443 CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy NAME STATUS ROLES AGE VERSION minikube Ready control-plane 10m v1.25.2 </pre> == 网络插件配置 == Kubernetes需要网络插件(CNI)实现Pod间通信。以Calico为例: <syntaxhighlight lang="bash"> kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml </syntaxhighlight> == 实际案例 == '''案例:开发团队使用Minikube进行本地测试''' 1. 开发人员安装Minikube和Docker。 2. 启动Minikube集群并部署应用: <syntaxhighlight lang="bash"> minikube start kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort minikube service nginx </syntaxhighlight> == 集群架构图 == <mermaid> graph TD A[Control Plane] -->|Manages| B[Worker Node 1] A -->|Manages| C[Worker Node 2] B -->|Runs| D[Pod] C -->|Runs| E[Pod] D -->|Network| E </mermaid> == 常见问题 == === 如何重置Minikube环境? === <syntaxhighlight lang="bash"> minikube delete minikube start </syntaxhighlight> === 如何切换kubectl上下文? === <syntaxhighlight lang="bash"> kubectl config use-context minikube </syntaxhighlight> == 总结 == Kubernetes环境设置是使用Kubernetes的第一步。根据需求选择合适的工具: * '''本地开发''':Minikube、Kind * '''生产环境''':kubeadm或托管服务(GKE/EKS/AKS) 通过<code>kubectl</code>可以管理集群,而网络插件(如Calico)确保Pod间通信。接下来可以学习[[Kubernetes基本概念]]继续深入。 [[Category:集成部署]] [[Category:Kubernetes]] [[Category:Kubernetes基础]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)