研发工程师玩转Kubernetes——安装microk8s和Docker

本文介绍了Kubernetes的基础知识,包括其作为容器化应用程序自动化部署、扩展和管理的开源系统角色。文章详细讲解了如何在Ubuntu环境下安装和启动Docker及microk8s,简化kubectl命令,并强调了容器化对于微服务架构的重要性。

《研发工程师玩转Kubernetes》将立足于实操,试图由浅入深探索Kubernetes世界。于是在技术选型和内容上也将由易到难,由简单到复杂。
为了降低进入的门槛,我们前期将不考虑多实例(机器)的部署,而采用单机部署。这样可以更加贴近研发人员的工作,并和运维工作拉开一定的距离,以方便研发人员学习和理解。

Kubernetes

在实操之前,大体介绍下Kubernetes是什么。

Kubernetes(常简称为K8s)是用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。该系统由Google设计并捐赠给Cloud Native Computing Foundation(今属Linux基金会)来使用。
它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。 它支持一系列容器工具,包括Docker等。

其核心是操作“容器化应用程序”,具体方式是:

  • 自动部署
  • 自动扩展
  • 自动管理

按顺序,我们将陆续熟悉“容器化”、部署、扩展和管理这几个知识点。

容器化

RedHat的官网有一段介绍“容器化”的内容,这儿拿来供大家参考。

容器化是指将软件代码和所需的所有组件(例如库、框架和其他依赖项)打包在一起,让它们隔离在自己的"容器"中。
这样,容器内的软件或应用就可以在任何环境和任何基础架构上一致地移动和运行,不受该环境或基础架构的操作系统影响。

“容器化”帮我们做了环境的隔离,简化了编程和运行环境搭建的复杂度。这从一定程度上促进了微服务的普及。过去的一个大大的服务,被拆成若干微服务后,提升了系统的稳定性,但是也带来了管理的压力——因为要维护的服务多了。这个时候针对“容器”的高效管理工具就应运而生。Kubernetes就是这样的工具。

microk8s

MicroK8s is a single package that enables developers to get a fully featured, conformant and secure Kubernetes system running in under 60 seconds. Designed for local development, IoT appliances, CI/CD, and use at the edge, MicroK8s is available as a snap and available on Linux, Windows and Mac.
MicroK8s是一个单一的软件包,使开发人员能够在60秒内获得一个功能齐全、一致且安全的Kubernetes系统。MicroK8s专为本地开发、物联网设备、CI/CD和边缘使用而设计,可作为快照提供,并可在Linux、Windows和Mac上使用。

选用microk8s主要是因为我选用的Ubuntu Desktop版作为测试环境,而它是Ubuntu力推的。对比了下它的功能,好像比其他版本不差。
在这里插入图片描述

containerd

An industry-standard container runtime with an emphasis on simplicity, robustness and portability
业界标准的容器运行时,强调简单性、健壮性和可移植性

简单来说containerd出生自Docker,是Docker的核心。

docker

本系列因为要自己构建镜像,而Microk8s本地镜像仓库例子使用的是Docker,于是我们也将使用Docker来构建镜像。

安装和启动

Docker

sudo apt-get install docker.io
newgrp docker
sudo usermod -a -G docker $USER

Microk8s

sudo snap install microk8s --classic 
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube

启动

su $USER
microk8s.start

简化kubectl命令

sudo snap alias microk8s.kubectl kubectl

自动补齐kubectl命令

sudo apt install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc

参考资料

<think>我们将在Ubuntu上安装MicroK8s,这是一个轻量级的Kubernetes发行版,由Canonical开发,适合本地开发测试环境。 步骤: 1. 确保系统是Ubuntu(建议18.04或更高版本) 2. 安装MicroK8s 3. 检查安装状态 4. 启用常用插件(如dns, dashboard等) 5. 访问dashboard 详细步骤: 1. 更新系统 在安装之前,建议更新系统包: sudo apt update sudo apt upgrade -y 2. 安装MicroK8s 使用snap安装MicroK8s(snap是Ubuntu的包管理工具): sudo snap install microk8s --classic 3. 将当前用户加入microk8s组(避免每次使用sudo) sudo usermod -a -G microk8s $USER sudo chown -f -R $USER ~/.kube 然后需要重新登录或使用以下命令使组更改生效: newgrp microk8s 4. 检查安装状态 microk8s status --wait-ready 5. 启用常用插件 例如,启用dns、dashboard、storageingress: microk8s enable dns dashboard storage ingress 6. 查看集群信息 microk8s kubectl get nodes microk8s kubectl get all --all-namespaces 7. 访问dashboard 启用dashboard后,会输出一个token,用于登录dashboard。同时,我们可以通过以下命令获取访问dashboard的URL: microk8s dashboard-proxy 这个命令会启动一个代理,并输出访问URL(通常是http://127.0.0.1:10443)。在浏览器中打开该URL,然后使用输出的token登录。 8. 配置kubectl别名(可选) 为了避免每次输入microk8s kubectl,可以设置别名: echo "alias kubectl='microk8s kubectl'" >> ~/.bashrc source ~/.bashrc 9. 检查插件状态 microk8s status 注意:如果遇到网络问题,可能需要配置代理或检查防火墙设置。 现在,我们给出一个安装脚本的示例(假设在Ubuntu 20.04上执行):</think>以下是在 Ubuntu 上安装 MicroK8s 的详细步骤说明: ### 安装步骤: 1. **更新系统包**: ```bash sudo apt update && sudo apt upgrade -y ``` 2. **安装 MicroK8s**: ```bash sudo snap install microk8s --classic ``` 3. **将用户加入 microk8s 组**(避免每次使用 `sudo`): ```bash sudo usermod -a -G microk8s $USER sudo chown -f -R $USER ~/.kube newgrp microk8s # 应用用户组变更 ``` 4. **验证安装**: ```bash microk8s status --wait-ready ``` 输出应包含 `microk8s is running`。 5. **启用常用插件**: ```bash microk8s enable dns dashboard storage ingress ``` 6. **访问 Kubernetes Dashboard**: ```bash microk8s dashboard-proxy ``` 命令会返回访问 URL 登录 Token。 --- ### 关键配置说明: 1. **Kubectl 别名**(可选): ```bash echo "alias kubectl='microk8s kubectl'" >> ~/.bashrc source ~/.bashrc ``` 2. **检查服务状态**: ```bash microk8s kubectl get all --all-namespaces ``` 3. **重置集群**(如需清理): ```bash microk8s reset ``` --- ### 常见问题解决: - **权限问题**: 若出现 `permission denied`,重新执行用户组配置: ```bash sudo usermod -a -G microk8s $USER && newgrp microk8s ``` - **端口冲突**: 默认端口冲突时修改 API 端口: ```bash sudo vi /var/snap/microk8s/current/args/kube-apiserver # 添加 --secure-port=6444 sudo systemctl restart snap.microk8s.daemon-apiserver ``` - **网络插件问题**: 更换网络插件(如 Calico): ```bash microk8s disable flannel microk8s enable community microk8s enable calico ``` --- ### 验证安装的示例部署: 1. 创建测试 Nginx 服务: ```bash microk8s kubectl create deployment nginx --image=nginx microk8s kubectl expose deployment nginx --port=80 --type=NodePort ``` 2. 获取访问地址: ```bash microk8s kubectl get svc nginx # 访问 http://<节点IP>:<NodePort> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

breaksoftware

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值