0%

安装 Kube-Prometheus

安装 prometheus 的方法有很多, 这里选择直接安装 kube-prometheus, 先根据兼容性列表确认可以安装的 kube-prometheus 版本, 然后下载兼容的版本.

1
wget https://github.com/prometheus-operator/kube-prometheus/archive/v0.6.0.tar.gz

然后解压进入目录

1
2
tar zxvf v0.6.0.tar.gz
cd kube-prometheus-0.6.0

首先安装 setup 目录内的配置.

1
kubectl apply -f manifests/setup/

安装好后再应用外层目录下的配置.

1
kubectl apply -f manifests/
阅读全文 »

Kubernetes Dashboard

Kubernetes Dashboard 是 Kubernetes 团队开源的一个平台, 可以使用它查询最基本的 Kubernetes 运行信息.

安装 Kubernetes Dashboard

这一步很简单, 在 Github 上的 dashboard 项目 release 上选择兼容的版本, 然后执行对应的安装命令即可, 例如:

1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml

创建人员权限

创建一个配置文件 dashboard-adminuser.yaml 来记录以下的代码段

首先创建一个账号

1
2
3
4
5
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard

接着绑定对应的权限

1
2
3
4
5
6
7
8
9
10
11
12
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard

应用上述的两个代码段

1
kubectl apply -f dashboard-adminuser.yaml

使用 Kubernetes Dashboard

相关的账号就创建好了, 接着可以使用命令获取到对应的 Token 信息

1
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

使用命令 kubectl proxy 可以在本地启动对应的转发, 接着用浏览器打开链接

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

并输入上一步获取的 Token 信息即可访问 Kubernetes 的运行信息.

k3s 默认使用 containerd 作为容器运行时, 因为我更熟悉 docker, 所以打算在 k3s 中使用 docker 代替 containerd.

先升级一下系统

1
2
apt update
apt upgrade -y

在系统中安装 docker, 直接使用 apt 安装

1
apt install docker.io

然后安装 k3s 的 master 节点

1
curl -sfL https://get.k3s.io | sh -s - --docker

安装完成后, 从 master 节点上的 /var/lib/rancher/k3s/server/node-token 获取到 token 值. 然后用 token 值安装 node 节点

1
curl -sfL https://get.k3s.io | K3S_URL=https://server:6443 K3S_TOKEN=token sh -s - --docker

给 node 节点添加 role.

1
kubectl label node node node-role.kubernetes.io/worker=worker

计划中 master 和 node 将使用两个网络出口, 给两种服务提供支撑, 所以我们需要给节点打标记来让应用可以正确的部署到对应的节点中.

1
2
kubectl label nodes master network=proxy
kubectl label nodes node network=direct

创建一个 Ubuntu 虚拟机, 使用 openvswitch 的方式使虚拟机拥有与宿主机同级的 IP 地址, 方便后续在路由器上针对此虚拟机做路由策略.

配置暂定为 1c2g, 安装盘镜像为 /zfs-pool/kvm/image/ubuntu-20.04-live-server-amd64.iso, 系统盘存放在 /mnt/sdf1/kvm/disk/ 目录下, sdf1 为一块 SSD 硬盘, 使用 openvswitch 管理网络.

首先创建一个系统盘, 并调整文件权限, 系统盘容量暂定为 40G

1
2
qemu-img create -f qcow2 ubuntu.qcow2 40G
chown libvirt-qemu:kvm ubuntu.qcow2

然后使用命令行创建一个虚拟机

1
2
3
4
5
6
7
8
virt-install --name ubuntu \
--vcpus=1 \
--ram 2048 \
--cdrom=/zfs-pool/kvm/image/ubuntu-20.04-live-server-amd64.iso \
--disk=/mnt/sdf1/kvm/disk/ubuntu.qcow2 \
--os-variant=ubuntu20.04 \
--boot machine=q35 \
--graphics vnc,listen=0.0.0.0

然后使用 vnc 链接进虚拟机, 一路 Enter 安装完成. 接着使用命令 virsh edit ubuntu 进入配置文件调整配置.

1
2
3
4
5
6
7
8
<!-- 调整网络配置 -->
<!-- 从 network 调整为 bridge -->
<interface type='bridge'>
<!-- 从 network 调整为 bridge, 从 default 调整为 osvbr0 -->
<source bridge='ovsbr0'/>
<!-- 新增一行 -->
<virtualport type='openvswitch'/>
</interface>

虚拟机就创建好了.

研究了半天把博客搭建好了, 然而并不知道该写些什么东西……