k3s安裝部署流程
k3s國內(nèi)下載地址
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
端口轉(zhuǎn)發(fā)
–address 0.0.0.0 可以遠(yuǎn)程訪問
kubectl port-forward -n kubernetes-dashboard --address 0.0.0.0 svc/kubernetes-dashboard 8443:443
以NodePort的方式進行暴露
直接端口轉(zhuǎn)發(fā)命令需要一直保持命令行運行狀態(tài),如果需要后臺需要使用 NodePort 來對外暴露服務(wù)。
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 #應(yīng)用端口
targetPort: 8443 #pod端口
nodePort: 30443 # 轉(zhuǎn)發(fā)端口
訪問https://192.168.204.137:30443/地址,根據(jù)自己服務(wù)器實際情況來。
安裝nerdctl + buildkitd 構(gòu)建容器鏡像
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
復(fù)制兩個文件夾到bin目錄下
cp bin/buildkitd bin/buildctl /usr/local/bin/
創(chuàng)建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服務(wù)
systemctl daemon-reload systemctl enable buildkitd --now # systemctl enable buildkitd --now # 相當(dāng)于systemctl enable buildkitd 和 systemctl start buildkitd
2. 安裝nerdctl
解壓縮
tar xf nerdctl-1.5.0-linux-amd64.tar.gz
復(fù)制到bin目錄下
mv nerdctl /usr/local/bin/
由于直接使用的k3s的容器,所以沒有/run/containerd/containerd.sock,使用nerdctl會報錯
創(chuàng)建符號鏈接
ln -sf /run/k3s/containerd/containerd.sock /run/containerd/containerd.sock # 驗證鏈接 ls -la /run/containerd/containerd.sock
3. 注意事項
nerdctl拉取的鏡像默認(rèn)在default命名空間,這樣子k3s查詢不到,部署會有問題。
方案1:拉取的時候指定命名空間k8s.io
nerdctl -n k8s.io pull docker.1ms.run/library/nginx:alpine3.22
方案2:修改環(huán)境變量
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
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
centos搭建k8s環(huán)境詳細(xì)步驟及常用命令
kubernetes是google開源的容器集群管理系統(tǒng),提供應(yīng)用部署、維護、擴展機制等功能,利用kubernetes能方便管理跨集群運行容器化的應(yīng)用,這篇文章主要給大家介紹了關(guān)于centos搭建k8s環(huán)境詳細(xì)步驟及常用命令的相關(guān)資料,需要的朋友可以參考下2024-01-01
Kubernetes中創(chuàng)建命名空間實現(xiàn)方法
這篇文章主要為大家介紹了Kubernetes中創(chuàng)建命名空間實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
Kubernetes控制器中DaemonSet與Job的使用教程
這篇文章主要介紹了Kubernetes控制器中DaemonSet與Job的使用,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
詳解Kubernetes 中容器跨主機網(wǎng)絡(luò)
這篇文章主要為大家介紹了Kubernetes中容器跨主機網(wǎng)絡(luò)是怎么樣的,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04

