k3s安装部署流程
k3s国内下载地址
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
配置镜像源
tee /etc/rancher/k3s/registries.yaml <<'EOF'
mirrors:
"docker.io":
endpoint:
- "https://docker.m.daocloud.io"
- "https://docker.mirrors.ustc.edu.cn"
- "https://hub-mirror.c.163.com"
- "https://mirror.baidubce.com"
- "https://docker.nju.edu.cn"
- "https://mirrors.tuna.tsinghua.edu.cn"
- "https://registry-1.docker.io"
EOF
部署仪表盘
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
配置仪表盘角色
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
dashboard.admin-user.yml
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard
部署用户角色配置
kubectl create -f dashboard.admin-user.yml -f dashboard.admin-user-role.yml
获取仪表盘 token
kubectl -n kubernetes-dashboard create token admin-user
端口转发
–address 0.0.0.0 可以远程访问
kubectl port-forward -n kubernetes-dashboard --address 0.0.0.0 svc/kubernetes-dashboard 8443:443
以NodePort的方式进行暴露
直接端口转发命令需要一直保持命令行运行状态,如果需要后台需要使用 NodePort 来对外暴露服务。
apiVersion: v1
kind: Service
metadata:
name: dashboard-nodeport
namespace: kubernetes-dashboard
spec:
type: NodePort
selector:
k8s-app: kubernetes-dashboard
ports:
- name: dashboard-https
port: 443 #应用端口
targetPort: 8443 #pod端口
nodePort: 30443 # 转发端口
访问https://192.168.204.137:30443/地址,根据自己服务器实际情况来。
安装nerdctl + buildkitd 构建容器镜像
nerdctl地址:https://github.com/containerd/nerdctl/releases/download/v1.5.0/nerdctl-1.5.0-linux-amd64.tar.gz
buildkitd地址:https://github.com/moby/buildkit/releases/download/v0.12.1/buildkit-v0.12.1.linux-amd64.tar.gz
1. 安装buildkitd
解压缩包
tar xf buildkit-v0.12.1.linux-amd64.tar.gz
复制两个文件夹到bin目录下
cp bin/buildkitd bin/buildctl /usr/local/bin/
创建service文件
[Unit] Description=BuildKit Documentation=https://github.com/moby/buildkit After=network-online.target Wants=network-online.target [Service] ExecStart=/usr/local/bin/buildkitd --oci-worker=false --containerd-worker=true User=root Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
启动buildkitd服务
systemctl daemon-reload systemctl enable buildkitd --now # systemctl enable buildkitd --now # 相当于systemctl enable buildkitd 和 systemctl start buildkitd
2. 安装nerdctl
解压缩
tar xf nerdctl-1.5.0-linux-amd64.tar.gz
复制到bin目录下
mv nerdctl /usr/local/bin/
由于直接使用的k3s的容器,所以没有/run/containerd/containerd.sock,使用nerdctl会报错
创建符号链接
ln -sf /run/k3s/containerd/containerd.sock /run/containerd/containerd.sock # 验证链接 ls -la /run/containerd/containerd.sock
3. 注意事项
nerdctl拉取的镜像默认在default命名空间,这样子k3s查询不到,部署会有问题。
方案1:拉取的时候指定命名空间k8s.io
nerdctl -n k8s.io pull docker.1ms.run/library/nginx:alpine3.22
方案2:修改环境变量
echo 'export CONTAINERD_NAMESPACE=k8s.io' >> ~/.bashrc source ~/.bashrc
方案3:修改nerdctl配置文件(推荐)
mkdir -p /etc/nerdctl echo 'namespace = "k8s.io"' | tee /etc/nerdctl/nerdctl.toml
验证nerdctl命名空间
nerdctl info
验证,使用nerdctl拉取镜像,如果在crictl查询出来就是成功了
nerdctl pull docker.1ms.run/library/nginx:alpine3.22
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Kubernetes控制器中DaemonSet与Job的使用教程
这篇文章主要介绍了Kubernetes控制器中DaemonSet与Job的使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-08-08


最新评论