官网

https://www.rancher.cn/k3s/

k3s 文档

https://docs.rancher.cn/k3s/

安装

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

国内用户请用

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

如果你需要更改端口号,或者 更改安装目录

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \
    INSTALL_K3S_MIRROR=cn \
    INSTALL_K3S_EXEC="--node-ip=192.168.2.11 --kubelet-arg=max-pods=200 --data-dir=/www/k3s-data --kube-apiserver-arg=service-node-port-range=1-65535" \
    K3S_NODE_NAME=fox001 \
    K3S_TOKEN=fox456 sh -s - \
    --system-default-registry=registry.cn-hangzhou.aliyuncs.com --bind-address=0.0.0.0

说明
–node-ip 指定节点的内部ip
–node-external-ip 指定节点的外部 ip
–kubelet-arg=max-pods=200 限制节点启动的Pod数量,默认110
–data-dir=/www/k3s-data 指定 K3S 数据目录
–kube-apiserver-arg=service-node-port-range=1-65535 设置 NodePort 服务范围
K3S_NODE_NAME 节点名称
–system-default-registry 指定 K3s 的系统镜像从国内的阿里云镜像仓库(registry.cn-hangzhou.aliyuncs.com) 去拉取
INSTALL_K3S_MIRROR 指定 K3s 的二进制文件从国内的阿里云对象存储上去拉取
K3S_TOKEN 用于将 server 或 agent 加入集群的共享 secret

如果你已经安装过docker,可以在docker中安装,如果不想用docker方式请略过

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="server --docker"  sh - 

安装配置

K3s Server 配置参考

https://docs.rancher.cn/docs/k3s/installation/install-options/server-config/_index

K3s Agent配置参考

https://docs.rancher.cn/docs/k3s/installation/install-options/agent-config/_index

部署 kuboard 集群管理界面 (推荐)

官网

https://kuboard.cn/
https://kuboard.cn/install/v3/install-in-k8s.html

安装

#国外
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml


# 您也可以使用下面的指令,唯一的区别是,该指令使用华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像
# 华为
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml

查看是否安装成功

watch kubectl get pods -n kuboard

成功后的结果

NAME                               READY   STATUS    RESTARTS   AGE
kuboard-agent-2-65bc84c86c-r7tc4   1/1     Running   2          28s
kuboard-agent-78d594567-cgfp4      1/1     Running   2          28s
kuboard-etcd-fh9rp                 1/1     Running   0          67s
kuboard-etcd-nrtkr                 1/1     Running   0          67s
kuboard-etcd-ader3                 1/1     Running   0          67s
kuboard-v3-645bdffbf6-sbdxb        1/1     Running   0          67s

访问 Kuboard

在浏览器中打开链接 http://your-node-ip-address:30080

输入初始用户名和密码,并登录

用户名: admin
密码: Kuboard123

命令使用

安装完成后,直接使用 kubectl xxx 跟 k8s 命令一样
如果发现 kubectl xxx 命令不存在那么要做别名映射 或者 软连接
正常情况下,都不需要 别名映射

别名映射

alias kubectl='k3s kubectl'

软连接

ln -sf /usr/bin/kubectl /usr/local/bin/k3s

查看nodes

kubectl get nodes

K3S节点修改节点POD数量

vim  /etc/systemd/system/k3s.service

假设要改变POD数量为 900,那么kubelet-arg参数为--kubelet-arg max-pods=900
修改ExecStart后内容

ExecStart=/usr/local/bin/k3s \
    server \
--kube-apiserver-arg max-pods=900 

更新配置,和重启

#更新配置
systemctl daemon-reload
#重启
systemctl restart k3s

K3S修改端口范围

https://docs.rancher.cn/docs/k3s/installation/install-options/server-config/_index/#%E7%BD%91%E7%BB%9C
参数为 --service-node-port-range=30000-32767,其中30000-32767为默认端口范围
编辑文件vim /etc/systemd/system/k3s.service

