官网

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

k3s 文档

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

安装

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

国内用户请用

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

如果你已经安装过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

部署 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/

命令使用

安装完成后,直接使用 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
Logo

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

更多推荐