当前位置: 正能量 » 代码编程 » K8s » k3s安装部署记录

k3s安装部署记录

配置镜像加速

# 添加配置
$ cat >> /etc/rancher/k3s/registries.yaml <<EOF
mirrors:
  "docker.io":
    endpoint:
      - "https://fogjl973.mirror.aliyuncs.com"
      - "https://registry-1.docker.io"
EOF

# 重启服务
$ sudo systemctl restart k3s

# 是否生效
$ sudo crictl info | grep -A 2 "endpoint"

国内安装:

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--tls-san 1.1.1.1(改成你的公网IP)" INSTALL_K3S_EXEC="--docker" sh -

在安装 k3s 之前,你可以创建一个名为 config.yaml 的文件,其中包含与 CLI 标志相匹配的字段。该文件位于:/etc/rancher/k3s/config.yaml,K3s 在启动后会加载这个文件中的配置选项。

write-kubeconfig-mode: 644
token: "secret"
node-ip: 10.0.10.22
cluster-cidr: 10.42.0.0/16
service-cidr: 10.43.0.0/16

安装纪要

1、开启服务

systemctl start k3s

2、查看当前集群镜像

crictl images list

3、查看当前集群容器状态

crictl ps

4、查看当前集群所有服务

kubectl get services --all-namespaces

5、查看当前集群某个命名空间的服务

kubectl get services -n default

6、查看集群所有pod

kubectl get pods --all-namespaces

7、查看集群某个命名空间pod

kubectl get pods -n default

8、查看pod所在节点

kubectl get pods --all-namespaces -o wide

9、设置镜像加速

# 添加镜像库,无认证
vim /etc/rancher/k3s/registries.yaml

mirrors:
  cr.l5d.io:
    endpoint:
      - "https://l5d.m.daocloud.io"
  docker.elastic.co:
    endpoint:
      - "https://elastic.m.daocloud.io"
  docker.io:
    endpoint:
      - "https://docker.m.daocloud.io"
  gcr.io:
    endpoint:
      - "https://gcr.m.daocloud.io"
  ghcr.io:
    endpoint:
      - "https://ghcr.m.daocloud.io"
  k8s.gcr.io:
    endpoint:
      - "https://k8s-gcr.m.daocloud.io"
  registry.k8s.io:
    endpoint:
      - "https://k8s.m.daocloud.io"
  mcr.microsoft.com:
    endpoint:
      - "https://mcr.m.daocloud.io"
  nvcr.io:
    endpoint:
      - "https://nvcr.m.daocloud.io"
  quay.io:
    endpoint:
      - "https://quay.m.daocloud.io"
  registry.jujucharms.com:
    endpoint:
      - "https://jujucharms.m.daocloud.io"
  rocks.canonical.com:
    endpoint:
      - "https://rocks-canonical.m.daocloud.io"

10、安装指定连接IP(把示例IP改成机器外网IP即可)

通常错误:Unable to connect to the server: x509: certificate signed by unknown authority

/etc/rancher/k3s/config.yaml

write-kubeconfig-mode: "0644"
tls-san:
  - "111.111.111.111"

11、释放80和443端口

k3s默认会安装traefik来替代k8singress来代理流量,此时默认情况会占据系统的 80443 端口。

因为通过iptables来转发流量所以lsof不会找到该应用,因为接管80/443端口的是service而不是traefik这个pod

如果不想被占用的话需要修改配置以释放这两个端口。

在配置中禁用参考配置

/etc/rancher/k3s/k3s.yaml:

disable:
  - traefik

12、kube-explorer

  • kube-explorerK8S 的便携式资源管理器,没有任何依赖
  • 并提供了一个几乎完全无状态的 K8S 资源管理器
# 从发布页面下载二进制文件
# https://github.com/cnrancher/kube-explorer

# 运行
# --kubeconfig 可以不配置(自己可以找到)
$ ./kube-explorer --kubeconfig=/etc/rancher/k3s/kube.yaml \
    --http-listen-port=9898 \
    --https-listen-port=0

# 打开浏览器访问
http://192.168.100.100:9898

13、K3s环境下如何启用traefik的dashboard

配置

master机器上添加文件/var/lib/rancher/k3s/server/manifests/traefik-config.yaml,内容如下:

apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
  name: traefik
  namespace: kube-system
spec:
  valuesContent: |-
    dashboard:
      enabled: true
    ports:
      traefik:
        expose: true
    logs:
      access:
        enabled: true    

添加完成之后,K3s会自动生效,且重启K3s集群也不会被恢复默认设置。

访问方式
  1. 直接访问http://{master_node_ip}:9000/dashboard/
  2. kube-system命名空间添加一个Ingress,绑定域名,指向traefik服务的9000端口,然后就可以正常在浏览器使用绑定的域名打开了
未经允许不得转载:正能量 » k3s安装部署记录

相关文章

评论 (0)

3 + 5 =