快速入门指南 | Rancher文档

准备3台服务器

Master节点安装脚本#

K3s 提供了一个安装脚本,可以方便的在 systemd 或 openrc 的系统上将其作为服务安装。这个脚本可以在 https://get.k3s.io 获得。要使用这种方法安装 K3s,只需运行以下命令:

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

 node节点安装脚本#

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -

指定版本

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION=v1.21.14+k3s1 INSTALL_K3S_EXEC="--docker --kube-apiserver-arg service-node-port-range=1-65535" K3S_NODE_NAME=node1 K3S_URL=https://10.10.1.16:6443 K3S_TOKEN=K10c13f3b79648c93975a7e870a9c9fad678679024bd61a45f5632c5658e97ba941::server:6864f9e9b65e335a60ce46a7a1537003 sh -

上图可以看到启动的集群不是相同的容器类型一个是docker 两个是containerd  所以需要在上面的命令指定 INSTALL_K3S_EXEC

INSTALL_K3S_EXEC="--docker    指定使用docker启动k3s,默认是containerid

设置K3S_URL参数会使 K3s 以 worker 模式运行。K3s agent 将在所提供的 URL 上向监听的 K3s 服务器注册。K3S_TOKEN使用的值存储在你的服务器节点上的/var/lib/rancher/k3s/server/node-token路径下。 

这里的myserver就是master的ip,token在master节点查看,命令:

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

在node1和node2节点执行命令:

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.124.160:6443 K3S_TOKEN=K100a2d36d2970ba3fec18473c24377f3ef8e261899e5f2eb72e61b9fae70070aff::server:9689aeb8fb1a3849211ced8e7bad8fb8 sh -

验证集群,master节点

kubectl get node  可以看到集群搭建成功!

卸载k3s

执行uninstall脚本即可 

安装k3s-master (如果不行 换一下k3s_install.sh的链接) node_name根据自己情况修改

#!/bin/bash
# 指定 K3s 版本
export INSTALL_K3S_VERSION=v1.21.14+k3s1

# 自定义启动执行命令
export INSTALL_K3S_EXEC="--docker --kube-apiserver-arg service-node-port-range=1-65535"

# 只安装不启动
export INSTALL_K3S_SKIP_START=true

# https://docs.rancher.cn/docs/k3s/installation/installation-requirements/_index#先决条件
# 为您添加到集群的每个节点设计一个独特的名称
export K3S_NODE_NAME=node6

###
# agent 需加上,其他保持一致
###
# 设置了 K3S_URL,它将默认为“agent”。如果未设置K3S_URL,它将默认为“server”
export K3S_URL=
# 用于将 server 或 agent 加入集群的共享 secret
export K3S_TOKEN=

# 使用阿里云镜像源安装
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

# 启动 K3s 服务
systemctl enable --now k3s

# 查看 K3s 服务状态
systemctl status k3s

 安装k3s-agent (如果不行 换一下k3s_install.sh的链接)  里面的node_name、url和token根据自己的实际情况替换

#!/bin/bash
# 指定 K3s 版本
export INSTALL_K3S_VERSION=v1.21.14+k3s1

# 自定义启动执行命令
export INSTALL_K3S_EXEC="--docker --kube-apiserver-arg service-node-port-range=1-65535"

# 只安装不启动
export INSTALL_K3S_SKIP_START=true

# https://docs.rancher.cn/docs/k3s/installation/installation-requirements/_index#先决条件
# 为您添加到集群的每个节点设计一个独特的名称
export K3S_NODE_NAME=node6

###
# agent 需加上,其他保持一致
###
# 设置了 K3S_URL,它将默认为“agent”。如果未设置K3S_URL,它将默认为“server”
export K3S_URL=https://10.10.1.15:6443
# 用于将 server 或 agent 加入集群的共享 secret
export K3S_TOKEN=K102064598c2c1b76f8461c80d36082964e88f1d89a1f137e40011b455cbcd1f208::server:6719bbe029ca2390ba5d32e592de1921

# 使用阿里云镜像源安装
#curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=$K3S_URL K3S_TOKEN=$K3S_TOKEN sh -
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=$K3S_URL K3S_TOKEN=$K3S_TOKEN sh -

# 启动 K3s 服务
#systemctl enable --now k3s-agent

#systemctl start --now k3s-agent

# 查看 K3s 服务状态
#systemctl status k3s-agent

master节点验证集群是否添加成功

如果未添加成功,执行以下命令: 

sudo k3s agent --server https://192.168.124.160:6443 --token K10bec8774a000a0a6d77bdc0d2884cbdde74db9daf425ee5bc38e939b1d7c1738e::server:6c27c9f81ce27f0972a50b35aacc169d

使用k8s集群

 1、创建pod

cat > pod_nginx_rs.yaml <<EOF
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx
  labels:
    tier: frontend
spec:
  replicas: 3
  selector:
    matchLabels:
      tier: frontend
  template:
    metadata:
      name: nginx
      labels:
        tier: frontend
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
EOF

根据pod_nginx_rs.yml文件创建pod
kubectl apply -f pod_nginx_rs.yaml
#查看所有的pod
kubectl get pods
#查看所有的pod详细信息
kubectl get pods -o wide
#查看所有的pod超级详细信息
kubectl describe pod nginx

  • 通过rs将pod扩容为5个nginx服务
  • #将nginx服务由3个扩容为5个
  • kubectl scale rs nginx --replicas=5
    #查看所有的pod
    kubectl get pods -o wide

  • 光有ReplicaSet是不行的,ReplicaSet不会提供服务的,需要一个Service。将它应用到集群里面去。
cat > pod_nginx_rs_svc.yaml <<EOF
apiVersion: v1
kind: Service              # 类型是service
metadata:                  
  name: nginx              # 这个service的全局唯一名称
spec:
  type: NodePort
  ports:
    - port: 80             # service提供服务的端口号
      nodePort: 30000      # 想要对外的端口
  selector:
    tier: frontend         # 把拥有{tier:labels}或者{app:labels}这个标签的pod应用到这个服务里面
EOF

如果不加nodePort也就是不指定nodeport,默认会随机输出端口,可以通过kubectl get svc查看;

如果需要修改端口范围,如果是按照我的方式部署的,可在:vim /etc/kubernetes/manifests/kube-apiserver.yaml 的第17行进行修改,默认范围是30000-32767。

根据 pod_nginx_rs_svc.yml 文件创建services,需对外访问

kubectl apply -f pod_nginx_rs_svc.yaml

查看service

kubectl get svc
kubectl get services

kubectl get svc 中的 type 。

  • Cluster IP 为服务器内部使用
  • Node Port 为服务器内部外部都可以使用,可以指定端口也可以随机端口。
  • 启动services之后,查看端口

kubectl get svc -o wide

ip+30000  master的ip、node1的 ip、node2的ip都可以 

可以看到这里的pod没有全部完成

 kubectl describe pod nginx-mr7vh 

查看详情

 镜像拉取失败了,科学上网才行哦。

kubectl delete pod nginx-mr7vh   删除失败的两个pod,然后科学上网镜像就能拉取下来了

安装 Kuboard v3 - kubernetes | Kuboard

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml

kubectl get pods -n kuboard 

http://192.168.124.160:30080/kuboard/cluster

scp /etc/rancher/k3s/k3s.yaml ~/.kube/config

Logo

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

更多推荐