歐拉openEuler 22.03 LTS-部署k8sv1.03.1

1.設置ip

# vi /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_FAILURE_FATAL=no
#IPV6_ADDR_GEN_MODE=eui64
NAME=ens192
DEVICE=ens192
ONBOOT=yes
IPADDR=192.168.1.31
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
DNS2=8.8.8.8# 關閉網卡
ifdown ens32# 啟動網卡
ifup ens32#重啟網卡
#1、重新載??下配置?件
nmcli c reload#2、重啟?卡(三個命令都可)
nmcli c up ens32 

2.參數優化

#添加訪問互聯路由
cat > /etc/resolv.conf <<EOF
nameserver 114.114.114.114
nameserver 223.5.5.5
nameserver 8.8.8.8
EOFcat /etc/resolv.confcat > /etc/security/limits.conf << EOF
# 進程數量
* soft nproc 1000000
* hard nprot 1000000# 打開文件數
* soft nofile 1000000
* hard nofile 1000000
EOF# 手動使配置生效
ulimit -SHn 1000000#查看配置
ulimit -n#加載包
yum makecacheyum -y install lrzsz tar sshpasshostnamectl set-hostname k8s-01cat > /etc/hosts << EOF
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.1.220 k8s-01
192.168.1.221 k8s-02
192.168.1.222 k8s-03
192.168.1.223 k8s-04
192.168.1.224 k8s-05
EOFcat /etc/hosts# CentOS 7	開機不自動啟動防火墻
systemctl disable firewalld.service# 關閉防火墻
systemctl stop firewalld.service
setenforce 0#清空所有規則:
sudo iptables -F#查看當前規則
sudo iptables -L

3.部署腳本

k8s_install_new_openeuler.sh

