首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >我与腾讯云的故事 :腾讯云CVM云服务器下玩转k8s集群

我与腾讯云的故事 :腾讯云CVM云服务器下玩转k8s集群

原创
作者头像
江湖有缘
修改于 2024-01-29 06:26:50
修改于 2024-01-29 06:26:50
1K0
举报
文章被收录于专栏:Linux成长之路Linux成长之路

一、前言

进入云原生时代,Kubernetes作为云原生的技术基石,一直是IT技术人学习与研究的方向。无论是开发者还是运维人员,在技术不断发展的今天,只有不断学习和提高自己,才能走得更高更远。作为国内领先的云计算服务商之一,腾讯云提供了云服务器产品,可以满足不同规模企业的需求,提供高性能、高可靠、高安全的云计算服务。我们个人可以借助腾讯云的平台与服务,提升自己的技术水平。本次实践基于腾讯云的CVM云服务器,在centos7操作系统下,使用Minikube来部署一个Kubernetes集群,并安装KubePi作为多集群可视化工具来管理Kubernetes集群。同时,在Kubernetes环境下部署Nginx应用来进行测试。通过以上实践,我们可以更好地了解和熟悉Kubernetes的部署和管理,并且掌握使用KubePi进行集群可视化管理的技巧。这将有助于我们在云原生时代更好地应对技术挑战,并提升自己在云计算领域的竞争力。

二、相关名词介绍

2.1 CVM云服务器介绍

腾讯云服务器(Cloud Virtual Machine,CVM)是一种安全可靠的弹性计算服务。您可以根据业务需求实时调整计算资源的规模,实现资源的快速扩展和缩减,并按实际使用的资源进行计费。使用CVM可以有效降低软硬件采购成本,简化IT运维工作。

2.2 minikube介绍

minikube简介:

Minikube是一个用于快速在macOS、Linux和Windows上设置本地Kubernetes集群的工具。它通过在本机启动一个虚拟环境,并在该环境中安装各种Kubernetes组件来实现这一功能。Minikube可以帮助开发人员在本地环境中轻松地测试、开发和部署应用程序,而无需依赖于真实的生产环境。通过使用Minikube,开发人员可以更加方便地进行Kubernetes相关的开发和调试工作。