ExecStart=/usr/local/bin/k3s \
    server \
--kube-apiserver-arg service-node-port-range=1-65535

或者执行命令

sed -i 's#server.*#server \\ \n--kube-apiserver-arg service-node-port-range=80-65535  \n\n#g' /etc/systemd/system/k3s.service
#查看是否自动 添加
cat /etc/systemd/system/k3s.service

更新配置,和重启

#更新配置
systemctl daemon-reload
#重启
systemctl restart k3s

k3s私有镜像仓库

官方地址
https://docs.rancher.cn/docs/k3s/installation/private-registry/_index

vim /etc/rancher/k3s/registries.yaml
mirrors:
  foxwho.com:
    endpoint:
      - "https://foxwho.com:5000"
  "10.0.0.254:30500":
    endpoint:
      - "http://10.0.0.254:30500"

更新配置,和重启

#更新配置
systemctl daemon-reload
#重启
systemctl restart k3s

更改k3s 安装目录

/var/lib/kubelet
/var/lib/rancher
/run/k3s

安装k3s前 执行

mkdir -p /k8s/lib-kubelet && \
ln -s /k8s/lib-kubelet /var/lib/kubelet && \
mkdir -p /k8s/lib-rancher  && \
ln -s /k8s/lib-rancher /var/lib/rancher  && \
mkdir -p /k8s/k3s-run && \
ln -s /k8s/k3s-run /run/k3s

/k8s/lib-kubelet/ 为自行定义的目录
/k8s/lib-rancher/ 为自行定义的目录
/k8s/k3s-run/ 为自行定义的目录

重新安装k3s时 执行

systemctl stop k3s  && \
rm -rf /k8s/lib-kubelet/*  && \
rm -rf /k8s/lib-rancher/*  && \
rm -rf  /k8s/k3s-run/*

已安装的 k3s 迁移目录

先停止k3s,禁用自动启动

systemctl stop k3s
systemctl disable k3s

接着,重启服务器

reboot

服务器启动成功后,执行如下

mv /var/lib/kubelet /k8s/lib-kubelet       && \
ln -s /k8s/lib-kubelet /var/lib/kubelet && \
mv /var/lib/rancher /k8s/lib-rancher       && \
ln -s /k8s/lib-rancher /var/lib/rancher  && \
mv /run/k3s         /k8s/k3s-run           && \
ln -s /k8s/k3s-run /run/k3s

最后启动k3s,并设置自动启动

systemctl start k3s
systemctl enable k3s

其他普通用户可以使用 k8s 命令 kubectl等

那么设置 如下后,就可以使用kubectl

sudo chmod 644 /etc/rancher/k3s/k3s.yaml

部署 Kubernetes 仪表盘

GITHUB_URL=https://github.com/kubernetes/dashboard/releases

VERSION_KUBE_DASHBOARD=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||')

sudo k3s kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/${VERSION_KUBE_DASHBOARD}/aio/deploy/recommended.yaml

仪表盘 RBAC 配置

重要: 本指南中创建的 admin-user 将在仪表板中拥有管理权限。
创建以下资源清单文件:
dashboard.admin-user.yml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

dashboard.admin-user-role.yml

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

部署admin-user 配置:

sudo k3s kubectl create -f dashboard.admin-user.yml -f dashboard.admin-user-role.yml

获得 Bearer Token

sudo k3s kubectl -n kubernetes-dashboard describe secret admin-user-token | grep '^token'

本地访问仪表板

要访问仪表板,你必须创建一个安全通道到你的 K3s 集群。

sudo k3s kubectl proxy

现在可以通过以下网址访问仪表盘:

  • http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
  • 使用admin-user Bearer Token Sign In

高级:远程访问仪表板

请参阅仪表盘文档。使用端口转发来访问集群中的应用程序。

端口转发:https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