k3s 安装笔记
文章目录
【注意】最后更新于 4 年前,文中内容可能已过时,请谨慎使用。
前言
最近因工作,需要有一个 k8s 环境,观察了不少单机部署方案都很差劲,最后看到 k3s 官方的文档里直接有各种安装方案,最终部署下来也是比较方便,完全没有网络的干扰。
一、准备工作
- 一台 linux 机器,单核 1 GB配置也完全足够
- 有一些发行版需要修改一些东西参考官方文档即可
- server(master) 节点需要
6443/TCP端口 - 需要通过
ingress暴露服务的话还需要80/TCP,443/TCP
二、离线安装
k3s 安装脚本默认使用 containerd 作为容器隔离,k8s 也抛弃了 docker,所以这里就直接使用 containerd 了。
从镜像下载所需资源
| |
从 Github 下载最新的所需资源
| |
修改权限放到对应位置
| |
最后执行安装脚本
| |
安装完成
| |
三、远端访问 k3s
使用任意方式把 server(master) 节点的 /etc/rancher/k3s/k3s.yaml 的文件复制到自己本地的 ~/.kube/config,记得把 clusters[:].cluster.server 的 https://127.0.0.1:6443 修改为对应地址。
| |
然后可以直接使用 官方 kubectl 去直接访问,如果已经装过 docker-desktop 一般自带 kubectl 命令。
| |
四、安装 Kubernetes Dashboard
部署最新版
我这边部署时最新版 v2.3.1 的 443 服务不知道为什么挂了开 nodePort,curl 直接访问 Connection refused,退回到 v2.3.0 就正常。
| |
获取登录用 token 请参考 Kubernetes 仪表盘 里的方式。
本地开放访问
| |
修改 yaml 暴露 NodePort
修改 dashboard.yaml 以下对应位置,开放端口
| |
应用后,由于是单节点部署直接访问 server(master) 的 30001 端口例如 https://192.168.1.1:30001。
| |
直接暴露 http 的方式
下面的 yaml 文件内容都在 dashboard.yaml 当中
kubernetes-dashboard 的服务内实际上还有一个 9090 端口的 http 服务,但是不支持认证,由于没有认证也导致需要给 kubernetes-dashboard 额外配置权限。
先修改部署开放 9090 端口。
| |
修改服务的方式直接暴露 9090 端口。
| |
由于 dashboard 的 http 服务没有用户需要给 dashboard 给予额外权限。
| |
| |
应用后,由于是单节点部署直接访问 server(master) 的 30002 端口例如 http://192.168.1.1:30002。
使用 ingress 暴露
k3s 内置的 ingress 为 traefik,只要满足几个条件任意的 ingress 都能够暴露 dashboard。
ingress到pod(backend)的访问支持https。ingress到pod(backend)的https访问支持跳过tls校验,或者支持指定ca证书校验。
修改 traefik 的配置
| |
按照下文修改 traefik 增加 insecureSkipVerify 选项,保证 ingress 到对应 pod(backend) 的 https 访问跳过 tls 验证。毕竟我们一般没法用到正常的证书,所以 ingress 去访问 pod(backend) 需要跳过验证。
| |
重启 traefik
| |
新建一个文件 dashboard-ingress.yaml
| |
| |
应用后,由于是单节点部署直接访问 server(master) 的 80 端口,但是需要指定域名可以手动写入 host 或者解析一个域名,http://dashboard.zeromake.com
使用自签证书
先生成自签证书,可以用 openssl,mkcert,generate_cert.go,这里我直接用 go 自带的 generate_cert.go。
| |
把上面生成的证书放到 kubernetes secret 里,由于 dashboard 需要的文件名与 ingress 不同,我们还需要单独建一个 ingress 用的 secret。
| |
修改一下上面的 dashboard-ingress.yaml
| |
| |
应用后,由于是单节点部署直接访问 server(master) 的 443 端口,但是需要指定域名可以手动写入 host 或者解析一个域名,https://dashboard.zeromake.com