欢迎来到阿里云授权服务中心典名科技有限公司!咨询电话:023-66887777 18623333330

微信
手机版
网站地图

如何在CentOS上安装Kubernetes集群

2021-09-10 10:13:05 投稿人 : admin 围观 : 121 次 0 评论

“如何在CentOS上安装Kubernetes集群”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.Kubernetes主机环境预设

Kubernete集群的主机生产环境也有多种选择,如下:

  • 方案一:   三台或者五台 Master 节点,分别安装全角色:ETCD , Control Plane ;其他节点为容器计算机节点,分别安装角色: worker;

  • 方案二:  三台节点分别安装角色:ETCD;两台节点分别安装角色:Control Plane;其他节点为容器计算机节点,分别安装角色: worker;

但我现在手上只有一台7代i7的笔记本,虽有16G内存,但这双核四线程真不够看啊,单机和minikube安装先不考虑,等小型实验集群实验好后再逐个实现。我的笔记本是安装的fedora,使用kvm虚拟机虚拟了三个主机每个主机也就1vcpu+1G内存,分别安装一个master节点和两个计算节点。
各个节点需要安装的kubernetes组件如下:

未标题-1.jpg


  • 主节点:

    • kube-apiserver

    • kube-controller-manager

    • kube-scheduler

    • kube-proxy

    • pause

    • etcd

    • coredns

  • 从节点:

    • kube-proxy

    • pause

    • flannel(本次实验选定的网络插件)

1.2 设置时间同步

如chrony,配置文件/etc/chrony.conf(内网需要配置时间服务器),服务启动使用systemctl命令。建议无论内网和能连接Internet的环境都为集群配置时间同步服务器。

1.3 配置DNS或者hosts主机解析

在/etc/hosts文件中配置集群的IP和主机名解析(同时可以减少DNS的解析时延)

1.4 关闭防火墙

CentOS7上关闭防火墙

# systemctl stop firewalld.service

# systemctl disable firewalld.service

1.5 关闭SELinux

# setenforce 0

同时配置时/etc/selinux/config文件

# vim /etc/selinux/config
...
SELINUX=disable

或者

# sed -i 's@^\(SELINUX=\).*@\1disabled@' /etc/sysconfig/selinux

1.6 禁用swap设备

Kubernetes 1.8 开始需要关闭系统 Swap 交换分区,如果不关闭,则无法启动。
查看

# free -m

临时关闭

# swapoff -a
# echo "vm.swappiness = 0" >> /etc/sysctl.conf

或者

# swapoff -a && sysctl -w vm.swappiness=0

同时编辑配置文件/etc/fstab进行永久关闭,即注释挂载swap设备的行。

注:本次实验由于资源有限没有关闭,但后续有解决方法(仅限于实验环境)

1.7 启用IPVS内核模块

kube-proxy 支持 iptables 和 ipvs,如果条件满足,默认使用 ipvs,否则使用 iptables。

cat <<EOF > /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
modprobe br_netfilter
sysctl -p /etc/sysctl.d/kubernetes.conf 或者 sysctl --system

由于 ipvs 已经加入到了内核的主干,所以为 kube-proxy 开启 ipvs 的前提需要加载以下的内核模块:

  • ip_vs

  • ip_vs_rr

  • ip_vs_wrr

  • ip_vs_sh

  • nf_conntrack_ipv4

执行以下脚本加载内核

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

参考:https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/ipvs/README.md

上面脚本创建了的/etc/sysconfig/modules/ipvs.modules文件,保证在节点重启后能自动加载所需模块。 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。

接下来还需要确保各个节点上已经安装了 ipset 软件包。 为了便于查看 ipvs 的代理规则,最好安装一下管理工具 ipvsadm。

yum install ipset ipvsadm

可以使用ipvsadm检查是否开启ipvs,示例如下:

# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.1:443 rr persistent 10800
  -> 192.168.0.1:6443             Masq    1      1          0

如果以上前提条件如果不满足,则即使 kube-proxy 的配置开启了 ipvs 模式,也会退回到 iptables 模式。

2. 安装程序包

采用docker作为容器运行

2.1 配置运行Docker

2.1.1 安装必要的一些系统工具

# yum install -y yum-utils device-mapper-persistent-data lvm2

2.1.2 添加docker源

# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

可以采用国内的镜像加速服务,参照kubernetes的官方文档,这里使用阿里的镜像在CentOS上的安装作为说明(作此笔记的时候尝试过华为、腾讯和电子科大的kubernetes好像版本没有阿里的新,就暂时先用阿里的来做实验了)。

2.1.3 更新并安装 Docker-CE

# yum makecache fast
# yum -y install docker-ce

此处根据默认是docker源文件的配置安装的是最新稳定版,但很有可能不能通过最新的kubernetes的认证。因此,我们采用下面的方式来选择安装版本,特别是再生产环境中。
首先是查找仓库中的版本:

# yum list docker-ce.x86_64 --showduplicates | sort -r
Loading mirror speeds from cached hostfile
Loaded plugins: branch, fastestmirror, langpacks
...
dockdr-ce.x86_64            18.09.9.ce-1.el7.centos            docker-ce-stable
...
docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
Available Packages

然后安装指定版本的Docker-CE: (VERSION 例如上面的 18.09.9.ce.1-1.el7.centos)

# yum -y install docker-ce-18.09.9 docker-ce-cli-18.09.9

2.2 配置运行Docker(离线环境)

如果是离线安装可以使用Everthing的哪个ISO进行依赖库的安装,但安装的docker版本比较老,不过问题也不大。当然也可以先在能够联网的主机上将需要的rpm打包下载,然后拷贝到离线环境中进行安装,关键过程如下:

2.2.1 使用yum命令下载离线包

# yum install docker-ce-18.09.9 docker-ce-cli-19.09.9 --downloadonly --downloaddir=/home/<your_account>/

2.2.2 在离线环境中安装(按照如下顺序进行安装)

1)安装基础的依赖包

# rpm -ivh checkpolicy-2.5-8.el7.x86_64.rpm
# rpm -ivh libcgroup-0.41-20.el7.x86_64.rpm
# rpm -ivh libseccomp-2.3.1-3.el7.x86_64.rpm
# rpm -ivh libsemanage-python-2.5-14.el7.x86_64.rpm
# rpm -ivh audit-libs-python-2.8.4-4.el7.x86_64.rpm
# rpm -ivh setools-libs-3.3.8-4.el7.x86_64.rpm
# rpm -ivh python-IPy-0.75-6.el7.noarch.rpm
# rpm -ivh policycoreutils-python-2.5-29.el7.x86_64.rpm

2)安装docker-ce的软件包

# rpm -ivh container-selinux-2.99-1.el7_6.noarch.rpm
# rpm -ivh containerd.io-1.2.6-3.3.el7.x86_64.rpm
# rpm -ivh docker-ce-cli-18.09.7-3.el7.x86_64.rpm
# rpm -ivh docker-ce-18.09.7-3.el7.x86_64.rpm

说明:
1.上述安装的软件包版本可能不一样,根据安装时的具体实际情况来,不必台纠结。
2.在挂载Eerything的ISO作为软件源的情况下,可以直接使用yum命令对拷贝到本地的container-selinux、containerd.io、docker-ce-cli、docker-ce的软件包,安装上述顺序进行安装。
3.如果上述包在一个文件夹下可以简单的使用"yum install <your_path>/*.rpm"来安装、\"your_path\"是存放上述包的路经。

2.3 Docker其它设置

2.3.1 创建目录/etc/docker

# mkdir /etc/docker

2.3.2 创建daemon

# cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

2.3.3 创建服务目录(官方文档,还不知道干什么用)

# mkdir -p /etc/systemd/system/docker.service.d

修改docker服务文件(/usr/lib/systemd/system/docker.service),docker的iptables的FORWARD默认策略为DROP,可能会影响集群通信,需要修改原有的docker.service文件,在"ExecStart=/usr/bin/docker"之后新增一行:

ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT

2.3.4 开启Docker服务

# systemctl daemon-reload
# systemctl start docker
# systemctl enable docker

2.4 配置运行Kubernets

2.4.1 生成kubernets的仓库配置文件

# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

2.4.2 安装kubeadm、kubelet、kubectl

# yum install kubeadm kubelet kubectl

2.4.3(可选)拉取初始化所需组件

运行镜像列表命令获取所需组件列表

#kubeadm config images list

运行镜像拉取命令直接获取组件

# kubeadm config images pull

如果没有改仓库则默认从k8s.gcr.io去获取,国内环境时获取不到,因此采用一个变通的方法

# vim k8s-pull-images.sh

#!/bin/bash
REGISTRY=gcr.azk8s.cn/google-containers

images=(
  kube-apiserver:v1.15.3
  kube-controller-manager:v1.15.3
  kube-scheduler:v1.15.3
  kube-proxy:v1.15.3
  pause:3.1
  etcd:3.3.10
  coredns:1.3.1
)

for imageName in ${images[@]} ; do
  docker pull ${REGISTRY}/$imageName  
  docker tag ${REGISTRY}/$imageName k8s.gcr.io/$imageName  
  docker rmi ${REGISTRY}/$imageName
done

说明: REGISTRY还可以使用dockerhub中的镜像,具体修改:REGISTRY=mirrorgooglecontainers。

其中组件包列表可以通过命令"kubeadm config images list"获取。

# chmod +x k8s-pull-images.sh
# ./k8s-pull-images.sh

上述脚本保存执行后可以通过"docker image list"查看结果。

2.4.4 kubeadm初始化master节点

初始化命令‘kubeadm’可以使用参数传递和yaml配置文件,测试实验推荐第一种,生产部署推荐第二种。

1) 命令行参数进行初始化
# kubeadm init --kubernetes-version="1.15.3" --pod-network-cidr="10.244.0.0/16"  --service-cidr="10.96.0.0/12" --ignore-preflight-errors=Swap --ignore-preflight-errors=NumCPU --image-reporitory "gcr.azk8s.cn" --dry-run

其中

  • --kubernete-version="1.15.3"指定了kubernete的具体版本,默认的“stable-1”,这里是1.15.0,不符合规定需要修改成当前的版本,此处时1.15.3(查询命令"rpm -qa|grep kubeadm")。

  • --pod-network-cidr="10.244.0.0/16"是自定义的Pod的网络,通常与要部署的网络插件(如:flannel和calico)保持一致,此处使用的时flannel,flannel的默认地址为:10.244.0.0/16,calico的默认地址为:192.168.0.0/16。

  • --ignore-preflight-errors=,这里有两项一个是Swap,一个是NumCPU,他们分别忽略了swap不为0的报错和CPU没有大于2的报错。因为这里我用的是虚拟机,只有1G的内存,因此没有关闭swap;同时虚拟机之分配了一个vCPU。若未禁用swap,则需要编辑kubelet的配置文件/etc/sysconfig/kubelet,忽略swap启用状态错误。

KUBELET_EXTRA_ARGS="--fail-swap-on=false"
  • --server-cidr指定service分配的网络地址,由kubernete管理,默认地址为10.96.0.0/12。

  • --image-reporitory指定组件仓库地址代替默认的"k8s.gcr.io",比如此处国内的gcr.azk8s.cn。

  • --dry-run 只是试运行看有没有什么错误,并没有实际初始化。

最后显示初始化结果

...
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.122.10:6443 --token kt9uzn.793zkkepgvup3jg8 \
    --discovery-token-ca-cert-hash sha256:1b00c8c653c5573ff89c134bd1e62a54f3640813b0e26b79f387fddb402b0b48
2) 命令行参数进行初始化(离线环境)

1.打包拉取的kubeadm初始化所需要的镜像
所需的命令和格式

docker save -o <path for generated tar file> <image name></image>

需要打包的组件列表(部署时的具体版本以实际部署时的版本为标准,注意检查)

  • kube-apiserver:v1.15.3

  • kube-controller-manager:v1.15.3

  • kube-scheduler:v1.15.3

  • kube-proxy:v1.15.3

  • pause:3.1

  • etcd:3.3.10

  • coredns:1.3.1

可以单个打包,也可以按照节点类型进行批量打包,单个打包可以应对多种架构的部署(主要时etcd从master分离)
单个打包举例(以打包kube-apiserver为例):

docker save -o kube-apiserver:v1.15.3 k8s.gcr.io/kube-apiserver:v1.15.3

批量打包master(含etcd)

docker save -o k8s-master-1.15.3.tar\
 k8s.gcr.io/kube-apiserver:v1.15.3\
 k8s.gcr.io/kube-controller-manager:v1.15.3\
 k8s.gcr.io/kube-scheduler:v1.15.3\
 k8s.gcr.io/kube-proxy:v1.15.3\
 k8s.gcr.io/pause:3.1\
 k8s.gcr.io/etcd:3.3.10\
 k8s.gcr.io/coredns:1.3.1

批量打包node

docker save -o k8s-node-1.15.3.tar\
 k8s.gcr.io/kube-proxy
 k8s.gcr.io/pause

加载初始化所需要的镜像

docker load -i k8s-master-1.15.3.tar
或
docker load -i kube-apiserver:v1.15.13
docker load -i kube-controller:v1.15.3
docker load -i kube-scheduler:v1.15.3
docker load -i kube-proxy:v1.15.3
docker load -i pause:3.3
docker load -i etcd:3.3.10
docker load -i coredns:1.3.1

然后使用kubeadm init进行初始化(略)

3) 使用配置文件进行初始化

获取配置文件

kubeadm config print init-defaults  > kubeadm-init-config.yaml

修改配置文件(检查以下部分)

...
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
...
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
...
kind: ClusterConfiguration
kubernetesVersion: v1.16.2
networking:
  dnsDomain: cluster.test
  serviceSubnet: 10.96.0.0/16
  podSubnet: 10.244.0.0/16
...
kind: KubeProxyConfiguration
imageRepository: gcr.k8s.io
kubeProxy:
  config:
    featureGates:
      SupportIPVSProxyMode: true
    mode: ipvs

使用命令进行初始化

kubeadm init -f kubeadm-init-config.yaml
4) 使用配置文件进行初始化(离线环境)

离线环境使用配置文件进行初始化与在线环境一样,只是还是要先加载初始化所需的镜像。

参考:

  • kubeadm-config.yaml配置语法参考: https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2

  • kubeadm-config.yaml配置主节点:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/control-plane-flags/

  • kube-proxy开启ipvs: https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/ipvs/README.md

  • kubelet的配置示例参考: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/kubelet-integration/#configure-kubelets-using-kubeadm

补充说明:

  1. kubeadm-config.yaml组成部署说明:

  • InitConfiguration: 用于定义一些初始化配置,如初始化使用的token以及apiserver地址等

  • ClusterConfiguration:用于定义apiserver、etcd、network、scheduler、controller-manager等master组件相关配置项

  • KubeletConfiguration:用于定义kubelet组件相关的配置项

  • KubeProxyConfiguration:用于定义kube-proxy组件相关的配置项

可以看到,在默认的kubeadm-config.yaml文件中只有InitConfiguration、ClusterConfiguration 两部分。我们可以通过如下操作生成另外两部分的示例文件:

# 生成KubeletConfiguration示例文件 
kubeadm config print init-defaults --component-configs KubeletConfiguration
# 生成KubeProxyConfiguration示例文件 
kubeadm config print init-defaults --component-configs KubeProxyConfiguration
  1. kubeadm初始化时kubernete认可的docker版本问题

[WARNING SystemVerification]: this docker version is not on the list of validated version: 19.01.1. Latest validated version: 18.06

