【Devops】单服务器安装K3S

211 阅读3分钟

基本情况

  手头只有低配服务器一台(2核2G),既要又要还想要,既要做日常的学习练习,又要部署一些稳定的中间件服务做本地调试,还想要逐步部署一些Demo服务或博客,又不想太花功夫每次部署重新打镜像。

  要达到目的,首先要做到部署组件和服务的资源隔离,又得实现自动化,那么需要实现一套CICD流水线和线上K8S集群。

  综合资源考量,Docker实现组件和服务间隔离,K8S太重量级,使用K3S作为自己的线上容器运维平台,今天先把K3S搭起来。

遇到的环境问题

基于阿里云轻量级服务器

curl下载k3s安装脚本失败,原因是yum对应的python版本问题,之前有重新安装python3,查资料重新安装yum即可解决

image.png

考虑到服务器本身没有什么数据,不如重置系统来得快,于是重置系统,系统重置后,ip没变,ssh登录发现报错

image.png

原因是.ssh/know_hosts中,存储了访问ip对应的公钥,服务器系统更新后,秘钥对变了

使用ssh-keygen -R {ip}命令,删除ip对应的秘钥配置,继续登录,好嘛,又被拒绝,查看服务器信息,系统重置后,登录密码也需要重置

image.png

安装Docker

# 更新yum 
yum -y update 
# 安装yum-utils 
yum install -y yum-utils 
# 安装docker-ce docker-ce-cli containerd.io 
yum install -y docker-ce docker-ce-cli containerd.io 
# 设置存储库 
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
# 启动docker 
systemctl start docker

安装k3s

使用国内源安装

curl -L rancher-mirror.rancher.cn/k3s/k3s-ins… | INSTALL_K3S_MIRROR=cn sh -

安装过程中,多次没有执行完就退出

去掉curl的-s和-f参数,显示下载和运行中的错误信息,依然没有效果,不确定具体原因,重开一个终端窗口执行命令,成功

image.png

验证k3s

准备yaml配置文件,创建namespace、service,并通过Deployment创建pod

# 创建namespace
apiVersion: v1 
kind: Namespace 
metadata: 
  name: k8s-springboot 
--- 
# 创建Service(NodePort类型,与节点做端口映射)
apiVersion: v1 
kind: Service
metadata: 
  name: springboot-demo-nodeport 
namespace: k8s-springboot 
spec: 
  type: NodePort 
  ports: 
      - port: 8080 
        targetPort: 8080 
        nodePort: 30001 
  selector: 
      app: springboot-demo 
--- 
# Deployment
apiVersion: apps/v1 
kind: Deployment 
metadata: 
  name: springboot-demo 
  namespace: k8s-springboot 
spec: 
  selector: 
      matchLabels: 
          app: springboot-demo 
    replicas: 1 
    template: 
      metadata: 
        labels: 
          app: springboot-demo 
      spec: 
        containers: 
          - name: springboot-demo
            image: huzhihui/springboot:1.0.0
            ports: 
              - containerPort: 8080

修改防火墙配置,放开nodeport对应端口30001

image.png 启用配置

# 启动配置 
kubectl apply -f k8s-springboot.yaml 
# 查看pod运行状态 
kubectl get pods --all-namespaces

image.png

访问{ip}/30001,可以正常访问,证明k3s启动成功

image.png

修改k3s运行环境为docker

此处排个雷,按下述教程修改,k3s不能正常启动,对应行报错

blog.csdn.net/wenyichuan/…

image.png

执行脚本,卸载k3s

/usr/local/bin/k3s-uninstall.sh

指定k3s运行环境为docker,重新安装k3s

curl -L rancher-mirror.rancher.cn/k3s/k3s-ins… | INSTALL_K3S_MIRROR=cn sh -s server --docker

发现只需在server后增加--docker 即可

image.png

参考

安装k3s & 验证 juejin.cn/post/701621…