常见SEO阿里云服务器区别K8s私服部署(Harbor容器源 Nexus3软件源)
云主机与服务器区别
有些同学不太清楚k8s镜像私服和apt源我用的是什么工具,这里做下基本配置展示,搭建的话网上教程挺多的我就先不写了。主要用到了Nexus3(系统源),harbor(容器源)
1.建立Nexus3源(Ubuntu)
1.1 创建apt源存储
image-20251111140912292
1.2 创建软件源(Docker源+Apt源+K8s)
image-20251111141018175
image-20251111141221381
image-20251111141356972
image-20251111141528349
2.系统配置私有源(Ubuntu)
1.1 源初始化
1.1.1 apt源初始化
root@k8smaster232:~ cat /etc/apt/sources.list.d/ubuntu.sourcesTypes: debURIs: http://192.168.1.12:8081/repository/Ubuntu-Proxy/Suites: noble noble-updates noble-backportsComponents: main restricted universe multiverseSigned-By: /usr/share/keyrings/ubuntu-archive-keyring.gpgTypes: debURIs: http://192.168.1.12:8081/repository/Ubuntu-Proxy/Suites: noble-securityComponents: main restricted universe multiverseSigned-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg1.1.2 Docker源初始化
代理源使用的ali,这里添加阿里云的源密钥root@k8smaster232:~curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg源内容root@k8smaster232:~cat /etc/apt/sources.list.d/docker.listdeb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] http://192.168.1.12:8081/repository/Ubuntu-Docker noble stable1.1.3 K8s源初始化
代理源使用的ali,这里添加阿里云的源密钥root@k8smaster232:~curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.34/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg源内容root@master233:~cat /etc/apt/sources.list.d/kubernetes.listdeb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg]http://192.168.1.12:8081/repository/Ubuntu-K8s/v1.34/deb//1.1.4 确认源准备就绪
root@k8smaster232:~aptupdateHit:1http://192.168.1.12:8081/repository/Ubuntu-Docker noble InReleaseGet:2http://192.168.1.12:8081/repository/Ubuntu-K8s/v1.34/deb InRelease [1,186 B]Hit:3http://192.168.1.12:8081/repository/Ubuntu-Proxy noble InReleaseHit:4http://192.168.1.12:8081/repository/Ubuntu-Proxy noble-updates InReleaseHit:5http://192.168.1.12:8081/repository/Ubuntu-Proxy noble-backports InReleaseHit:6http://192.168.1.12:8081/repository/Ubuntu-Proxy noble-security InReleaseGet:7http://192.168.1.12:8081/repository/Ubuntu-K8s/v1.34/deb Packages [4,405 B]1.1.5 安装Docker、K8s
安装Dockerroot@k8smaster232:~apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y.... Reading package lists... Done .....Get:1http://192.168.1.12:8081/repository/Ubuntu-Docker noble/stableamd64 containerd.io amd642.1.5-1~ubuntu.24.04~noble [22.4MB] .......安装K8sroot@k8smaster232:~apt install kubeadm=1.34.1-1.1 kubelet=1.34.1-1.1 kubectl=1.34.1-1.1... Reading package lists... Done After this operation,333MB of additional disk space will be used. Do you want to continue? [Y/n] yGet:1http://192.168.1.12:8081/repository/Ubuntu-Proxy noble/mainamd64 conntrack amd641:1.4.8-1ubuntu1 [37.9kB] ...3.创建K8s私有源
云服务器如何连接
3.1 在harbor上创建项目
这里创建3个项目
• google_containers 存储K8s的镜像• tigera Calico网络插件的镜像• calico Calico网络插件的镜像
image-20251111154121756
3.2 查看K8s安装所需要的镜像
查看默认root@k8smaster232:~ kubeadm config images listregistry.k8s.io/kube-apiserver:v1.34.1registry.k8s.io/kube-controller-manager:v1.34.1registry.k8s.io/kube-scheduler:v1.34.1registry.k8s.io/kube-proxy:v1.34.1registry.k8s.io/coredns/coredns:v1.12.1registry.k8s.io/pause:3.10.1registry.k8s.io/etcd:3.6.4-0指定版本查看root@k8smaster232:~ kubeadm config images list --kubernetes-version=v1.34.13.3 修改docker的镜像仓库
root@k8smaster232:~vi /etc/docker/daemon.json修改配置文件{"insecure-registries": ["https://abc.dns.com"] } root@k8smaster232:~systemctl restart docker3.4 下载镜像并上传到Harbor上(方便点用脚本)
root@k8smaster232:~vi k8s_images_pull_push.sh!/bin/bash定义你的私有镜像仓库地址PRIVATE_REGISTRY="abc.dns.com/google_containers"定义 Harbor 账户信息HARBOR_USERNAME="admin"HARBOR_PASSWORD="xxxxxx"k8s镜像列表IMAGES=("registry.k8s.io/kube-apiserver:v1.34.1""registry.k8s.io/kube-controller-manager:v1.34.1""registry.k8s.io/kube-scheduler:v1.34.1""registry.k8s.io/kube-proxy:v1.34.1""registry.k8s.io/coredns/coredns:v1.12.1""registry.k8s.io/pause:3.10.1""registry.k8s.io/etcd:3.6.4-0")阿里云镜像列表IMAGES2=("registry.aliyuncs.com/google_containers/kube-apiserver:v1.34.1""registry.aliyuncs.com/google_containers/kube-controller-manager:v1.34.1""registry.aliyuncs.com/google_containers/kube-scheduler:v1.34.1""registry.aliyuncs.com/google_containers/kube-proxy:v1.34.1""registry.aliyuncs.com/google_containers/coredns/coredns:v1.12.1""registry.aliyuncs.com/google_containers/pause:3.10.1""registry.aliyuncs.com/google_containers/etcd:3.6.4-0")登录到私有镜像仓库echo"Logging in to Harbor..."echo"$HARBOR_PASSWORD"| docker login"$PRIVATE_REGISTRY"-u"$HARBOR_USERNAME"--password-stdin遍历镜像列表forIMAGEin"${IMAGES[@]}";do提取镜像名称和版本NAME=$(echo$IMAGE| awk -F/{print $NF}| awk -F:{print $1}) VERSION=$(echo$IMAGE| awk -F:{print $2})构建新的镜像名称NEW_IMAGE="${PRIVATE_REGISTRY}/${NAME}:${VERSION}"检查 Harbor 中是否已存在相同版本的镜像echo"Checking if image$NEW_IMAGEexists in Harbor..."RESPONSE=$(curl -s -u"$HARBOR_USERNAME:$HARBOR_PASSWORD""http://$PRIVATE_REGISTRY/v2/${NAME}/tags/list")ifecho"$RESPONSE"| grep -q"\"${VERSION}\"";thenecho"Image$NEW_IMAGEalready exists in Harbor. Skipping upload."continuefi拉取原始镜像echo"Pulling image:$IMAGE"docker pull$IMAGE检查拉取是否成功if[[ $? -ne 0 ]];thenecho"Failed to pull image:$IMAGE"continuefi打标记为私有镜像echo"Tagging image:$IMAGEas$NEW_IMAGE"docker tag$IMAGE$NEW_IMAGE推送到私有仓库echo"Pushing image:$NEW_IMAGE"docker push$NEW_IMAGE检查推送是否成功if[[ $? -ne 0 ]];thenecho"Failed to push image:$NEW_IMAGE"fidoneecho"All images have been processed."root@k8smaster232:~chmod +x k8s_images_pull_push.shroot@k8smaster232:~./k8s_images_pull_push.shLogginginto Harbor... Checkingifimage abc.dns.com/google_containers/etcd:3.6.4-0 existsinHarbor... Pulling image: registry.k8s.io/etcd:3.6.4-0 3.6.4-0: Pulling from etcd a62778643d56: Pull complete b0652f640f8e: Pull complete 7c12895b777b: Pull complete 3214acf345c0: Pull complete 5664b15f108b: Pull complete 0bab15eea81d: Pull complete 4aa0ea1413d3: Pull complete da7816fa955e: Pull complete ddf74a63f7d8: Pull complete 38ba01b3f28c: Pull complete 02025ef0e84d: Pull complete Digest: sha256:e36c081683425b5b3bc1425bc508b37e7107bb65dfa9367bf5a80125d431fa19 Status: Downloaded newer imageforregistry.k8s.io/etcd:3.6.4-0 registry.k8s.io/etcd:3.6.4-0 Tagging image: registry.k8s.io/etcd:3.6.4-0 as abc.dns.com/google_containers/etcd:3.6.4-0 Pushing image: abc.dns.com/google_containers/etcd:3.6.4-0 The push refers to repository [abc.dns.com/google_containers/etcd] b0652f640f8e: Pushed 3214acf345c0: Mounted from google_containers/kube-scheduler 0bab15eea81d: Pushed da7816fa955e: Mounted from google_containers/kube-scheduler ddf74a63f7d8: Mounted from google_containers/kube-scheduler 02025ef0e84d: Pushed a62778643d56: Pushed 7c12895b777b: Mounted from google_containers/kube-scheduler 5664b15f108b: Mounted from google_containers/kube-scheduler 4aa0ea1413d3: Mounted from google_containers/kube-scheduler 38ba01b3f28c: Pushed 4eff9a62d888: Mounted from google_containers/kube-scheduler 35d697fe2738: Mounted from google_containers/kube-scheduler bfb59b82a9b6: Mounted from google_containers/kube-scheduler 3.6.4-0: digest: sha256:71170330936954286be203a7737459f2838dd71cc79f8ffaac91548a9e079b8f size: 3044 i Info → Not all multiplatform-content is present and only the available single-platform image was pushed sha256:e36c081683425b5b3bc1425bc508b37e7107bb65dfa9367bf5a80125d431fa19 -> sha256:71170330936954286be203a7737459f2838dd71cc79f8ffaac91548a9e079b8f All images have been processed.image-20251111155755072
4. 创建网络插件Calico源
4.1 创建k8s集群
这里我使用我已经创建好的集群来做演示,主要用来查看Calico需要什么镜像,如果你知道那就不用这个步骤了自己直接下。
4.1.1 下载Calico配置文件修改后查看需要加载哪些镜像
下载tigera-operator.yamlroot@k8smaster232:~mkdir calicoroot@k8smaster232:~cd calicoroot@k8smaster232:~/calicowget https://raw.githubusercontent.com/projectcalico/calico/v3.31.0/manifests/tigera-operator.yamlroot@k8smaster232:~/calicocat tigera-operator.yaml |grep "image"imagePullSecrets:- imagesets.operator.tigera.io - imagesetsimage:quay.io/tigera/operator:v1.40.0这里是一个镜像,imagePullPolicy:IfNotPresent创建root@master233:~/calicokubectl create -f tigera-operator.yaml下载custom-resources.yamlroot@master233:~/calicowget https://raw.githubusercontent.com/projectcalico/calico/v3.31.0/manifests/custom-resources.yaml修改配置并创建root@k8smaster232:~/calicocat custom-resources.yaml...calicoNetwork:ipPools:-name:default-ipv4-ippoolblockSize:26cidr:10.244.0.0/16这里要注意修改为你再k8s部署时pod的网段encapsulation:VXLANCrossSubnetnatOutgoing:EnablednodeSelector:all() ... root@k8smaster232:~/calicokubectl create -f custom-resources.yaml查看所需镜像root@master233:~/calicokubectl get pods -n calico-system -o jsonpath={range .items[*]}{.spec.containers[*].image}{"\n"}{end} |sort|uniqquay.io/calico/apiserver:v3.31.0quay.io/calico/csi:v3.31.0quay.io/calico/node-driver-registrar:v3.31.0quay.io/calico/goldmane:v3.31.0quay.io/calico/kube-controllers:v3.31.0quay.io/calico/node:v3.31.0quay.io/calico/typha:v3.31.0quay.io/calico/whisker:v3.31.0quay.io/calico/whisker-backend:v3.31.04.1.2 镜像推送到私服
这里自己改下上面的脚本就行,quay.io/tigera/operator:v1.40.0镜像我就手动先修改下上传了root@k8smaster232:~docker pull quay.io/tigera/operator:v1.40.0root@k8smaster232:~docker tag quay.io/tigera/operator:v1.40.0 abc.dns.com/tigera/operator:v1.40.0root@k8smaster232:~docker push abc.dns.com/tigera/operator:v1.40.0image-20251111163824217
阿里云服务器 硬盘
4.1.3 脚本
root@k8smaster232:~cat calico_images_pull_push.sh!/bin/bash定义你的私有镜像仓库地址PRIVATE_REGISTRY="abc.dns.com/calico"定义 Harbor 账户信息HARBOR_USERNAME="admin"HARBOR_PASSWORD="xxx"k8s镜像列表IMAGES=("quay.io/calico/apiserver:v3.31.0""quay.io/calico/csi:v3.31.0""quay.io/calico/node-driver-registrar:v3.31.0""quay.io/calico/goldmane:v3.31.0""quay.io/calico/kube-controllers:v3.31.0""quay.io/calico/node:v3.31.0""quay.io/calico/typha:v3.31.0""quay.io/calico/whisker:v3.31.0""quay.io/calico/whisker-backend:v3.31.0")阿里云镜像列表IMAGES2=("registry.aliyuncs.com/google_containers/kube-apiserver:v1.34.1""registry.aliyuncs.com/google_containers/kube-controller-manager:v1.34.1""registry.aliyuncs.com/google_containers/kube-scheduler:v1.34.1""registry.aliyuncs.com/google_containers/kube-proxy:v1.34.1""registry.aliyuncs.com/google_containers/coredns/coredns:v1.12.1""registry.aliyuncs.com/google_containers/pause:3.10.1""registry.aliyuncs.com/google_containers/etcd:3.6.4-0")登录到私有镜像仓库echo"Logging in to Harbor..."echo"$HARBOR_PASSWORD"| docker login"$PRIVATE_REGISTRY"-u"$HARBOR_USERNAME"--password-stdin遍历镜像列表forIMAGEin"${IMAGES[@]}";do提取镜像名称和版本NAME=$(echo$IMAGE| awk -F/{print $NF}| awk -F:{print $1}) VERSION=$(echo$IMAGE| awk -F:{print $2})构建新的镜像名称NEW_IMAGE="${PRIVATE_REGISTRY}/${NAME}:${VERSION}"检查 Harbor 中是否已存在相同版本的镜像echo"Checking if image$NEW_IMAGEexists in Harbor..."RESPONSE=$(curl -s -u"$HARBOR_USERNAME:$HARBOR_PASSWORD""http://$PRIVATE_REGISTRY/v2/${NAME}/tags/list")ifecho"$RESPONSE"| grep -q"\"${VERSION}\"";thenecho"Image$NEW_IMAGEalready exists in Harbor. Skipping upload."continuefi拉取原始镜像echo"Pulling image:$IMAGE"docker pull$IMAGE检查拉取是否成功if[[ $? -ne 0 ]];thenecho"Failed to pull image:$IMAGE"continuefi打标记为私有镜像echo"Tagging image:$IMAGEas$NEW_IMAGE"docker tag$IMAGE$NEW_IMAGE推送到私有仓库echo"Pushing image:$NEW_IMAGE"docker push$NEW_IMAGE检查推送是否成功if[[ $? -ne 0 ]];thenecho"Failed to push image:$NEW_IMAGE"fidoneecho"All images have been processed."image-20251111163759628
阿里云 php服务器
推荐阅读
- 阿里云服务器目录阿里云:计划在青岛建设阿里巴巴创新产业基地 2025-12-15 05:23:41
- 远程登录云服务器“云港通·口岸智慧查验新模式”项目在青岛正式发布 2025-12-15 05:13:35
- ip访问云服务器阿里云AI青岛峰会举办,以人工智能“重构”青岛优势产业 2025-12-15 05:03:28
- 云服务器 测评阿里云将为山东港口做顶层设计,全国首个“智慧港口”项目再升级 2025-12-15 04:53:25
- 云服务器与排名双11靠它了!阿里千岛湖数据中心启用 2025-12-15 04:43:17