以上版本根据自身环境的报告版本有所不同,可以参看kubernetes在git仓库中的changelog文件来确定支持的docker本版,然后根据命令

# yum list docker-ce.x86_64 --showduplicates | sort -r

获取版本列表,然后选取特定的版本进行安装

sudo yum -y install docker-ce-[VERSION]
  1. kubeadm初始化时kubelet没有设置自启动

[WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'

解决:执行自启动命令'systemctl enable kubelet.service'

  1. kubeadm初始化时没有禁用swap:

[ERROR Swap]: running with swap on is not enabled, please disable swap
[preflight] If you know what you are doing, you can make a check non-fatal with '--ignore-preflight-errors=...'

解决:可以在kubeadm的命令末尾加上参数'--ignore-preflight-errors=Swap'。

  1. 查看初始化后的kubeadm的配置

kubeadm config view
4) 初始化后续操作

接下来按照上述初始化结果的提示后续还需要为当前master节点的用户准备kubectl环境和安装网络

  1. 创建文件夹

$ mkdir -p ~/.kube
$ cp /etc/kubernetes/admin.conf ~/.kube/config
  1. 安装网络插件

语法:"kubectl apply -f [podnetwork].yaml"

此处我们使用的flannel(由coreos研发)。在github的页面上有具体的安装说明,地址https://github.com/coreos/flannel。

# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

如果是离线安装可以先下载打包flannel镜像及kube-flannel.yml文件,然后使用kubectl安装。具体如下:

下载flannel

docker pulll query.io/coreos/flannel

打包flannel并保存到本地

docker save query.io/coreos/flannel -o <your_save_path>/flannel:0.11.0-amd.tar

装载flannel镜像

docker load -i <your_save_path>/flannel:0.11.0-amd

下载kube-flannel.yml文件

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

安装flannel

kubectl apply -f kube-flannel.yml

而后可以使用命令"kubectl get pods -n kube-system"进行查看。

2.4.5 初始化计算节点

计算结点的初始化和主节点类似,执行相同的命令,在安装完kubeadm、kubelet、kubectl后,设置kubelet服务自启动"systemctl enable kubelet",然后执行主节点初始化后的的提示命令加入机群。

# kubeadm join 192.168.122.10:6443 --token i75tol.nbptvcjp8x8yx2lo \
    --discovery-token-ca-cert-hash sha256:eeb70912425f575b47d9b0a2830feb18b7d1ef2807bf454656b2903f04cc472c

加入的过程可能需要点时间,因为加入的节点需要从主节点中拉取所需要的镜像,所需组件如下:

  • kubeproxy

  • pause

  • 网络镜像(此处用的时flannel)

离线环境(没有私有库的情况下)需要自己手动加载上述三个镜像的tar包,命令:docker load -i <导出的tar包>(tar由docker save -o导出)。使用命令"docker image list"可以查看已有组件。

忘记加入命令或者token的情况
默认情况下生成加入集群的token有效时间为24小时,使用下面的命令可以查看现有的token

kubeadm token list

如果没有失效则生成现有token的SHA256的值,命令如下

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

然后使用kubeadm join 加入,举例如下:

kubeadm join 10.167.11.153:6443 --token o4avtg.65ji6b778nyacw68 --discovery-token-ca-cert-hash sha256:2cc3029123db737f234186636330e87b5510c173c669f513a9c0e0da395515b0

如果token失效则需要重新生成,命令如下:

kubeadm token create --print-join-command [--ttl 0]

“--ttl 0”可选项,表示token的有效时间,0表示永远有效。上述命令的结果即加入集群需要的命令。
注:
如果初始化有问题或者要回退使用下面的命令进行重置

# kubeadm reset

同时使用ip link delete删除相应的网路。

补充说明:
另外对于docker镜像的导入和导出还有docker export/import

  • docker export 导出容器为压缩文件,命令格式如下:

# docker export -o <path for generated tar file> <container name>

类似于docker save,指定要输出的文件路径和文件名,后面跟上要导出的容器的名称或者id。

  • docker import 把导出的文件系统导入为镜像,命令格式如下:

