元宇宙环境部署之基础组件部署
1.Kubekey
export KKZONE=cn
mkdir kubekey
cd /data/tools/kubekey
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.2 sh -
chmod x kk
cp kk /usr/local/bin
##离线包
rz -qery kubekey.tgz
tar zxvf kubekey.tgz
2.Kubernetes & Kubesphere
#使用已有镜像,提高效率
##离线包
rz -qery kubesphere_v3.3.tgz
tar zxvf kubesphere_v3.3.tgz
导出镜像
#!/bin/bash
docker images |grep registry.cn|awk '{print $1"@"$2}'|grep -v REPOSITORY > images.list
for i in `cat images.list`
do
img_url="`echo $i|awk -F\@ '{print $1}'`"
img_tag="`echo $i|awk -F\@ '{print $2}'`"
img_name="`echo "$i"|sed 's/\//#/g'`"
echo ${img_url}:${img_tag} ${img_name}.tgz
docker save -o ${img_name}.tgz ${img_url}:${img_tag}
done
导入镜像
#!/bin/bash
for i in `ls *.tgz`
do
echo $i
docker load < $i
done
安装部署
# dependences
yum install -y socat conntrack ebtables ipset
#修改Host解析
vi /etc/hosts
192.168.10.17 umi
# standalone
export KKZONE=cn
cd /data/tools/kubekey
kk create cluster --with-kubernetes v1.23.10 --with-kubesphere v3.3.1
部署完成
16:15:37 CST success: [umi]
#####################################################
### Welcome to KubeSphere! ###
#####################################################
Console: http://192.168.10.18:30880
Account: admin
Password: P@88w0rd
NOTES:
1. After you log into the console, please check the
monitoring status of service components in
"Cluster Management". If any service is not
ready, please wait patiently until all components
are up and running.
2. Please change the default password after login.
#####################################################
https://kubesphere.io 2023-03-07 16:38:17
#####################################################
16:38:19 CST success: [umi]
16:38:19 CST Pipeline[CreateClusterPipeline] execute successfully
Installation is complete.
Please check the result using the command:
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f
3.NFS部署
# nfs服务端节点
yum install -y nfs-utils
systemctl enable nfs-server rpcbind --now
# 创建nfs共享目录、授权
mkdir -p /data/nfs-volume && chmod -R 777 /data/nfs-volume
# 写入exports
cat << \EOF > /etc/exports
/data/nfs-volume 192.168.10.0/24(rw,sync,no_root_squash)
EOF
systemctl reload nfs-server
# nfs客户端节点,所有k8s节点
yum install -y nfs-utils
systemctl enable rpcbind --now
4.helm部署nfs驱动
# add repo
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
# pull repo(如本地没有)
# helm pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
#上传本地压缩包
tar zxvf nfs.tgz
#导入镜像
cd nfs
docker load -i nfs-subdir-external-provisioner.tar
# 解压chart包
# tar -xf nfs-subdir-external-provisioner-4.0.17.tgz
# 部署
helm install nfs-provisioner nfs-subdir-external-provisioner --set nfs.server=192.168.10.17 --set nfs.path=/data/nfs-volume --set storageClass.provisionerName=nfs-provisioner
#更新
helm upgrade nfs-provisioner nfs-subdir-external-provisioner --set nfs.server=192.168.10.17 --set nfs.path=/data/nfs-volume --set storageClass.provisionerName=nfs-provisioner
5.Ingress Nginx 部署
节点打上标签才能部署
#查看节点信息
kubectl get nodes
# 给节点打标签
cd /data/tools/ingress-nginx
kubectl label node umi kubernetes.io/ingress=nginx
#pod 选择标签,同时以DaemonSet方式部署,扩容则需要给新节点打标签
# nodeSelector:
# kubernetes.io/ingress: nginx
#
#查看标签
kubectl get nodes --show-labels
#创建命名空间
kubectl create namespace metaverse
# 创建证书,证书在tls目录
kubectl create secret tls umi-meta-tls --cert=./tls/9140149__umi.com.pem --key=./tls/9140149__umi.com.key -n metaverse
#查看secret
kubectl get secret -n metaverse
kubectl get secret umi-meta-tls -n metaverse
kubectl describe secret umi-meta-tls -n metaverse
kubectl get secret umi-meta-tls --output=yaml -n metaverse
kubectl get secret umi-meta-tls -n metaverse|base64
#导入镜像(certgen,自动生成hook api 调用)
docker load -i ingress-nginx-controller.tar
docker load -i kube-webhook-certgen.tar
#部署ingress-nginx
kubectl apply -f deploy-daemonset.yaml
#查看
kubectl get svc,deploy,pods -A |grep ingress
kubectl get svc,deploy,pods -A|grep ingress
kubectl get svc,deploy,pods -A|grep ingress
6.yaml 方式部署 kubernetes-dashboard (使用Kubesphere控制面板,暂时不部署)
创建用户admin-user,并赋予cluster-admin角色
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
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
安装
cd /data/tools/src/kubernetes-dashboard
kubectl create namespace kubernetes-dashboard
kubectl apply -f cluster-user.yaml
获取admin-user Token
# 用token登录dashboard
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
helm部署dashboard
# 添加仓库
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
#查找库
helm search repo kubernetes-dashboard
#拉取kubernetes-dashboard库
helm pull kubernetes-dashboard/kubernetes-dashboard
#复制values.yaml
tar zxvf kubernetes-dashboard-6.0.0.tgz
cd kubernetes-dashboard/
cp values.yaml values-kubernetes-dashboard.yaml
#vi values-kubernetes-dashboard.yaml
service:
type: NodePort
externalPort: 8443
nodePort: 31443
metrics-server:
enabled: true
args:
- --kubelet-preferred-address-types=InternalIP
- --kubelet-insecure-tls
#下载metrics-server
docker pull bitnami/metrics-server
cd /data/tools/src/kubernetes-dashboard/kubernetes-dashboard/charts/metrics-server
vi values.yaml
repository: bitnami/metrics-server
tag: "latest"
# 安装dashboard,values-kubernetes-dashboard.yaml
#kubernetes-dashboard/kubernetes-dashboard 指定helm仓库里的库包
#helm install kubernetes-dashboard -f values-kubernetes-dashboard.yaml -n kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard
helm install kubernetes-dashboard ./kubernetes-dashboard -f values-kubernetes-dashboard.yaml -n kubernetes-dashboard
#查看Pods
kubectl get pods -n kubernetes-dashboard
# 更新dashboard
helm upgrade kubernetes-dashboard -f values-kubernetes-dashboard.yaml -n kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard
# uninstall 或 delete dashboard
helm delete kubernetes-dashboard -n kubernetes-dashboar
访问控制面板:
https://192.168.10.17:31443/
需要获取admin的token
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved