配置镜像加速
# 添加配置
$ 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
来替代k8s
的ingress
来代理流量,此时默认情况会占据系统的 80
和 443
端口。
因为通过iptables来转发流量所以lsof不会找到该应用,因为接管80/443端口的是service而不是traefik这个pod
如果不想被占用的话需要修改配置以释放这两个端口。
在配置中禁用参考配置
/etc/rancher/k3s/k3s.yaml
:
disable:
- traefik
12、kube-explorer
kube-explorer
是K8S
的便携式资源管理器,没有任何依赖- 并提供了一个几乎完全无状态的
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集群也不会被恢复默认设置。
访问方式
- 直接访问
http://{master_node_ip}:9000/dashboard/
- 在
kube-system
命名空间添加一个Ingress
,绑定域名,指向traefik
服务的9000
端口,然后就可以正常在浏览器使用绑定的域名打开了