前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k3s 服务搭建

k3s 服务搭建

作者头像
兜兜毛毛
发布2020-04-24 17:13:30
2.4K0
发布2020-04-24 17:13:30
举报
文章被收录于专栏:兜兜毛毛

家里有一台服务器,平时做为自己用的开发环境在使用,跑着一些小程序。打算将这台服务器做一些升级,将常用的开发用的工具使用k3s来进行管理,方便自己使用。因本人只有一台服务器,所以本次文章中没有集群。

代码语言:javascript
复制
 K3S版本:  v1.17.4+k3s1
 Docker版本:  19.03.6

k3s离线安装包

GitHub的release下载没速度,做个临时搬运工,把本次安装的版本都下载到网盘了

链接: https://pan.baidu.com/s/1-r_uea4lz29RVhPGwaTRyw

提取码: 5ir4

代码语言:javascript
复制
# 创建目录
sudo mkdir -p /var/lib/rancher/k3s/agent/images/

#复制离线镜像到指定目录
sudo cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/

#复制k3s并授权
sudo cp ./k3s /usr/local/bin && sudo chmod 755 /usr/local/bin/k3s

#授权install
chmod +x install.sh

# 手动安装命令
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC="--docker --no-deploy traefik" ./install.sh

安装docker后

中国大陆境内Docker镜像加速器。

代码语言:javascript
复制
 阿里云:
 1. 打开https://cr.console.aliyun.com,并登录自己的阿里云账户
 2. 点击左方的 镜像中心 - 镜像加速器 ,然后在下方会有一个操作文档,复制其中的命令,粘贴到你的SSH窗口中即可完成镜像源的更换。

准备所需k3s镜像

代码语言:javascript
复制
docker pull rancher/coredns-coredns:1.6.3
docker pull rancher/local-path-provisioner:v0.0.11
docker pull rancher/metrics-server:v0.3.6
docker pull rancher/klipper-helm:v0.2.3

自动快速安装命令

代码语言:javascript
复制
## “--docker”使用Docker作为容器<默认使用containerd>
## “--no-deploy traefik”表示不使用traefik服务
## “--flannel-backend=none” 表示使用自定义Custom CNI
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--docker --no-deploy traefik --flannel-backend=none" sh -

如启动后还有traefik服务,请参考下边方式关闭。之后会使用ingress做为方向代理服务使用。

关闭默认的traefik服务

代码语言:javascript
复制
## 进入k3s默认启动编排目录
cd /var/lib/rancher/k3s/server/manifests

## 重命名traefik编排,防止关机重启后再次启动
mv traefik.yaml traefik.yaml_back

## 查看反向代理服务运行状态(traefik)
kubectl get svc traefik --namespace kube-system -w

kubectl describe svc traefik --namespace kube-system | grep Ingress | awk '{print $3}'

提示:表示当前集群中没有traefik服务,否则需要手动删除
Error from server (NotFound): services "traefik" not found

## 手动删除traefik
kubectl delete -f traefik.yaml

## 修改K3S服务的配置文件
vim /etc/systemd/system/multi-user.target.wants/k3s.service

## 修改ExecStart的值,将其修改为:
ExecStart=/usr/local/bin/k3s server --docker --no-deploy traefik

查看启动节点

代码语言:javascript
复制
### sudo kubectl get nodes

root@MiWiFi-R1CM-srv:~# sudo kubectl get nodes
NAME              STATUS   ROLES    AGE    VERSION
miwifi-r1cm-srv   Ready    master   3d7h   v1.17.3+k3s1

查看基础服务启动状态

代码语言:javascript
复制
### kubectl -n kube-system get pods
root@MiWiFi-R1CM-srv:~# kubectl -n kube-system get pods
NAME                                      READY   STATUS    RESTARTS   AGE
local-path-provisioner-58fb86bdfd-l8msw   1/1     Running   2          3d7h
metrics-server-6d684c7b5-k8r9n            1/1     Running   1          3d7h
coredns-d798c9dd-67mmc                    1/1     Running   1          3d7h

卸载k3s

代码语言:javascript
复制
## 初次安装必备
sh /usr/local/bin/k3s-uninstall.sh

安装ingress(反向代理)

代码语言:javascript
复制
编排文件:
https://gitee.com/doudoumaomao/free-cloud-deploy/tree/master/develop/k3s

需要先安装ingress-controller,当服务启动后会自动监听80端口与443端口。

接着启动tomcat

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: kube-public
  name: tomcat-service
  labels:
    app: tomcat-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: tomcat-service
  template:
    metadata:
      labels:
        app: tomcat-service
    spec:
      containers:
        - name: tomcat-service
          image: tomcat
          ports:
            - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  namespace: kube-public
  name: tomcat-service
spec:
  ports:
    - port: 8080
      protocol: TCP
  selector:
    app: tomcat-service

增加反向代理:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: kube-public
  name: ingress-nginx
spec:
  rules:
    - host: a1.free-js.com
      http:
        paths:
          - backend:
              serviceName: tomcat-service
              servicePort: 8080

查看服务启动情况

代码语言:javascript
复制
kubectl get svc --all-namespaces

NAMESPACE       NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
default         kubernetes       ClusterIP   10.43.0.1       <none>        443/TCP                      3d9h
kube-system     kube-dns         ClusterIP   10.43.0.10      <none>        53/UDP,53/TCP,9153/TCP       3d9h
kube-system     metrics-server   ClusterIP   10.43.23.150    <none>        443/TCP                      3d9h
ingress-nginx   ingress-nginx    NodePort    10.43.103.187   <none>        80:30729/TCP,443:30338/TCP   4h47m
kube-public     tomcat-service   ClusterIP   10.43.180.159   <none>        8080/TCP                     169m

验证解析

代码语言:javascript
复制
## 修改本地hosts文件,增加域名解析
192.168.10.110  a1.free-js.com

## 测试反向代理是否成功,如提示为tomat一场信息就表示已正确代理。
curl http://a1.free-js.com

至此k3s已正常启动,后续会将常用的一些服务,编排起来。

修改k3s.service 修改k3s service保证之后服务启动,按该方式启动 vim /etc/systemd/system/multi-user.target.wants/k3s.service

代码语言:javascript
复制
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
Wants=network-online.target

[Install]
WantedBy=multi-user.target

[Service]
Type=notify
EnvironmentFile=/etc/systemd/system/k3s.service.env
KillMode=process
Delegate=yes
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Restart=always
RestartSec=5s
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s  server --docker --no-deploy traefik --flannel-backend=none
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档