k3s单机环境搭建(飞腾+麒麟)

k3s介绍

k3s是rancher推出的一个轻量级k8s产品,相比于k8s,它具有安装简单、资源消耗较少等优势。

环境信息

cpu:ft2000+ 64核
内存: 256G
操作系统: kylin v10 server sp1

k3s部署

运行k3s安装脚本

K3s 提供了一个安装脚本,可以方便的在 systemd 或 openrc 的系统上将其作为服务安装。这个脚本可以在 https://get.k3s.io 获得。要使用这种方法安装 K3s,只需运行以下命令:

systemctl stop firewalld  #关闭防火墙
systemctl disable firewalld
swapoff -a # 临时禁用swap
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

该脚本在kylin v10 下运行时会由于selinux配置而失败,可以配置INSTALL_K3S_SELINUX_WARN=false跳过k3s selinux配置
脚本运行完成后,查看集群状态

kubectl cluster-info
kubectl get node

[root@localhost ~]# kubectl cluster-info
Kubernetes control plane is running at https://127.0.0.1:6443
CoreDNS is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Metrics-server is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/https:metrics-server:https/proxy
[root@localhost ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
localhost.localdomain Ready control-plane,master 25h v1.24.4+k3s1

配置镜像加速

cat >/etc/rancher/k3s/registries.yaml <<EOF
mirrors:
"docker.io":
endpoint:
- "https://7bezldxe.mirror.aliyuncs.com"
- "https://registry-1.docker.io"
EOF

重启k3s

systemctl restart k3s

安装kubernetes-dashboard

部署kubernetes-dashboard

GITHUB_URL=https://github.com/kubernetes/dashboard/releases
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/${VERSION_KUBE_DASHBOARD}/aio/deploy/recommended.yaml

配置RBAC

创建admin-user

cat <<EOF |kubectl apply -f - 
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
EOF

绑定cluster-admin角色

cat <<EOF |kubectl apply -f - 
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
EOF

访问kubernetes-dashboard

配置nodePort方式访问

kubectl patch service kubernetes-dashboard -p '{"spec":{"clusterType":"NodePort"}}' -n kubernetes-dashboard
kubectl get svc kubernetes-dashboard -n kubernetes-dashboard  #查看分配的nodeport端口

获取访问TOKEN

kubectl -n kubernetes-dashboard create token admin-user

界面效果图
在这里插入图片描述

安装监控组件

安装kube-prometheus

git clone https://github.com/prometheus-operator/kube-prometheus.git --depth=1 -b v0.11.0
cd kube-prometheus/manifests
kubectl apply -f setup/
kubectl apply -f ./
  1. 有个crd会提示报错,单独kubectl apply -f 那个文件即可
  2. 部分镜像拉取失败的,去docker hub哪到对应arm64版本的镜像替换即可

配置数据持久化

修改prometheus-prometheus.yaml文件,末尾加以下内容

……
  storage:
    volumeClaimTemplate:
      spec:
        resources:
          requests:
            storage: 50Gi

修改生效

kubectl apply -f prometheus-prometheus.yaml

发现prometheus容器一直pending,由于k3s默认的local-path provisioner配置对麒麟环境有些不兼容,导致pv创建不出来,修改configmap local-path-config 配置

kubectl edit cm local-path-config  -n kube-system   
……
helperPod.yaml: |-
    apiVersion: v1
    kind: Pod
    metadata:
      name: helper-pod
    spec:
      containers:
      - name: helper-pod
        image: alpine   #仅有此处改动,原本的busybox镜像替换成alpine镜像
……
kubectl rollout restart deployment/local-path-provisioner -n kube-system  #重启local-path-provisioner服务

访问grafana

配置nodeport方式访问

kubectl patch service grafana -p '{"spec":{"clusterType":"NodePort"}}' -n monitoring
kubectl get svc grafana -n monitoring  #查看分配的nodeport端口

删除grafana的网络策略

kubectl delete -f grafana-networkPolicy.yaml

界面效果图
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
k3s是一个轻量级的Kubernetes发行版,它可以在嵌入式系统上进行部署。在嵌入式设备上搭建k3s的高可用环境需要考虑到数据库的高可用性。 k3s默认使用SQLite作为嵌入式数据库,但SQLite不支持高可用性。因此,我们需要使用其他支持高可用性的数据库来替换。常见的选择是使用MySQL或PostgreSQL作为嵌入式数据库。 要搭建k3s嵌入式数据库的高可用环境,可以按照以下步骤进行操作: 1. 安装和配置MySQL或PostgreSQL数据库集群:在不同的嵌入式设备上安装MySQL或PostgreSQL,并进行配置以实现主从复制或集群模式。确保数据的持久性和一致性。 2. 将k3s配置为使用MySQL或PostgreSQL:修改k3s的配置文件,让其使用MySQL或PostgreSQL作为数据库,而不是默认的SQLite。指定数据库的地址、用户名、密码等相关信息。 3. 配置数据库访问权限:确保k3s可以通过网络访问数据库集群,并具有足够的权限进行读写操作。 4. 配置数据库的高可用性:针对数据库集群的复制机制或集群配置进行优化,以提高可用性和容错性。可以使用负载均衡等技术来处理数据库请求。 5. 启动k3s测试:在每个嵌入式设备上启动k3s,并确保它们能够连接到数据库集群。进行一些基本的测试,例如创建和管理Pod、容器等,验证k3s的功能和高可用性。 总结起来,要搭建k3s嵌入式数据库的高可用环境,需要安装和配置支持高可用性的数据库集群,将k3s配置为使用该数据库,并进行相关的网络和权限配置。通过这样的搭建,我们可以实现k3s在嵌入式设备上的高可用性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值