#!/bin/bash
# auther: boge
# descriptions:  the shell scripts will use ansible to deploy K8S at binary for siample
# github:   https://github.com/easzlab/kubeasz
#########################################################################
# 此腳本安裝過的操作系統 CentOS/RedHat 7, Ubuntu 16.04/18.04/20.04/22.04, openEuler-22.03(LTS-SP3)
#########################################################################echo "記得先把數據盤掛載弄好,已經弄好直接回車,否則ctrl+c終止腳本.(Remember to mount the data disk first, and press Enter directly, otherwise ctrl+c terminates the script.)"
read -p "" xxxxxx
# 傳參檢測
[ $# -ne 7 ] && echo -e "Usage: $0 rootpasswd netnum nethosts cri cni k8s-cluster-name\nExample: bash $0 rootPassword 10.0.1 201\ 202\ 203\ 204 [containerd|docker] [calico|flannel|cilium] boge.com test-cn\n" && exit 11 # 變量定義
export release=3.6.4
export k8s_ver=v1.30.1
rootpasswd=$1
netnum=$2
nethosts=$3
cri=$4
cni=$5
domainName=$6
clustername=$7
if ls -1v ./kubeasz*.tar.gz &>/dev/null;then software_packet="$(ls -1v ./kubeasz*.tar.gz )";else software_packet="";fi
pwd="/etc/kubeasz"# deploy機器升級軟件庫
if cat /etc/redhat-release &>/dev/null;thenyum update -y
elif cat /etc/openEuler-release &>/dev/null;thenyum update -yyum install bash-completion sshpass tar -yif [ -f /usr/share/bash-completion/bash_completion ]; then. /usr/share/bash-completion/bash_completionecho "source /usr/share/bash-completion/bash_completion" >> ~/.bashrcfisystemctl stop firewalld.servicesystemctl disable firewalld.service
elseapt-get update && apt-get upgrade -y && apt-get dist-upgrade -y[ $? -ne 0 ] && apt-get -yf install
fi# deploy機器檢測python環境
if ! cat /etc/openEuler-release &>/dev/null;thenpython2 -V &>/dev/nullif [ $? -ne 0 ];thenif cat /etc/redhat-release &>/dev/null;thenyum install gcc openssl-devel bzip2-devel [ -f Python-2.7.16.tgz ] || wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgztar xzf Python-2.7.16.tgzcd Python-2.7.16./configure --enable-optimizationsmake altinstallln -s /usr/bin/python2.7 /usr/bin/pythoncd -elseapt-get install -y python2.7 && ln -s /usr/bin/python2.7 /usr/bin/pythonfifi
fipython3 -V &>/dev/null
if [ $? -ne 0 ];thenif cat /etc/redhat-release &>/dev/null;thenyum install python3 -ywhich iptables || yum install iptables -yelif cat /etc/openEuler-release &>/dev/null;thenyum install python3 -ywhich iptables || yum install iptables -yelseapt-get install -y python3which iptables || apt-get install iptables -yfi
fi# deploy機器設置pip安裝加速源
if `echo $clustername |grep -iwE cn &>/dev/null`; then
mkdir ~/.pip
cat > ~/.pip/pip.conf <<CB
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.comCB
fi# deploy機器安裝相應軟件包
if cat /etc/openEuler-release &>/dev/null;thenpip3 install --no-cache-dir ansible netaddr
elsewhich python || ln -svf `which python2.7` /usr/bin/pythonif cat /etc/redhat-release &>/dev/null;thenyum install git epel-release python-pip sshpass -y[ -f ./get-pip.py ] && python ./get-pip.py || {wget https://bootstrap.pypa.io/pip/2.7/get-pip.py && python get-pip.py}elseif grep -Ew '20.04|22.04' /etc/issue &>/dev/null;then apt-get install sshpass -y;else apt-get install python-pip sshpass -y;fi[ -f ./get-pip.py ] && python ./get-pip.py || {wget https://bootstrap.pypa.io/pip/2.7/get-pip.py && python get-pip.py}fipython -m pip install --upgrade "pip < 21.0"which pip || ln -svf `which pip` /usr/bin/pippip -Vpip install setuptools -Upip install --no-cache-dir ansible netaddr
fi# 在deploy機器做其他node的ssh免密操作
for host in `echo "${nethosts}"`
doecho "============ ${netnum}.${host} ===========";if [[ ${USER} == 'root' ]];then[ ! -f /${USER}/.ssh/id_rsa ] &&\ssh-keygen -t rsa -P '' -f /${USER}/.ssh/id_rsaelse[ ! -f /home/${USER}/.ssh/id_rsa ] &&\ssh-keygen -t rsa -P '' -f /home/${USER}/.ssh/id_rsafisshpass -p ${rootpasswd} ssh-copy-id -o StrictHostKeyChecking=no ${USER}@${netnum}.${host}if cat /etc/redhat-release &>/dev/null;thenssh -o StrictHostKeyChecking=no ${USER}@${netnum}.${host} "yum update -y"elif cat /etc/openEuler-release &>/dev/null;thenssh -o StrictHostKeyChecking=no ${USER}@${netnum}.${host} "yum update -y"elsessh -o StrictHostKeyChecking=no ${USER}@${netnum}.${host} "apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y"[ $? -ne 0 ] && ssh -o StrictHostKeyChecking=no ${USER}@${netnum}.${host} "apt-get -yf install"fi
done# deploy機器下載k8s二進制安裝腳本(注:這里下載可能會因網絡原因失敗,可以多嘗試運行該腳本幾次)if [[ ${software_packet} == '' ]];thenif [[ ! -f ./ezdown ]];thencurl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/ezdownfi# 使用工具腳本下載sed -ri "s+^(K8S_BIN_VER=).*$+\1${k8s_ver}+g" ezdownchmod +x ./ezdown# ubuntu_22         to download package of Ubuntu 22.04./ezdown -D && ./ezdown -P ubuntu_22if [[ ${cni} == "cilium" ]];then ./ezdown -X cilium;fi
elsetar xvf ${software_packet} -C /etc/sed -ri "s+^(K8S_BIN_VER=).*$+\1${k8s_ver}+g" ${pwd}/ezdownchmod +x ${pwd}/{ezctl,ezdown}chmod +x ./ezdown./ezdown -D  # 離線安裝 docker,檢查本地文件,正常會提示所有文件已經下載完成,并上傳到本地私有鏡像倉庫./ezdown -S  # 啟動 kubeasz 容器
fi# 初始化一個名為$clustername的k8s集群配置CLUSTER_NAME="$clustername"
${pwd}/ezctl new ${CLUSTER_NAME}
if [[ $? -ne 0 ]];thenecho "cluster name [${CLUSTER_NAME}] was exist in ${pwd}/clusters/${CLUSTER_NAME}."exit 1
fiif [[ ${software_packet} != '' ]];then# 設置參數,啟用離線安裝# 離線安裝文檔:https://github.com/easzlab/kubeasz/blob/3.6.2/docs/setup/offline_install.mdsed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' ${pwd}/clusters/${CLUSTER_NAME}/config.yml
fi# to check ansible service
ansible all -m ping#---------------------------------------------------------------------------------------------------#修改二進制安裝腳本配置 config.ymlsed -ri "s+^(CLUSTER_NAME:).*$+\1 \"${CLUSTER_NAME}\"+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml## k8s上日志及容器數據存獨立磁盤步驟(參考阿里云的)mkdir -p /var/lib/container/{kubelet,docker,nfs_dir} /var/lib/{kubelet,docker} /nfs_dir## 不用fdisk分區,直接格式化數據盤 mkfs.ext4 /dev/vdb,按下面添加到fstab后,再mount -a刷新掛載(blkid /dev/sdx)
## cat /etc/fstab     
# UUID=105fa8ff-bacd-491f-a6d0-f99865afc3d6 /                       ext4    defaults        1 1
# /dev/vdb /var/lib/container/ ext4 defaults 0 0
# /var/lib/container/kubelet /var/lib/kubelet none defaults,bind 0 0
# /var/lib/container/docker /var/lib/docker none defaults,bind 0 0
# /var/lib/container/nfs_dir /nfs_dir none defaults,bind 0 0## tree -L 1 /var/lib/container
# /var/lib/container
# ├── docker
# ├── kubelet
# └── lost+found# docker data dir
DOCKER_STORAGE_DIR="/var/lib/container/docker"
sed -ri "s+^(STORAGE_DIR:).*$+STORAGE_DIR: \"${DOCKER_STORAGE_DIR}\"+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml
# containerd data dir
CONTAINERD_STORAGE_DIR="/var/lib/container/containerd"
sed -ri "s+^(STORAGE_DIR:).*$+STORAGE_DIR: \"${CONTAINERD_STORAGE_DIR}\"+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml
# kubelet logs dir
KUBELET_ROOT_DIR="/var/lib/container/kubelet"
sed -ri "s+^(KUBELET_ROOT_DIR:).*$+KUBELET_ROOT_DIR: \"${KUBELET_ROOT_DIR}\"+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml
if [[ $clustername != 'aws' ]]; then# docker aliyun repoREG_MIRRORS="https://pqbap4ya.mirror.aliyuncs.com"sed -ri "s+^REG_MIRRORS:.*$+REG_MIRRORS: \'[\"${REG_MIRRORS}\"]\'+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml
fi
# [docker]信任的HTTP倉庫
sed -ri "s+127.0.0.1/8+${netnum}.0/24+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml
# disable dashboard auto install
sed -ri "s+^(dashboard_install:).*$+\1 \"no\"+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml# 融合配置準備(按示例部署命令這里會生成testk8s.boge.com這個域名,部署腳本會基于這個域名簽證書,優勢是后面訪問kube-apiserver,可以基于此域名解析任意IP來訪問,靈活性更高)
CLUSEER_WEBSITE="${CLUSTER_NAME}k8s.${domainName}"
lb_num=$(grep -wn '^MASTER_CERT_HOSTS:' ${pwd}/clusters/${CLUSTER_NAME}/config.yml |awk -F: '{print $1}')
lb_num1=$(expr ${lb_num} + 1)
lb_num2=$(expr ${lb_num} + 2)
sed -ri "${lb_num1}s+.*$+  - "${CLUSEER_WEBSITE}"+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml
sed -ri "${lb_num2}s+(.*)$+#\1+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml# node節點最大pod 數
MAX_PODS="120"
sed -ri "s+^(MAX_PODS:).*$+\1 ${MAX_PODS}+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml# calico 自建機房都在二層網絡可以設置 CALICO_IPV4POOL_IPIP=“off”,以提高網絡性能; 公有云上VPC在三層網絡,需設置CALICO_IPV4POOL_IPIP: "Always"開啟ipip隧道
#sed -ri "s+^(CALICO_IPV4POOL_IPIP:).*$+\1 \"off\"+g" ${pwd}/clusters/${CLUSTER_NAME}/config.yml# 修改二進制安裝腳本配置 hosts
# clean old ip
sed -ri '/192.168.1.1/d' ${pwd}/clusters/${CLUSTER_NAME}/hosts
sed -ri '/192.168.1.2/d' ${pwd}/clusters/${CLUSTER_NAME}/hosts
sed -ri '/192.168.1.3/d' ${pwd}/clusters/${CLUSTER_NAME}/hosts
sed -ri '/192.168.1.4/d' ${pwd}/clusters/${CLUSTER_NAME}/hosts
sed -ri '/192.168.1.5/d' ${pwd}/clusters/${CLUSTER_NAME}/hosts# 輸入準備創建ETCD集群的主機位
echo "enter etcd hosts here (example: 203 202 201) ↓"
read -p "" ipnums
for ipnum in `echo ${ipnums}`
doecho $netnum.$ipnumsed -i "/\[etcd/a $netnum.$ipnum"  ${pwd}/clusters/${CLUSTER_NAME}/hosts
done# 輸入準備創建KUBE-MASTER集群的主機位
echo "enter kube-master hosts here (example: 202 201) ↓"
read -p "" ipnums
for ipnum in `echo ${ipnums}`
doecho $netnum.$ipnumsed -i "/\[kube_master/a $netnum.$ipnum"  ${pwd}/clusters/${CLUSTER_NAME}/hosts
done# 輸入準備創建KUBE-NODE集群的主機位
echo "enter kube-node hosts here (example: 204 203) ↓"
read -p "" ipnums
for ipnum in `echo ${ipnums}`
doecho $netnum.$ipnumsed -i "/\[kube_node/a $netnum.$ipnum"  ${pwd}/clusters/${CLUSTER_NAME}/hosts
done# 配置容器運行時CNI
case ${cni} inflannel)sed -ri "s+^CLUSTER_NETWORK=.*$+CLUSTER_NETWORK=\"${cni}\"+g" ${pwd}/clusters/${CLUSTER_NAME}/hosts;;calico)sed -ri "s+^CLUSTER_NETWORK=.*$+CLUSTER_NETWORK=\"${cni}\"+g" ${pwd}/clusters/${CLUSTER_NAME}/hosts;;cilium)sed -ri "s+^CLUSTER_NETWORK=.*$+CLUSTER_NETWORK=\"${cni}\"+g" ${pwd}/clusters/${CLUSTER_NAME}/hosts;;*)echo "cni need be flannel or calico or cilium."exit 11
esac# 配置K8S的ETCD數據備份的定時任務
#  https://github.com/easzlab/kubeasz/blob/master/docs/op/cluster_restore.md
if cat /etc/redhat-release &>/dev/null;thenif ! grep -w '94.backup.yml' /var/spool/cron/root &>/dev/null;then echo "00 00 * * * /usr/local/bin/ansible-playbook -i /etc/kubeasz/clusters/${CLUSTER_NAME}/hosts -e @/etc/kubeasz/clusters/${CLUSTER_NAME}/config.yml /etc/kubeasz/playbooks/94.backup.yml &> /dev/null; find /etc/kubeasz/clusters/${CLUSTER_NAME}/backup/ -type f -name '*.db' -mtime +3|xargs rm -f" >> /var/spool/cron/root;else echo exists ;fichown root.crontab /var/spool/cron/rootchmod 600 /var/spool/cron/rootrm -f /var/run/cron.rebootservice crond restart
elif cat /etc/openEuler-release &>/dev/null;thenif ! grep -w '94.backup.yml' /var/spool/cron/root &>/dev/null;then echo "00 00 * * * /usr/local/bin/ansible-playbook -i /etc/kubeasz/clusters/${CLUSTER_NAME}/hosts -e @/etc/kubeasz/clusters/${CLUSTER_NAME}/config.yml /etc/kubeasz/playbooks/94.backup.yml &> /dev/null; find /etc/kubeasz/clusters/${CLUSTER_NAME}/backup/ -type f -name '*.db' -mtime +3|xargs rm -f" >> /var/spool/cron/root;else echo exists ;fichown root.crontab /var/spool/cron/rootchmod 600 /var/spool/cron/rootrm -f /var/run/cron.rebootservice crond restart
elseif ! grep -w '94.backup.yml' /var/spool/cron/crontabs/root &>/dev/null;then echo "00 00 * * * /usr/local/bin/ansible-playbook -i /etc/kubeasz/clusters/${CLUSTER_NAME}/hosts -e @/etc/kubeasz/clusters/${CLUSTER_NAME}/config.yml /etc/kubeasz/playbooks/94.backup.yml &> /dev/null; find /etc/kubeasz/clusters/${CLUSTER_NAME}/backup/ -type f -name '*.db' -mtime +3|xargs rm -f" >> /var/spool/cron/crontabs/root;else echo exists ;fichown root.crontab /var/spool/cron/crontabs/rootchmod 600 /var/spool/cron/crontabs/rootrm -f /var/run/crond.rebootservice cron restart
fi#---------------------------------------------------------------------------------------------------
# 準備開始安裝了
rm -rf ${pwd}/{dockerfiles,docs,.gitignore,pics,dockerfiles} &&\
find ${pwd}/ -name '*.md'|xargs rm -f
read -p "Enter to continue deploy k8s to all nodes >>>" YesNobbb# now start deploy k8s cluster 
cd ${pwd}/# to prepare CA/certs & kubeconfig & other system settings 
${pwd}/ezctl setup ${CLUSTER_NAME} 01
sleep 1
# to setup the etcd cluster
${pwd}/ezctl setup ${CLUSTER_NAME} 02
sleep 1
# to setup the container runtime(docker or containerd)
case ${cri} incontainerd)sed -ri "s+^CONTAINER_RUNTIME=.*$+CONTAINER_RUNTIME=\"${cri}\"+g" ${pwd}/clusters/${CLUSTER_NAME}/hosts${pwd}/ezctl setup ${CLUSTER_NAME} 03;;docker)sed -ri "s+^CONTAINER_RUNTIME=.*$+CONTAINER_RUNTIME=\"${cri}\"+g" ${pwd}/clusters/${CLUSTER_NAME}/hosts${pwd}/ezctl setup ${CLUSTER_NAME} 03;;*)echo "cri need be containerd or docker."exit 11
esac
sleep 1
# to setup the master nodes
${pwd}/ezctl setup ${CLUSTER_NAME} 04
sleep 1
# to setup the worker nodes
${pwd}/ezctl setup ${CLUSTER_NAME} 05
sleep 1
# to setup the network plugin(flannel、calico...)
${pwd}/ezctl setup ${CLUSTER_NAME} 06
sleep 1
# to setup other useful plugins(metrics-server、coredns...)
${pwd}/ezctl setup ${CLUSTER_NAME} 07
sleep 1k8s_bin_path='/opt/kube/bin'echo "-------------------------  k8s version list  ---------------------------"
${k8s_bin_path}/kubectl version
echo
echo "-------------------------  All Healthy status check  -------------------"
${k8s_bin_path}/kubectl get componentstatus
echo
echo "-------------------------  k8s cluster info list  ----------------------"
${k8s_bin_path}/kubectl cluster-info
echo
echo "-------------------------  k8s all nodes list  -------------------------"
${k8s_bin_path}/kubectl get node -o wide
echo
echo "-------------------------  k8s all-namespaces's pods list   ------------"
${k8s_bin_path}/kubectl get pod --all-namespaces
echo
echo "-------------------------  k8s all-namespaces's service network   ------"
${k8s_bin_path}/kubectl get svc --all-namespaces
echo
echo "-------------------------  k8s welcome for you   -----------------------"
echo# you can use k alias kubectl to siample
echo "alias k=kubectl && complete -F __start_kubectl k" >> ~/.bashrc# get dashboard url
${k8s_bin_path}/kubectl cluster-info|grep dashboard|awk '{print $NF}'|tee -a /root/k8s_results# get login token
${k8s_bin_path}/kubectl -n kube-system describe secret $(${k8s_bin_path}/kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')|grep 'token:'|awk '{print $NF}'|tee -a /root/k8s_results
echo
echo "you can look again dashboard and token info at  >>> /root/k8s_results <<<"
echo ">>>>>>>>>>>>>>>>> You need to excute command [ reboot ] to restart all nodes <<<<<<<<<<<<<<<<<<<<"

4.部署k8s


bash k8s_install_new_openeuler.sh password 192.168.1 220\ 221\ 222\ 223\ 224 containerd calico boge.com test-cn

5.下載國內鏡像包v1.30.1


docker pull registry.cn-hangzhou.aliyuncs.com/rwit/kubeasz-k8s-bin:v1.30.1
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/pause:3.9
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/cni:v3.26.4
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/node:v3.26.4
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/kubeasz:3.6.4
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/coredns:1.11.1
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/kubeasz-ext-bin:1.10.1
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/kubeasz-sys-pkg:1.0.1_ubuntu_22
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/k8s-dns-node-cache:1.22.28
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/dashboard:v2.7.0
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/metrics-scraper:v1.0.8
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/metrics-server:v0.7.1
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/kube-controllers:v3.26.4
docker pull registry.cn-hangzhou.aliyuncs.com/rwit/kubeasz:3.6.4docker tag registry.cn-hangzhou.aliyuncs.com/rwit/pause:3.9 easzlab/pause:3.9
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/cni:v3.26.4 calico/cni:v3.26.4
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/node:v3.26.4 calico/node:v3.26.4
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/kubeasz:3.6.4 easzlab/kubeasz:3.6.4
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/coredns:1.11.1 coredns/coredns:1.11.1
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/kubeasz-ext-bin:1.10.1 easzlab/kubeasz-ext-bin:1.10.1
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/kubeasz-sys-pkg:1.0.1_ubuntu_22 docker.io/easzlab/kubeasz-sys-pkg:1.0.1_ubuntu_22
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/kubeasz-k8s-bin:v1.30.1 easzlab/kubeasz-k8s-bin:v1.30.1
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/k8s-dns-node-cache:1.22.28 easzlab/k8s-dns-node-cache:1.22.28
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/dashboard:v2.7.0 kubernetesui/dashboard:v2.7.0
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/metrics-scraper:v1.0.8 kubernetesui/metrics-scraper:v1.0.8
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/metrics-server:v0.7.1 easzlab/metrics-server:v0.7.1
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/kube-controllers:v3.26.4 calico/kube-controllers:v3.26.4
docker tag registry.cn-hangzhou.aliyuncs.com/rwit/kube-controllers:v3.26.4 easzlab.io.local:5000/calico/kube-controllers:v3.26.4# 刪除鏡像
docker images | grep registry.cn-hangzhou.aliyuncs.com | awk '{print $1 ":" $2}' | xargs docker rmi

6.重置集群

/etc/kubeasz/ezctl destroy test-cnrm -rf /etc/kubeasz/clusters/test-cn#重置機器后,克隆機器,批量部署機器(國外網絡無法訪問,如果批量部署會報錯)
bash k8s_install_new_openeuler.sh password 192.168.1 220\ 221\ 222\ 223\ 224 containerd calico boge.com test-cn

參考視頻:
【在openEuler 22.03 (LTS-SP3)歐拉Linux發行版操作系統上使用二進制安裝生產級別的v1.30.1版本Kubernetes(K8S)集群】https://www.bilibili.com/video/BV1pi421v7fP?p=8&vd_source=2d34fd2352ae451c4f6d4cb20707e169

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40315.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40315.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40315.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

物聯網數據解析實戰:掌握CJSON庫核心函數,精準處理JSON數據

物聯網數據解析實戰&#xff1a;掌握CJSON庫核心函數&#xff0c;精準處理JSON數據 CJSON庫是一個輕量級的JSON解析庫&#xff0c;專為C語言設計&#xff0c;適用于嵌入式系統和物聯網應用。它提供了簡單易用的API&#xff0c;使得開發者能夠輕松地解析和生成JSON數據。在本教…

部署Gunicorn + Flask應用到Docker

部署Gunicorn Flask應用到Docker中涉及幾個步驟&#xff0c;下面是一個基本的指南&#xff1a; 1. 創建Flask應用 首先&#xff0c;確保你有一個可用的Flask應用。這里有一個簡單的示例&#xff1a; from flask import Flask app Flask(__name__)app.route(/) def hello_w…

pandas,dataframe使用筆記

目錄 新建一個dataframe不帶列名帶列名 dataframe添加一行內容查看dataframe某列的數據類型新建dataframe時設置了列名&#xff0c;則數據類型為object dataframe的保存保存為csv文件保存為excel文件 dataframe屬于pandas 新建一個dataframe 不帶列名 df pd.DataFrame() 帶…

GuLi商城-商品服務-API-品牌管理-效果優化與快速顯示開關

<template><div class"mod-config"><el-form :inline"true" :model"dataForm" keyup.enter.native"getDataList()"><el-form-item><el-input v-model"dataForm.key" placeholder"參數名&qu…

華為交換機 LACP協議

華為交換機支持的LACP協議&#xff0c;即鏈路聚合控制協議&#xff0c;是一種基于IEEE 802.3ad標準的動態鏈路聚合與解聚合的協議。它允許設備根據自身配置自動形成聚合鏈路并啟動聚合鏈路收發數據。 在LACP模式下&#xff0c;鏈路聚合組能夠自動調整鏈路聚合&#xff0c;維護…

java集合(1)

目錄 一.集合概述 二. 集合體系概述 1. Collection接口 1.1 List接口 1.2 Set接口 2. Map接口 三. ArrayList 1.ArrayList常用方法 2.ArrayList遍歷 2.1 for循環 2.2 增強for循環 2.3 迭代器遍歷 一.集合概述 我們經常需要存儲一些數據類型相同的元素,之前我們學過…

Java 基礎語法

Java 是一種面向對象的編程語言&#xff0c;具有簡單、健壯、安全、跨平臺等特點。下面是Java基礎語法的詳細介紹&#xff0c;并附帶一些示例說明&#xff1a; ### 1. 變量和數據類型 Java 中的變量用于存儲數據&#xff0c;必須先聲明后使用。Java 的數據類型分為基本數據類…

C++ 仿QT信號槽二

// 實現原理 // 每個signal映射到bitset位&#xff0c;全集 // 每個slot做為signal的bitset子集 // signal全集觸發&#xff0c;標志位有效 // flip將觸發事件隊列前置 // slot檢測智能指針全集觸發的標志位&#xff0c;主動運行子集綁定的函數 // 下一幀對bitset全集進行觸發清…

【C++】 解決 C++ 語言報錯:Segmentation Fault

文章目錄 引言 段錯誤&#xff08;Segmentation Fault&#xff09;是 C 編程中常見且令人頭疼的錯誤之一。段錯誤通常發生在程序試圖訪問未被允許的內存區域時&#xff0c;導致程序崩潰。本文將深入探討段錯誤的產生原因、檢測方法及其預防和解決方案&#xff0c;幫助開發者在…

Lex Fridman Podcast with Andrej Karpathy

我不太喜歡Lex Fridman的聲音&#xff0c;總覺得那讓人昏昏欲睡&#xff0c; 但無奈他采訪的人都太大牌了&#xff0c;只能去聽。但是聽著聽著&#xff0c;就會覺得有深度的采訪這些人&#xff0c;似乎也只有他這種由研究員背景的人能干&#xff0c; 另&#xff0c;他提的問題確…

4.2 投影

一、投影和投影矩陣 我們以下面兩個問題開始&#xff0c;問題一是為了展示投影是很容易視覺化的&#xff0c;問題二是關于 “投影矩陣”&#xff08;projection matrices&#xff09;—— 對稱矩陣且 P 2 P P^2P P2P。 b \boldsymbol b b 的投影是 P b P\boldsymbol b Pb。…

android的dump_processe中anon和swap字段的含義是什么?計算進程占用內存大小是否可以用這兩個字段相加?

在Android系統中&#xff0c;dump_processes 命令或類似機制&#xff08;如通過 adb shell dumpsys&#xff09;的輸出中&#xff0c;可能會包含與進程內存使用相關的信息&#xff0c;但通常不直接以 anon 和 swap 作為字段名。不過&#xff0c;基于您的提問&#xff0c;我可以…

嵌入式學習——硬件(Linux內核驅動編程LED、蜂鳴器、按鍵)——day59

1. 編寫LED驅動&#xff08;初始化所有子設備號&#xff09; #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include <asm/uaccess.h> #include <asm/io.h>#define GPBCON (0x5…

2024年7月5日 (周五) 葉子游戲新聞

老板鍵工具來喚去: 它可以為常用程序自定義快捷鍵&#xff0c;實現一鍵喚起、一鍵隱藏的 Windows 工具&#xff0c;并且支持窗口動態綁定快捷鍵&#xff08;無需設置自動實現&#xff09;。 卸載工具 HiBitUninstaller: Windows上的軟件卸載工具 《樂高地平線大冒險》為何不登陸…

江漢大學劉春萌同學整理的wifi模塊 上傳mqtt實驗步驟

一.固件燒錄 1.打開安信可官網 2.點擊wifi模組系列的ESP8266 3.點擊各類固件后選擇固件號1471下載 4.打開燒錄工具將下載的二進制文件導入并將后面的起始地址寫為0x00000,下面勾選40mhz QIO 8Mbit點擊start下載即可 二.本地部署mqtt服務器(windows) 1.下載mosquitto后有一個m…

Java并發編程知識整理筆記

目錄 ?1. 什么是線程和進程&#xff1f; 線程與進程有什么區別&#xff1f; 那什么是上下文切換&#xff1f; 進程間怎么通信&#xff1f; 什么是用戶線程和守護線程&#xff1f; 2. 并行和并發的區別&#xff1f; 3. 創建線程的幾種方式&#xff1f; Runnable接口和C…

微博視頻下載

video_urls 獲取xpath://video/src|//video/autoplay # !/usr/bin/python3 # -*- coding:utf-8 -*- """ author: JHC000abcgmail.com file: demo1.py time: 2024/6/3 18:00 desc:""" import os import re import requests from urllib.parse im…

Qt實現流動的管道效果代碼示例

在現代圖形用戶界面&#xff08;GUI&#xff09;應用程序中&#xff0c;動態效果可以顯著增強用戶體驗。本文將介紹如何使用Qt框架實現一個流動的管道效果。我們將通過自定義QWidget來繪制管道&#xff0c;并使用定時器來實現流動效果。 1. 準備工作 首先&#xff0c;確保你已…

LeetCode.68文本左右對齊

問題描述 給定一個單詞數組 words 和一個長度 maxWidth &#xff0c;重新排版單詞&#xff0c;使其成為每行恰好有 maxWidth 個字符&#xff0c;且左右兩端對齊的文本。 你應該使用 “貪心算法” 來放置給定的單詞&#xff1b;也就是說&#xff0c;盡可能多地往每行中放置單詞…

HMI 的 UI 風格創造奇跡

HMI 的 UI 風格創造奇跡