minikube特点:

  • 支持最新的 Kubernetes 版本
  • 跨平台(Linux,macOS,Windows)
  • 部署为 VM、容器或裸机上
  • 多个容器运行时(CRI-O、containerd、docker
  • 直接 API 端点,用于快速加载和构建映像
  • 高级功能,如负载平衡器、文件系统挂载、功能门和网络策略
  • 用于易于安装的 Kubernetes 应用程序的插件
  • 支持常见的 CI 环境

2.3 kubernetes介绍

Kubernetes(也称为K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一个可靠的方式来处理容器化应用程序的部署和管理,使开发人员能够专注于应用程序的开发,而不必担心底层基础设施的管理。Kubernetes可以在多个主机上运行容器化应用程序,并提供容器的自动化编排和管理。它可以自动处理容器的调度、负载均衡、存储和网络等方面的任务,以确保应用程序在集群中可靠且高效地运行。Kubernetes还提供了一套API和命令行工具,使用户能够管理和监控集群、部署和更新应用程序、进行故障排除和调试等操作。它支持多种容器运行时,包括Docker和Containerd等。

2.4 KubePi介绍

KubePi 是一个现代化的 K8s 面板:KubePi 允许管理员导入多个 Kubernetes 集群,并且通过权限控制,将不同 cluster、namespace 的权限分配给指定用户。它允许开发人员管理 Kubernetes 集群中运行的应用程序并对其进行故障排查,供开发人员更好地处理 Kubernetes 集群中的复杂性。

三、本次实践规划

3.1 本次实践介绍

1.本次实践基于腾讯云CVM云服务器环境; 2.本次实践使用的操作系统为centos7 ; 3.在一台CVM上使用Minikube来部署一个单节点Kubernetes集群; 4.部署一个Nginx测试应用; 5.在CVM云服务器上部署KubePi工具来管理k8s集群。

3.2 本次实践规划

Minikube部署轻量级k8s集群环境要求::

  • 2 个或更多 CPU
  • 2GB 可用内存
  • 20GB 可用磁盘空间
  • 互联网连接
  • 容器或虚拟机管理器,例如:Docker,QEMU,Hyperkit,Hyper-V,KVM,Parallels,Podman,VirtualBox或VMware Fusion/工作站

本次实践环境具体规划如下:

hostname

本地IP地址

Docker版本

操作系统版本

CPU核数

内存

硬盘

minikube版本

k8s版本

k8s

172.28.0.15

23.0.5

centos7

4

16G

50G

v1.30.1

v1.26.3

四、购买CVM云服务器

4.1 购买云服务器

腾讯云CVM官网地址:https://cloud.tencent.com/product/cvm

自定义配置——基础配置:

  • 计费模式:按需计费
  • 地域:选择国外地区,方便后面拉取镜像。
  • 可用区:随机可用区,自定义选择即可。
  • 实例配置:这里选择实例已选实例 S5.LARGE16(标准型S5,4核 16GB)
  • 实例规格:S5.LARGE16(标准型S5,4核 16GB)
  • 镜像:公共镜像,
  • 存储:默认选择50G SSD规格 点击“下一步”,设置网络和主机。

网络与主机配置:

  • 网络:选择默认的VPC或者新建VPC,根据自身需要选择。
  • 公网IP:勾选“分配独立公网IP”。
  • 线路类型:BGP
  • 带宽计费模式:按流量计费
  • 带宽值:100Mbps
  • 安全组:新建安全组,配置默认即可,后面服务需要放行安全组端口,则再行设置即可。
  • 实例名称:my-k8s,自定义设置即可。
  • 登录方式:设置密码登录,设置云服务器访问密码。
  • 其余配置默认

下一步,确认配置信息。

检查配置信息,勾选同意协议,确认开通即可。

4.2 检查CVM云服务器状态

购买CVM云服务器后,会自动跳转到云服务器的实例列表,我们可以看到云服务器状态正在运行中。

五、检查云服务器环境

5.1 本地远程登录云服务器

复制云服务器的公网IP地址,远程连接时使用。

5.2 远程ssh连接云服务器

本地使用Xshell远程连接腾讯CVM云服务器

5.3 查看操作系统版本

执行以下命令,修改云服务器主机名,重新SSH连接后,主机名生效。

代码语言:bash
AI代码解释
复制
hostnamectl set-hostname k8s

查看操作系统版本,当前操作系统版本为CentOS Linux release 7.6.1810。

代码语言:bash
AI代码解释
复制
[root@VM-0-15-centos ~]#  cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

查看内核版本,当前内核版本为3.10.0-1160.99.1.el7.x86_64。

代码语言:bash
AI代码解释
复制
[root@k8s ~]#  uname -r
3.10.0-1160.99.1.el7.x86_64

5.4 云服务器相关基础配置

执行以下命令,检查当前yum仓库状态。

代码语言:bash
AI代码解释
复制
[root@k8s ~]# yum repolist enabled
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id                                            repo name                                                           status
epel/7/x86_64                                      EPEL for redhat/centos 7 - x86_64                                   13,786
extras/7/x86_64                                    Qcloud centos extras - x86_64                                          518
os/7/x86_64                                        Qcloud centos os - x86_64                                           10,072
updates/7/x86_64                                   Qcloud centos updates - x86_64                                       5,568
repolist: 29,944

执行以下命令,安装tree、git、wget、net-tools等基础软件,可根据自身需要安装其他软件。

代码语言:bash
AI代码解释
复制
yum   install tree wget net-tools git -y

六、安装Docker环境

6.1 安装Docker

执行以下部署脚本,一键安装Docker。

代码语言:bash
AI代码解释
复制
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun

6.2 Docker相关配置

执行以下命令,配置Docker的镜像加速。

代码语言:bash
AI代码解释
复制
echo '{ "registry-mirrors": ["https://docker.mirrors.sjtug.sjtu.edu.cn"] }'   > /etc/docker/daemon.json 
systemctl daemon-reload  && systemctl restart docker

开启内核IP转发功能

代码语言:bash
AI代码解释
复制
echo "net.ipv4.ip_forward=1" >>  /etc/sysctl.conf

查看是否成功:sysctl net.ipv4.ip_forward,如果返回为“net.ipv4.ip_forward = 1”则表示成功 sysctl。

代码语言:bash
AI代码解释
复制
sysctl -p
sysctl net.ipv4.ip_forward

检查当前Docker状态,确保Docker服务正常运行。

代码语言:bash
AI代码解释
复制
[root@k8s ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2024-01-24 21:21:42 CST; 49s ago
     Docs: https://docs.docker.com
 Main PID: 12324 (dockerd)
    Tasks: 10
   Memory: 31.2M
   CGroup: /system.slice/docker.service
           └─12324 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

七、安装minikube

7.1 安装kubectl工具

创建部署目录/data/minikube,本次实践下载的文件都存放在此目录下。

代码语言:bash
AI代码解释
复制
mkdir -p /data/minikube && cd /data/minikube

下载kubectl二进制包

代码语言:bash
AI代码解释
复制
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

复制kubectl的二进制文件

代码语言:bash
AI代码解释
复制
mv kubectl /usr/bin/kubectl &&  chmod +x /usr/bin/kubectl 

检查kubectl的版本,本次安装的kubectl版本为v1.29.1。

代码语言:bash
AI代码解释
复制
[root@k8s minikube]# kubectl version
Client Version: v1.29.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
The connection to the server localhost:8080 was refused - did you specify the right host or port?

7.2 下载minikube软件包

下载minikube软件包

代码语言:bash
AI代码解释
复制
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

7.3 安装minikube

执行以下命令,开始安装minikube工具。

代码语言:bash
AI代码解释
复制
sudo install minikube-linux-amd64 /usr/local/bin/minikube

7.4 查看minikube版本

检查minikube版本,当前版本为v1.30.1版本。

代码语言:bash
AI代码解释
复制
[root@k8s minikube]# minikube version
minikube version: v1.32.0
commit: 8220a6eb95f0a4d75f7f2d7b14cef975f050512d

八、部署k8s集群

8.1 安装conntrack-tools工具

安装conntrack-tools工具.,此工具必须提前安装,否则在启动k8s集群时会直接报错。

代码语言:bash
AI代码解释
复制
yum -y install conntrack-tools

8.2 安装cri-dockerd

下载cri-dockerd软件,下载地址:https://github.com/Mirantis/cri-dockerd

代码语言:bash
AI代码解释
复制
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.1/cri-dockerd-0.3.1.amd64.tgz
代码语言:bash
AI代码解释
复制
[root@k8s minikube]# ls
cri-dockerd-0.3.1.amd64.tgz  minikube-linux-amd64

解压复制cri-dockerd二进制文件

代码语言:bash
AI代码解释
复制
[root@k8s minikube]# tar -xzf cri-dockerd-0.3.1.amd64.tgz
[root@k8s minikube]# cp cri-dockerd/cri-dockerd /usr/bin/

查看cri-dockerd版本,本次使用的cri-dockerd版本为0.3.1。

代码语言:bash
AI代码解释
复制
[root@k8s minikube]# cri-dockerd --version
cri-dockerd 0.3.1 (7e528b98)

根据以下配置,编辑cri-dockerd的socket文件。

代码语言:bash
AI代码解释
复制
vim /etc/systemd/system/cri-docker.socket
代码语言:bash
AI代码解释
复制
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service

[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target

根据以下配置,编辑cri-docker的服务启动文件。

代码语言:bash
AI代码解释
复制
vim /etc/systemd/system/cri-docker.service
代码语言:bash
AI代码解释
复制
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket

[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin= --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6 --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
# Both the old, and new location are accepted by systemd 229 and up, so using the old location
# to make them work for either version of systemd.
StartLimitBurst=3

# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
# this option work for either version of systemd.
StartLimitInterval=60s

# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

# Comment TasksMax if your systemd version does not support it.
# Only systemd 226 and above support this option.
TasksMax=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target

启动cri-dockerd服务,并设置开机启动。

代码语言:bash
AI代码解释
复制
systemctl enable  cri-docker.service --now

查看cri-dockerd服务状态,确保cri-docker服务正常启动。

代码语言:bash
AI代码解释
复制
[root@k8s minikube]# systemctl status cri-docker.service
● cri-docker.service - CRI Interface for Docker Application Container Engine
   Loaded: loaded (/etc/systemd/system/cri-docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2024-01-24 22:05:16 CST; 28s ago
     Docs: https://docs.mirantis.com
 Main PID: 23347 (cri-dockerd)
    Tasks: 9
   Memory: 14.1M
   CGroup: /system.slice/cri-docker.service

8.3 安装crictl

下载crictl软件,下载地址:https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.27.0

代码语言:bash
AI代码解释
复制
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.27.0/crictl-v1.27.0-linux-amd64.tar.gz
代码语言:bash
AI代码解释
复制
[root@k8s minikube]# ls
crictl-v1.27.0-linux-amd64.tar.gz  cri-dockerd  cri-dockerd-0.3.1.amd64.tgz  minikube-linux-amd64

解压crictl软件包

代码语言:bash
AI代码解释
复制
tar -xzf crictl-v1.27.0-linux-amd64.tar.gz  -C /usr/bin/

检查crictl版本,本次使用的crictl版本为v1.27.0。

代码语言:bash
AI代码解释
复制
[root@k8s minikube]#  crictl -version
crictl version v1.27.0

8.4 安装cni-plugins

安装cni-plugins,下载地址:https://github.com/containernetworking/plugins/releases

代码语言:bash
AI代码解释
复制
wget https://github.com/containernetworking/plugins/releases/download/v1.2.0/cni-plugins-linux-amd64-v1.2.0.tgz
代码语言:bash
AI代码解释
复制
[root@k8s minikube]# ls
cni-plugins-linux-amd64-v1.2.0.tgz  cri-dockerd                  minikube-linux-amd64
crictl-v1.27.0-linux-amd64.tar.gz   cri-dockerd-0.3.1.amd64.tgz

执行以下命令,创建/opt/cni/bin/目录。

代码语言:bash
AI代码解释
复制
mkdir -p /opt/cni/bin/

解压 cni-plugins到/opt/cni/bin/

代码语言:bash
AI代码解释
复制
tar -xzf  cni-plugins-linux-amd64-v1.2.0.tgz  -C /opt/cni/bin/

8.5 部署k8s集群

执行以下命令,快速部署一个单机的轻量级k8s集群。

代码语言:bash
AI代码解释
复制
minikube start  --driver=none --kubernetes-version=v1.26.3

国内环境下,使用国内镜像源拉取,速度会有点慢。

代码语言:bash
AI代码解释
复制
minikube start --image-mirror-country=cn --driver=none --kubernetes-version=v1.26.3
  • --driver=none Minikube使用无驱动程序的方式来创建Kubernetes本地环境
  • --registry-mirror=***为了拉取Docker Hub镜像,需要为 Docker daemon 配置镜像加速,参考阿里云镜像服务
  • --kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本

8.6 检查minikube状态

检查minikube状态,确保k8s各组件正常运行。

代码语言:bash
AI代码解释
复制
[root@k8s minikube]# minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

8.7 新增k8s集群节点

执行以下命令,用于在minikube集群中添加一个新的节点。这个命令可以用于扩展集群,增加节点的数量,从而提高集群的可靠性和容量。

代码语言:bash
AI代码解释
复制
minikube node add

8.8 清空k8s环境

可以通过以下命令,删除所有本地k8s集群和配置文件,以防配置错误,清空环境,重新部署k8s集群。

代码语言:bash
AI代码解释
复制
minikube stop/delete # 停止、删除本地集群
minikube delete --all #删除所有本地集群和配置文件

九、检查k8s环境

9.1 检查本地容器

执行以下命令,可以查看本地启动的相关k8s组件容器。

代码语言:bash
AI代码解释
复制
docker container ls

9.2 检查k8s集群节点状态

执行以下命令,可以看到k8s所有节点状态

代码语言:bash
AI代码解释
复制
[root@k8s minikube]# kubectl get nodes -owide
NAME   STATUS   ROLES           AGE     VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION       CONTAINER-RUNTIME
k8s    Ready    control-plane   5m52s   v1.26.3   172.28.0.15   <none>        CentOS Linux 7 (Core)   3.10.0-1160.99.1.el7.x86_64   docker://25.0.1

9.3 检查k8s集群系统pod状态

检查k8s集群系统pod状态

代码语言:bash
AI代码解释
复制
[root@k8s minikube]# kubectl get pods -n kube-system
NAME                          READY   STATUS    RESTARTS   AGE
coredns-567c556887-lv6fl      1/1     Running   0          7m50s
etcd-k8s                      1/1     Running   0          8m3s
kube-apiserver-k8s            1/1     Running   0          8m3s
kube-controller-manager-k8s   1/1     Running   0          8m4s
kube-proxy-5cxbh              1/1     Running   0          7m50s
kube-scheduler-k8s            1/1     Running   0          8m3s
storage-provisioner           1/1     Running   0          8m2s

十、部署Nginx测试应用

10.1 编辑部署文件

编辑一个测试web.yaml文件

代码语言:bash
AI代码解释
复制
vim web.yaml 
代码语言:yaml
AI代码解释
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-testweb
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app:  nginx
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx
  name: svs-web
spec:
#  clusterIP: None
  ports:
  - name: web-port
    port: 80
    protocol: TCP
    targetPort: 80
    nodePort: 30060
  selector:
    app: nginx
  type: NodePort

10.2 部署测试应用

部署Nginx测试应用

代码语言:bash
AI代码解释
复制
[root@k8s minikube]# kubectl apply -f web.yaml
deployment.apps/my-testweb created
service/svs-web created

10.3 检查Nginx的pod和service状态

查看Nginx服务的pod及service状态

  • 查看pod状态
代码语言:bash
AI代码解释
复制
[root@k8s minikube]# kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
my-testweb-774f96d4d9-w8x66   1/1     Running   0          61s
  • 查看service资源对象
代码语言:bash
AI代码解释
复制
[root@k8s minikube]# kubectl get service
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        14m
svs-web      NodePort    10.97.128.248   <none>        80:30060/TCP   90s

10.4 本地访问Nginx应用

在腾讯云安全组在入方向上放行30060端口

在本地浏览器访问:http://云服务器公网IP地址:30060

十一、部署KubePi管理面板

11.1 安装KubePi管理面板

执行以下命令,使用docker-cli快速创建KubePi容器。

代码语言:bash
AI代码解释
复制
docker run --privileged -d -v /root/.minikube:/root/.minikube --name kubepi --restart=unless-stopped -p 8098:80 kubeoperator/kubepi-server

使用以下docker-compose.yaml部署文件,创建KubePi容器。

代码语言:yaml
AI代码解释
复制
version: '3'
services:
  kubepi:
    image: kubeoperator/kubepi-server
    privileged: true
    volumes:
      - /root/.minikube:/root/.minikube
    restart: unless-stopped
    ports:
      - 8098:80
代码语言:bash
AI代码解释
复制
docker compose up -d  #创建KubePi容器

11.2 检查kubepi容器日志

  • 检查kubepi容器状态,确保kubepi容器正常启动。
代码语言:bash
AI代码解释
复制
[root@k8s minikube]# docker compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
minikube-kubepi-1   "tini -g -- kubepi-s…"   kubepi              running             0.0.0.0:8098->80/tcp, :::8098->80/tcp
  • 检查kubepi容器日志,确保KubePi服务正常运行。
代码语言:bash
AI代码解释
复制
[root@k8s minikube]# docker logs kubepi
\config file not found in , skip
time="2024-01-25T19:22:47+08:00" level=info msg="current db version: 0"
time="2024-01-25T19:22:47+08:00" level=info msg="executing db migration: [1]  Create default user and cluster"
time="2024-01-25T19:22:47+08:00" level=info msg="executing db migration: [2]  Add role repo manager"
time="2024-01-25T19:22:47+08:00" level=info msg="update db to version: 2"
Now listening on: http://0.0.0.0

11.3 访问kubepi面板

本地浏览器访问:http://公网IP地址:8098,将IP替换为自己云服务器的IP地址。需要在云服务器的安全组上放行8098端口,登录密码默认为admin/kubepi。

11.4 添加k8s集群

下载本地kubeconfig文件,在k8s集群中,kubeconfig文件一般默认在 $HOME/.kube目录下。

代码语言:bash
AI代码解释
复制
sudo mv /root/.kube /root/.minikube $HOME
sudo chown -R $USER $HOME/.kube $HOME/.minikube
代码语言:bash
AI代码解释
复制
[root@k8s minikube]# ls /root/.kube/
cache  config

上传kubeconfig文件到kubepi面板。

11.5 查看k8s集群状态

添加成功后,可以看到k8s集群状态正常。

查看添加的k8s集群详细信息

十二、总结

腾讯云服务器CVM的强大性能大大提高了学习与实践的效率,在本次实践中,遇到了一些问题,但都得到了逐一解决。其中最重要的问题是minikube启动集群时拉取镜像速度过慢的问题。尽管使用了国内的镜像源,但仍然非常缓慢。除了使用国外云主机部署的方式,后来发现了更快的启动方法,即提前拉取启动k8s集群所需的镜像,或者导入别人准备好的镜像包到本地进行启动,这种方式省去了镜像拉取缓慢的问题。之后,可以在本次实践的基础上,添加更多的k8s工作节点,以提高集群的可靠性和容量,并发现更多k8s的可玩性。

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
域名解析中A记录、CNAME、MX记录、NS记录的区别和联系
1. A记录 又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器。 说明: ·指向的目标主机地址类型只能使用IP地址; 附加说明: 1) 泛域名解析 即将该域名所有未指定的子域名都指向一个空间。 在“主机名”中填入*,“类型”为A,“IP地址/主机名”中填入web服务器的IP地址,点击“新增”按钮即可。 2) 负载均衡的实现: 负载均衡(Server Load Balancing,SLB)是指在一系列资源上面动态地分布网络负载。负载均衡可以减少网络拥塞,提高整体网络性能,提高自愈性,并确保企业关键性应用的可用性。 当相同子域名有多个目标地址时,表示轮循,可以达到负载均衡的目的,但需要虚拟主机服务商支持。 2. CNAME 通常称别名指向。您可以为一个主机设置别名。比如设置test.mydomain.com,用来指向一个主机www.rddns.com那么以后就可以用test.mydomain.com来代替访问www.rddns.com了。 说明: ·CNAME的目标主机地址只能使用主机名,不能使用IP地址; ·主机名前不能有任何其他前缀,如:http://等是不被允许的; ·A记录优先于CNAME记录。即如果一个主机地址同时存在A记录和CNAME记录,则CNAME记录不生效。 3. MX记录 邮件交换记录。用于将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理。如:用户所用的邮件是以域名mydomain.com为结尾的,则需要在管理界面中添加该域名的MX记录来处理所有以@mydomain.com结尾的邮件。 说明: ·MX记录可以使用主机名或IP地址; ·MX记录可以通过设置优先级实现主辅服务器设置,“优先级”中的数字越小表示级别越高。也可以使用相同优先级达到负载均衡的目的; ·如果在“主机名”中填入子域名则此MX记录只对该子域名生效。 附加说明: 1) 负载均衡 服务器负载均衡(Server Load Balancing,SLB)是指在一系列资源上面智能地分布网络负载。负载均衡可以减少网络拥塞,提高整体网络性能,提高自愈性,并确保企业关键性应用的可用性。当域名的MX记录有多个目标地址且优先级相同时,表示轮循,可以达到负载均衡的目的,但需要邮箱服务商支持。 4. NS记录 解析服务器记录。用来表明由哪台服务器对该域名进行解析。这里的NS记录只对子域名生效。例如用户希望由12.34.56.78这台服务器解析news.mydomain.com,则需要设置news.mydomain.com的NS记录。 说明: ·“优先级”中的数字越小表示级别越高; ·“IP地址/主机名”中既可以填写IP地址,也可以填写像ns.mydomain.com这样的主机地址,但必须保证该主机地址有效。如,将news.mydomain.com的NS记录指向到ns.mydomain.com,在设置NS记录的同时还需要设置ns.mydomain.com的指向,否则NS记录将无法正常解析; ·NS记录优先于A记录。即,如果一个主机地址同时存在NS记录和A记录,则A记录不生效。这里的NS记录只对子域名生效。 5. 相关说明 1) 负载均衡 服务器负载均衡(Server Load Balancing,SLB)是指在一系列资源上面智能地分布网络负载。负载均衡可以减少网络拥塞,提高整体网络性能,提高自愈性,并确保企业关键性应用的可用性。 当相同子域有多个目标地址,或域名的MX记录有多个目标地址且优先级相同时,表示轮循,可以达到负载均衡的目的,但需要虚拟主机和邮箱服务商支持。 2) TTL值 TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存时间。东方网景DNS服务器默认即时生效,客户的增加修改一般不超过15分钟可以使用。
forrestlin
2022/04/02
10.4K0
DNS详解: A记录,子域名,CNAME别名,PTR,MX,TXT,SRV,TTL
DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务)。域名系统为Internet上的主机分配域名地址和IP地址。由于网络中的计算机都必须有个IP地址,来识别, 互相之间才能通信,但让我们记住一大串的IP地址来访问网站显然是不可能的,所以用户使用域名地址,而DNS系统的功能就是自动把域名地址翻译为IP地址。域名服务是运行域名系统的Internet工具。执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。 1、DNS就是域名服务器,他的任务就是确定域名的解析,比如A记录MX记录等等。 2、任何域名都至少有一个DNS,一般是2个。但为什么要2个以上呢?因为DNS可以轮回处理,这样第一个解析失败可以找第二个。这样只要有一个DNS解析正常,就不会影响域名的正常使用。 3、如何确定域名的DNS 很简单到www.internic.net/whois.html输入你要查询的域名就可以看到了。这个是国际域名管理中心。唯一的权威。只要这里能查到某个域名,就表示域名是生效的。它说你什么时候到期,就是什么时候到期。 4、有效的DNS表示当前正在起作用的DNS服务器是谁,比如查询结果是NS.XINNETDNS.COM、NS.XINNET.CN(新网信海)就表示当前域名是由NS.XINNETDNS.COM、NS.XINNET.CN(新网信海)负责解析。其他未显示的DNS的设置,都是无效的。 5、 DNS是可以修改的。修改以后需要24-72小时以后,全世界范围的所有DNS服务器才能刷新过来。internic的信息一般在24小时以后可以看到。另外,修改的过程,并不表示域名会停止解析,只要你在2边都做好了解析。如果生效了就是新的DNS在起作用。如果没生效。就是旧的DNS在起作用。要么生效,要么不生效。不存在2个都不起作用的时间。所以域名解析,不会中断。前提是两边都做了解析。
sunsky
2020/08/19
9.4K0
DNS域名解析中各项记录值的含义及遇到的一些问题
域名解析就是域名到IP地址的转换过程,域名的解析工作由DNS服务器完成。DNS服务器会把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。域名解析时会添加解析记录,这些记录有:A记录、AAAA记录、CNAME记录、MX记录、NS记录、TXT记录、SRV记录、URL转发。
德顺
2019/11/13
6.6K0
域名解析填写指南:主机记录、记录值、IPv6和DNS填写方法
需要注意的是,根据不同的主机服务商,可能会有特定的要求和介绍,可以在服务器管理平台查看更多信息。
很酷的站长
2023/10/07
7.6K0
域名解析填写指南:主机记录、记录值、IPv6和DNS填写方法
搞它!!!深入了解DNS域名解析服务,教你搭建一个属于自己的DNS服务器(正向解析、反向解析、泛域名解析、邮件交换解析、别名解析、分离解析,主从结构解析)
我们知道用户在与互联网上的主机通信时,必须知道对方的 IP 地址。但是每个 IP 地址都是由 32 位的二进制组成,即使是十进制的 IP 地址表示形式,用户想要记住也是很难的一件事,况且互联网有那么多的主机。
不吃小白菜
2020/09/03
17.9K0
搞它!!!深入了解DNS域名解析服务,教你搭建一个属于自己的DNS服务器(正向解析、反向解析、泛域名解析、邮件交换解析、别名解析、分离解析,主从结构解析)
DNS服务器
DNS(Domain Name Server),域名服务器,其作用是提供域名 解析ip(正向解析),ip解析域名(反向解析) 的服务。
阿七日记
2021/12/28
7.1K0
DNS服务器
Linux部署DNS服务器
DNS(Domain Name System–域名系统),是因特网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。是一个应用层的协议DNS使用TCP和UDP端口53。 DNS是一个分布式数据库,命名系统采用层次的逻辑结构,如同一颗倒置的树,这个逻辑的树形结构称为域名空间,由于DNS划分了域名空间,所以各机构可以使用自己的域名空间创建DNS信息. DNS(Domain Name Service) 域名解析服务,就是将域名和 ip 之间做相应的转换,利用 TCP 和 UDP 的53号端口。DNS默认端口是53的TCP和UPD,UDP是供用户查询的,主从复制用TCP和UDP的53端口都用。
黑白天安全
2020/07/23
25.2K0
Linux部署DNS服务器
GoDaddy设置DNS绑定主机以及添加A记录域名解析完整过程
不论我们在哪家域名注册商购买域名,我们如果需要搭建网站就需要用到解析域名至主机IP的操作。比如我们在Godaddy注册域名之后,很多用户不会操作Godaddy域名解析的设置,因为后台界面是英文以及面板不是我们熟悉的界面,尤其是新手用户可能不知如何解决,网上搜索出来的很多教程都是过期的,因为Godaddy经过多次的改版目前的界面比较新。
老蒋
2021/12/24
18K0
GoDaddy设置DNS绑定主机以及添加A记录域名解析完整过程
Linux中搭建DNS 域名解析服务器(详细版)
正向查询用于将域名解析为IP地址,这样用户就可以使用易记的域名来访问互联网上的各种网络资源,而不需要记忆IP地址。
神秘泣男子
2024/06/03
1.8K0
Linux中搭建DNS 域名解析服务器(详细版)
DNS服务器搭建与配置
DNS(Domain Name System–域名系统),是因特网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。是一个应用层的协议DNS使用TCP和UDP端口53。
全栈程序员站长
2022/09/05
5.4K0
域名解析各种记录的含义
用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。
为为为什么
2022/08/06
6.1K0
CentOS-DNS服务器搭建
1.安装bind ---- yum install -y bind 2.修改named.conf主配置文件 vim /etc/named.conf 编辑为 options { listen-on port 53 { any; }; #监听在这台主机系统上面的哪个网络借口。默认是监听在localhost,即只有本机可以对DNS服务进行查询 listen-on-v6 port 53 { ::1; }; directory "/v
偏有宸机
2020/11/05
3.6K0
CentOS-DNS服务器搭建
一文搞懂常用的网络概念:域名、静态IP和动态IP、域名解析DNS、动态域名解析DDNS
在此之前,我对于网络通讯上的一些基础概念总是含糊其辞,感觉自己知道都又道不出个所以然,总之就是不成体系难以有个整体的把握。因此有了本文,目的是对一些平时颇为关注的网络概念进行总结,描绘出它们的关系,借此也希望能去扫清你的一些障碍,给小伙伴们分享一波。
YourBatman
2020/04/08
41K1
一文搞懂常用的网络概念:域名、静态IP和动态IP、域名解析DNS、动态域名解析DDNS
DNS服务器的基础应用及主从同步
域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS 使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
用户2645267
2018/08/10
2.1K0
国外常用的免费DNS域名解析服务器「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152144.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/25
29.2K0
【深入分析Java Web】几种域名解析方式-详解
A记录: A代表的是Address,用来指定域名对应的IP地址,如将item.taobao.com指定到115.238.23.241,将switch.taobao.com指定到121.14.24.241。A记录可以将多个域名解析到一个IP地址,但是不能将一个域名解析到多个IP地址。
谙忆
2021/01/21
1.9K0
dns备用服务器信息,dns服务器地址(dns首选和备用填多少)
DNS是计算机域名体系(DomainNameSystem或DomainNameService)的缩写,它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功用的服务器。其中域名有必要对应一个IP地址,而IP地址不一定只对应一个域名。域名体系选用相似目录树的等级结构。域名服务器为客户机/服务器方式中的服务器方,它主要有两种方式:主服务器和转发服务器。在Internet上域名与IP地址之间是一对一(或者多对一)的,也可选用DNS轮询完结一对多,域名虽然便于人们记忆,但机器之间只认IP地址,它们之间的转换工作称为域名解析,域名解析需求由专门的域名解析服务器来完结,DNS便是进行域名解析的服务器。DNS命名用于Internet的TCP/IP网络中,经过用户友好的名称查找计算机和服务。当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与之相关的其他信息。由于,你在上网时输入的网址,是经过域名解析体系解析找到了相对应的IP地址,这样才干上网。其实,域名的最终指向是IP。
全栈程序员站长
2022/06/27
15.3K0
dns备用服务器信息,dns服务器地址(dns首选和备用填多少)
深入学习 DNS 域名解析
在平时工作中相信大家都离不开 DNS 解析,因为 DNS 解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程。
用户11531739
2025/03/19
1.5K0
DNS记录类型分析
DNS:Domain Name System 域名管理系统 域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,这一命名的方法或这样管理域名的系统叫做域名管理系统。DNS:Domain Name Server 域名服务器 域名虽然便于人们记忆,但网络中的计算机之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务器。 查看DNS更详细的解释
用户8418197
2021/12/26
3.5K0
DNS那些事——从浏览器输入域名开始分析DNS解析过程
  也称为DNS解析器。这种服务器是 DNS 查询的起点,它负责从根 DNS 服务器开始解析域名,一步步查询到目标域名所在的 DNS 服务器,并将解析结果返回给用户设备。递归 DNS 服务器通常由网络服务提供商(ISP)或公司网络管理员管理。
砖业洋__
2023/05/06
4.4K0
DNS那些事——从浏览器输入域名开始分析DNS解析过程
推荐阅读
相关推荐
域名解析中A记录、CNAME、MX记录、NS记录的区别和联系
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档