k3s安装记录

服务器情况

IP配置系统任务
172.18.11.2322核、4G内存、硬盘16,30CentOs7.8server1
172.18.11.2332核、4G内存、硬盘16,30CentOs7.8server2
172.18.11.2342核、4G内存、硬盘16,30CentOs7.8worker

 

外部mysql数据库5.7以上

官网要求:

CPU 和 内存

以下是高可用 K3s server 中节点的最低 CPU 和内存要求:

部署规模节点VCPUSRAM
SmallUp to 1024 GB
MediumUp to 10048 GB
LargeUp to 250816 GB
X-LargeUp to 5001632 GB
XX-Large500+3264 GB

#磁盘

集群性能取决于数据库性能。为了确保最佳速度,我们建议始终使用 SSD 磁盘来支持你的 K3s 集群。在云提供商上,您还需要使用允许最大 IOPS 的最小 size。

#网络

你应该考虑增加集群 CIDR 的子网大小,以免 Pod 的 IP 耗尽。你可以通过在启动时向 K3s 服务器传递--cluster-cidr选项来实现。

#数据库

K3s 支持不同的数据库,包括 MySQL、PostgreSQL、MariaDB 和 etcd,以下是运行大型集群所需的数据库资源的大小指南:

部署规模节点VCPUSRAM
SmallUp to 1012 GB
MediumUp to 10028 GB
LargeUp to 250416 GB
X-LargeUp to 500832 GB
XX-Large500+1664 GB
 

 

安装过程

  • server

1.安装server1,其中username、password、mysqlUrl、dataBase都是变量

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint="mysql://username:password@tcp(mysqlUrl:3306)/dataBase"

2.查对应的K3s master 信息

命令:

k3s kubectl get nodes

结果: 

[root@new-host-456 ~]# k3s kubectl get nodes
NAME           STATUS   ROLES                  AGE    VERSION
new-host-456   Ready    control-plane,master   2m5s   v1.20.4+k3s1

 表示已经有一个名字为”new-host-456“的节点信息,它的角色是master

详细的节点信息

 kubectl get node -o wide
[root@new-host-456 ~]# kubectl get node -o wide
NAME           STATUS   ROLES                  AGE   VERSION        INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION           CONTAINER-RUNTIME
new-host-456   Ready    control-plane,master   57m   v1.20.4+k3s1   172.18.11.105   <none>        CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64   containerd://1.4.3-k3s3

测试集群容器的运行状况,执行如下命令

k3s kubectl get pods --all-namespaces

显示结果:

[root@new-host-456 ~]# k3s kubectl get pods --all-namespaces
NAMESPACE     NAME                                      READY   STATUS             RESTARTS   AGE
kube-system   coredns-854c77959c-cswvx                  0/1     Running            0          13m
kube-system   local-path-provisioner-5ff76fc89d-w5w4d   0/1     CrashLoopBackOff   7          13m
kube-system   metrics-server-86cbb8457f-vm5t8           0/1     CrashLoopBackOff   7          13m
kube-system   helm-install-traefik-7plt8                0/1     CrashLoopBackOff   7          13m

查看k3s状态

kubectl get all -n kube-system

通过 crictl info 命令可以查看 containerd 当前的配置信息

 crictl info

3.开启防火墙对应端口

K3s Server节点的入站规则:

协议端口描述
TCP6443K3s agent 节点Kubernetes API Server
UDP8472K3s server 和 agent 节点仅对 Flannel VXLAN 需要
TCP10250K3s server 和 agent 节点Kubelet metrics
TCP2379-2380K3s server 节点只有嵌入式 etcd 高可用才需要
  • 启动worker

1.查看server1中的token信息

cat /var/lib/rancher/k3s/server/node-token

2.在worker节点中安装,其中myServer、myNodeToken都是变量

命令如下:

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myServer:6443 K3S_TOKEN=myNodeToken sh -

3.在server中输入命令确认

 kubectl get node -o wide

 结果如下,对比之前的结果可以发现多了一个worker

[root@new-host-456 ~]# kubectl get node -o wide
NAME           STATUS   ROLES                  AGE   VERSION        INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION           CONTAINER-RUNTIME
new-host-456   Ready    control-plane,master   62m   v1.20.4+k3s1   172.18.11.105   <none>        CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64   containerd://1.4.3-k3s3
new-host-452   Ready    <none>                 52s   v1.20.4+k3s1   172.18.11.109   <none>        CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64   containerd://1.4.3-k3s3

4.给new-host-452主机worker角色

kubectl label nodes new-host-452 node-role.kubernetes.io/worker=
  • 安装仪表盘

在github中找到最新的版本进行下载

1.查看最新版本,浏览器加载下面链接,如果无法加载或者未响应请翻 墙

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

2.下载推荐的yaml文件,其中version是变量

https://raw.githubusercontent.com/kubernetes/dashboard/version/aio/deploy/recommended.yaml

3.为了便于访问,修改recommended.yaml文件中,设置servier中的type,和nodePort

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30002
  selector:
    k8s-app: kubernetes-dashboard

4.新增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

在server1中执行命令,我把yaml文件放到data目录中

k3s kubectl create -f /data/recommended.yaml -f /data/dashboard.admin-user-role.yml -f/data/dashboard.admin-user.yml

5.在浏览器中一下地址进行访问,其中serverIp可以是服务器中的任意一个地址,我这里是172.18.11.232,233,234

http://serverIp:30002

6.如下界面,需要输入token

7.输入命令查询令牌,将token贴入浏览器中点击”登录“可以直接查看已部署的k3s信息

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

问题

安装后启动问题,暂时没有影响,服务也启动的。通过命令查看是防火墙没关闭或者未添加端口导致无法访问其他节点

Job for k3s.service failed because the control process exited with error code. See "systemctl status k3s.service" and "journalctl -xe" for details.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值