前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k3s国内源安装(无坑)

k3s国内源安装(无坑)

原创
作者头像
iginkgo18
修改2023-04-14 10:13:06
3.9K1
修改2023-04-14 10:13:06
举报
文章被收录于专栏:devops_k8s

1 简介

本文使用 mac multipass 虚拟出的 ubuntu 系统, multpass介绍请看下面这个链接文档,也是亲自实践无坑;

https://cloud.tencent.com/developer/article/2264277?areaSource=&traceId= (mac 平台使用 multipass 安装 ubuntu 虚拟机)

Lightweight Kubernetes. Production ready, easy to install, half the memory, all in a binary less than 100 MB.

K3s 是一个高可用的、经过 CNCF 认证的轻量级 Kubernetes 发行版,专为物联网及边缘计算设计。

k3s 将安装 Kubernetes 所需的一切打包进仅有 60MB 大小的二进制文件中,并且完全实现了 Kubernetes API。为了减少运行 Kubernetes 所需的内存,k3s 删除了很多不必要的驱动程序,并用附加组件对其进行替换。由于它只需要极低的资源就可以运行,因此它能够在任何 512MB 内存以上的设备上运行集群。

2 国内源安装

代码语言:javascript
复制
ubuntu@vm01:~$ curl –sfL \
     https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | \
     INSTALL_K3S_MIRROR=cn sh -s - \
     --system-default-registry "registry.cn-hangzhou.aliyuncs.com" \
     --write-kubeconfig ~/.kube/config \
     --write-kubeconfig-mode 666 \
     --disable traefik
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: xn--sfl-1n0a
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 32273  100 32273    0     0   123k      0 --:--:-- --:--:-- --:--:--  124k
[INFO]  Finding release for channel stable
[INFO]  Using v1.26.3+k3s1 as release
[INFO]  Downloading hash rancher-mirror.rancher.cn/k3s/v1.26.3-k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary rancher-mirror.rancher.cn/k3s/v1.26.3-k3s1/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Skipping installation of SELinux RPM
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
/usr/sbin/iptables-save
/usr/sbin/iptables-restore
/usr/sbin/ip6tables-save
/usr/sbin/ip6tables-restore
[INFO]  systemd: Starting k3s

如果你的带宽充足,一分钟之内即可完成 K3s 的安装和系统服务的启动,然后可以通过执行kubectl get pods -n kube-system 来验证

2.1 验证

代码语言:javascript
复制
ubuntu@vm01:~$ kubectl get pods -n kube-system
NAME                                      READY   STATUS    RESTARTS   AGE
local-path-provisioner-858c864885-vktw4   1/1     Running   0          89s
coredns-6c4b5c5567-c77wf                  1/1     Running   0          89s
metrics-server-5d7f9fc86-f6hhh            1/1     Running   0          89s

2.2 配置 containerd 的 mirror

以上这些步骤只是为了加速 K3s 的安装和启动。启动 K3s 后你可能会在 K3s 上部署自己的业务(例如 nginx),而这些镜像默认也是从 DockerHub 拉取。如果使用 docker 容器运行时,你可能会在 docker 上配置 mirror 来加速镜像的拉取。

K3s 默认使用的 containerd 容器运行时。而且,可以通过 K3s 的参数来设置 containerd 的 mirror,设置方式如下:

代码语言:javascript
复制
cat > /etc/rancher/k3s/registries.yaml <<EOF
mirrors:
  docker.io:
    endpoint:
      - "http://hub-mirror.c.163.com"
      - "https://docker.mirrors.ustc.edu.cn"
      - "https://registry.docker-cn.com"
EOF

systemctl restart k3s

3 验证k3s

3.1 检查集群

代码语言:javascript
复制
# 查看集群运行情况
kubectl get nodes -o wide
kubectl get all -A -owide
kubectl describe node vm01
kubectl -n kube-system describe deploy coredns

3.2 启动 whoami 服务

代码语言:javascript
复制
# 快速部署 whoami 应用,指定副本为 2,默认副本为 1
kubectl create deploy whoami --image=traefik/whoami --replicas=2
kubectl describe deploy whoami
# 监控 pod 状态,通过扩缩容可直观看到 pod 的调度情况
kubectl get pods --watch
# 尝试下对 whoami 应用进行扩缩容
kubectl scale deploy whoami --replicas=5

k8s 请求链路

代码语言:javascript
复制
request public-ip -> node-port -> svc-port -> pod-port -> container

3.3 验证 service

默认 nodeport模式,节点监听

代码语言:javascript
复制
kubectl expose deploy whoami --port=80
kubectl get svc -owide
kubectl describe svc whoami

# 在本地通过 service 多访问几次,出轮询访问 container
# curl http://<external-ip>:<port>
root@vm01:~# curl `kubectl get -o template service/whoami --template='{{.spec.clusterIP}}'`
Hostname: whoami-7c88bd4c6f-bwhdj
IP: 127.0.0.1
IP: ::1
IP: 10.42.0.9
IP: fe80::742a:5bff:fe94:6450
RemoteAddr: 10.42.0.1:55533
GET / HTTP/1.1
Host: 10.43.19.74
User-Agent: curl/7.81.0
Accept: */*

LoadBalancer 模式指定公网IP

代码语言:javascript
复制
# 自行替换 <PUBLIC_IP> 为当前节点的公网 IP
kubectl expose deploy whoami --type=LoadBalancer --port=80 --external-ip <PUBLIC_IP>

3.4 清理测试环境

代码语言:javascript
复制
kubectl delete all --all

4 卸载k3s

代码语言:javascript
复制
# 一键卸载 server
k3s-uninstall.sh

# 一键卸载 agent
k3s-agent-uninstall.sh

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2 国内源安装
    • 2.1 验证
      • 2.2 配置 containerd 的 mirror
      • 3 验证k3s
        • 3.1 检查集群
          • 3.2 启动 whoami 服务
            • 3.3 验证 service
              • 3.4 清理测试环境
              • 4 卸载k3s
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档