# docker import <tar file> <container name>
版权声明:本站部分文章内容、图片来源于网友推荐、互联网收集整理而来,仅供大家学习参考,不代表本站立场,如有侵权,请联系站长,我们会第一时间处理!本站原创内容未经允许不得转载,或转载时需注明出处:典名科技资讯门户

相关文章

  • 怎样弄linux查看进程的线程数?
    怎样弄linux查看进程的线程数?

      Linux系统的进程是由线程组成的,当然Linux进程下的线程数是不固定的,可以是一个进程,也可以是多个进程。下面就由和大家讲一讲linux查看进程。进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。一般来说,Li...

    2021-11-17 11:35:33
  • 云服务器的优势
    云服务器的优势

      基于云主机平台构建的一款新型云主机产品,其性能是云主机的性能,同时具备虚拟主机的全部功能。在主机控制面板上还具有服务器重启,CPU、内存、使用空间大小监控等功能。用户独享整个驰云服务器的软硬件资源,通过控制面板进行维护和管理,同时关闭远...

    2021-11-17 11:27:34
  • 微系统架构的特点
    微系统架构的特点

      微系统架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务...

    2021-11-17 11:20:34
  • 云建站有什么特点?
    云建站有什么特点?

      云建站是最近几年互联网领域兴起的全新的一种互联网基础应用模式,以前存放网站所有的服务器都是单击存在,各种服务之间没有明确的区分,来到云技术时代,随着虚拟化技术的进步,大规模集成式服务开始出现,由之前的单点式服务变为了集群式云服务,人们可...

    2021-11-17 11:13:35
  • 如何使用linux搭建vpn服务器?
    如何使用linux搭建vpn服务器?

      Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线...

    2021-11-17 11:09:36
  • 可靠云主机的优点和缺点
    可靠云主机的优点和缺点

      云主机是云计算在基础设施应用上的重要组成部分,位于云计算产业链金字塔底层,产品源自云计算平台。该平台整合了互联网应用三大核心要素:计算、存储、网络,面向用户提供公用化的互联网基础设施服务。云主机是一种类似VPS主机的虚拟化技术, VPS...

    2021-11-17 11:03:36
  • linux查看端口占用情况的步骤
    linux查看端口占用情况的步骤

      准备使用python写一个端口探测的小程序,以检测一些特定的服务端口有没有被占用,突然发现自己居然不知道在linux中如何查询端口被占用的情况,在项目的部署的时候,会遇到端口被占用的情况,需要我们先停下占用端口的进程,然后才能开启新的服...

    2021-11-17 11:01:36
  • tftp服务器软件特点有哪些?tftp服务器软件如何使用?
    tftp服务器软件特点有哪些?tftp服务器软件如何使用?

      tftp是一个传输文件的简单协议,而tftp服务器则可以用于IOS的升级和备份的工作,同时还可以用于文件的传输,现在有一种tftp服务器软件,很多朋友不知道它的情况,下面就来说说tftp服务器软件特点有哪些?tftp服务器软件如何使用。...

    2021-11-17 11:01:35
  • 传真服务器软件角色的步骤
    传真服务器软件角色的步骤

      Windows Server 2008 中的传真服务管理器提供了一个用于配置和管理传真资源的集中管理点。传真服务管理器是在服务器管理器中安装传真服务器角色时安装的。可以使用传真服务管理器为传入和传出传真流量配置传真设备、指定可以使用传真...

    2021-11-17 11:01:35
  • 什么服务器好用?选择服务器要注意什么问题?
    什么服务器好用?选择服务器要注意什么问题?

      什么服务器好用?选择服务器要注意什么问题?很多人在选择服务器产品时一味的看重内存大小,不关注品牌和售后服务问题,其实这个想法有失偏颇。建议大家在选择服务器时还要考虑到宽带以及机房等问题。   一、服务器是什么?   服务器是计算机的一种...

    2021-11-17 11:01:33
发表评论