华为云欧拉操作系统(OpenEuler)部署K8S集群

2023-05-16

华为云欧拉操作系统(OpenEuler)部署K8S集群

需要提前准备好OpenEular操作系统虚拟机3台,本文使用模板机创建。

一、主机硬件要求

1.1 主机操作系统说明

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

序号操作系统及版本备注
1openEuler-22.03-LTS-SP1下载链接:https://repo.openeuler.org/openEuler-22.03-LTS-SP1/ISO/x86_64/openEuler-22.03-LTS-SP1-x86_64-dvd.iso

1.2 主机硬件配置说明

需求CPU内存硬盘角色主机名
4C4G1TBmasterk8s-master01
4C4G1TBworker(node)k8s-worker01
4C4G1TBworker(node)k8s-worker02

二、主机准备

2.1 主机名配置

由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;其中2台为worker节点,名称分别为:k8s-worker01及k8s-worker02

master节点
# hostnamectl set-hostname k8s-master01
worker01节点
# hostnamectl set-hostname k8s-worker01
worker02节点
# hostnamectl set-hostname k8s-worker02

2.2 主机IP地址配置

k8s-master01节点IP地址为:192.168.10.160/24
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.10.160"
PREFIX="24"
GATEWAY="192.168.10.2"
DNS1="119.29.29.29"
k8s-worker1节点IP地址为:192.168.10.161/24
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.10.161"
PREFIX="24"
GATEWAY="192.168.10.2"
DNS1="119.29.29.29"
k8s-worker2节点IP地址为:192.168.10.162/24
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.10.162"
PREFIX="24"
GATEWAY="192.168.10.2"
DNS1="119.29.29.29"

2.3 主机名与IP地址解析

所有集群主机均需要进行配置。

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.160 k8s-master01
192.168.10.161 k8s-worker01
192.168.10.162 k8s-worker02

2.4 防火墙配置

所有主机均需要操作。

关闭现有防火墙firewalld
# systemctl disable firewalld
# systemctl stop firewalld
# firewall-cmd --state
not running

2.5 SELINUX配置

所有主机均需要操作。修改SELinux配置需要重启操作系统。

# sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2.6 时间同步配置

所有主机均需要操作。最小化安装系统需要安装ntpdate软件。

# crontab -l
0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com

2.7 配置内核转发及网桥过滤

所有主机均需要操作。

开启内核路由转发
# vim /etc/sysctl.conf
# cat /etc/sysctl.conf
......
net.ipv4.ip_forward=1
......
添加网桥过滤及内核转发配置文件
# cat /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness = 0
加载br_netfilter模块
# modprobe br_netfilter
查看是否加载
# lsmod | grep br_netfilter
br_netfilter           22256  0
bridge                151336  1 br_netfilter
使用默认配置文件生效
# sysctl -p 
使用新添加配置文件生效
# sysctl -p /etc/sysctl.d/k8s.conf

2.8 安装ipset及ipvsadm

所有主机均需要操作。

安装ipset及ipvsadm
# yum -y install ipset ipvsadm
配置ipvsadm模块加载方式
添加需要加载的模块
# 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
EOF
授权、运行、检查是否加载
# chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack

2.9 关闭SWAP分区

修改完成后需要重启操作系统,如不重启,可临时关闭,命令为swapoff -a

临时关闭
# swapoff -a
永远关闭swap分区,需要重启操作系统
# cat /etc/fstab
......

# /dev/mapper/openeuler-swap none                    swap    defaults        0 0

在上一行中行首添加#

三、容器运行时工具安装及运行

查看是否存在docker软件
# yum list | grep docker
pcp-pmda-docker.x86_64                                  5.3.7-2.oe2203sp1                                                                                                               @anaconda
docker-client-java.noarch                               8.11.7-2.oe2203sp1                                                                                                              everything
docker-client-java.src                                  8.11.7-2.oe2203sp1                                                                                                              source
docker-compose.noarch                                   1.22.0-4.oe2203sp1                                                                                                              everything
docker-compose.src                                      1.22.0-4.oe2203sp1                                                                                                              source
docker-engine.src                                       2:18.09.0-316.oe220                                                                                3sp1                         source
docker-engine.x86_64                                    2:18.09.0-316.oe220                                                                                3sp1                         OS
docker-engine.x86_64                                    2:18.09.0-316.oe220                                                                                3sp1                         everything
docker-engine-debuginfo.x86_64                          2:18.09.0-316.oe220                                                                                3sp1                         debuginfo
docker-engine-debugsource.x86_64                        2:18.09.0-316.oe220                                                                                3sp1                         debuginfo
docker-runc.src                                         1.1.3-9.oe2203sp1                                                                                                               update-source
docker-runc.x86_64                                      1.1.3-9.oe2203sp1                                                                                                               update
podman-docker.noarch                                    1:0.10.1-12.oe2203s                                                                                p1                           everything
python-docker.src                                       5.0.3-1.oe2203sp1                                                                                                               source
python-docker-help.noarch                               5.0.3-1.oe2203sp1                                                                                                               everything
python-docker-pycreds.src                               0.4.0-2.oe2203sp1                                                                                                               source
python-dockerpty.src                                    0.4.1-3.oe2203sp1                                                                                                               source
python-dockerpty-help.noarch                            0.4.1-3.oe2203sp1                                                                                                               everything
python3-docker.noarch                                   5.0.3-1.oe2203sp1                                                                                                               everything
python3-docker-pycreds.noarch                           0.4.0-2.oe2203sp1                                                                                                               everything
python3-dockerpty.noarch                                0.4.1-3.oe2203sp1                                                                                                               everything
安装docker
# dnf install docker

Last metadata expiration check: 0:53:18 ago on 2023年02月03日 星期五 11时30分19秒.
Dependencies resolved.
===========================================================================================================================================================
 Package                                Architecture                    Version                                          Repository                   Size
===========================================================================================================================================================
Installing:
 docker-engine                          x86_64                          2:18.09.0-316.oe2203sp1                          OS                           38 M
Installing dependencies:
 libcgroup                              x86_64                          0.42.2-3.oe2203sp1                               OS                           96 k

Transaction Summary
===========================================================================================================================================================
Install  2 Packages

Total download size: 39 M
Installed size: 160 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): libcgroup-0.42.2-3.oe2203sp1.x86_64.rpm                                                                             396 kB/s |  96 kB     00:00
(2/2): docker-engine-18.09.0-316.oe2203sp1.x86_64.rpm                                                                       10 MB/s |  38 MB     00:03
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                       10 MB/s |  39 MB     00:03
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                   1/1
  Running scriptlet: libcgroup-0.42.2-3.oe2203sp1.x86_64                                                                                               1/2
  Installing       : libcgroup-0.42.2-3.oe2203sp1.x86_64                                                                                               1/2
  Running scriptlet: libcgroup-0.42.2-3.oe2203sp1.x86_64                                                                                               1/2
  Installing       : docker-engine-2:18.09.0-316.oe2203sp1.x86_64                                                                                      2/2
  Running scriptlet: docker-engine-2:18.09.0-316.oe2203sp1.x86_64                                                                                      2/2
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

  Verifying        : docker-engine-2:18.09.0-316.oe2203sp1.x86_64                                                                                      1/2
  Verifying        : libcgroup-0.42.2-3.oe2203sp1.x86_64                                                                                               2/2

Installed:
  docker-engine-2:18.09.0-316.oe2203sp1.x86_64                                     libcgroup-0.42.2-3.oe2203sp1.x86_64

Complete!
设置docker开机启动并启动
# systemctl enable --now docker
查看docker版本
# docker version
Client:
 Version:           18.09.0
 EulerVersion:      18.09.0.316
 API version:       1.39
 Go version:        go1.17.3
 Git commit:        9b9af2f
 Built:             Tue Dec 27 14:25:30 2022
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.09.0
  EulerVersion:     18.09.0.316
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.17.3
  Git commit:       9b9af2f
  Built:            Tue Dec 27 14:24:56 2022
  OS/Arch:          linux/amd64
  Experimental:     false

四、K8S软件安装

安装k8s依赖,连接跟踪
# dnf install conntrack
k8s master节点安装
# dnf install -y kubernetes-kubeadm kubernetes-kubelet kubernetes-master
k8s worker节点安装
# dnf install -y kubernetes-kubeadm kubernetes-kubelet kubernetes-node
# systemctl enable kubelet

五、K8S集群初始化

[root@k8s-master01 ~]# kubeadm init --apiserver-advertise-address=192.168.10.160 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
输出:
[init] Using Kubernetes version: v1.20.2
[preflight] Running pre-flight checks
        [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
        [WARNING FileExisting-socat]: socat not found in system path
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
[certs] Using certificateDir folder "/etc/kubernetes/pki"
[certs] Generating "ca" certificate and key
[certs] Generating "apiserver" certificate and key
[certs] apiserver serving cert is signed for DNS names [k8s-master01 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.1.0.1 192.168.10.160]
[certs] Generating "apiserver-kubelet-client" certificate and key
[certs] Generating "front-proxy-ca" certificate and key
[certs] Generating "front-proxy-client" certificate and key
[certs] Generating "etcd/ca" certificate and key
[certs] Generating "etcd/server" certificate and key
[certs] etcd/server serving cert is signed for DNS names [k8s-master01 localhost] and IPs [192.168.10.160 127.0.0.1 ::1]
[certs] Generating "etcd/peer" certificate and key
[certs] etcd/peer serving cert is signed for DNS names [k8s-master01 localhost] and IPs [192.168.10.160 127.0.0.1 ::1]
[certs] Generating "etcd/healthcheck-client" certificate and key
[certs] Generating "apiserver-etcd-client" certificate and key
[certs] Generating "sa" key and public key
[kubeconfig] Using kubeconfig folder "/etc/kubernetes"
[kubeconfig] Writing "admin.conf" kubeconfig file
[kubeconfig] Writing "kubelet.conf" kubeconfig file
[kubeconfig] Writing "controller-manager.conf" kubeconfig file
[kubeconfig] Writing "scheduler.conf" kubeconfig file
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Starting the kubelet
[control-plane] Using manifest folder "/etc/kubernetes/manifests"
[control-plane] Creating static Pod manifest for "kube-apiserver"
[control-plane] Creating static Pod manifest for "kube-controller-manager"
[control-plane] Creating static Pod manifest for "kube-scheduler"
[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests"
[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[apiclient] All control plane components are healthy after 6.502722 seconds
[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[kubelet] Creating a ConfigMap "kubelet-config-1.20" in namespace kube-system with the configuration for the kubelets in the cluster
[upload-certs] Skipping phase. Please see --upload-certs
[mark-control-plane] Marking the node k8s-master01 as control-plane by adding the labels "node-role.kubernetes.io/master=''" and "node-role.kubernetes.io/control-plane='' (deprecated)"
[mark-control-plane] Marking the node k8s-master01 as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule]
[bootstrap-token] Using token: jvx2bb.pfd31288qyqcfsn7
[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to get nodes
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

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.10.160:6443 --token jvx2bb.pfd31288qyqcfsn7 \
    --discovery-token-ca-cert-hash sha256:740fa71f6c5acf156195ce6989cb49b7a64fd061b8bf56e4b1b684cbedafbd40
[root@k8s-master01 ~]# mkdir -p $HOME/.kube
[root@k8s-master01 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master01 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

六、K8S集群工作节点加入

[root@k8s-worker01 ~]# kubeadm join 192.168.10.160:6443 --token jvx2bb.pfd31288qyqcfsn7 \
    --discovery-token-ca-cert-hash sha256:740fa71f6c5acf156195ce6989cb49b7a64fd061b8bf56e4b1b684cbedafbd40
[root@k8s-worker02 ~]# kubeadm join 192.168.10.160:6443 --token jvx2bb.pfd31288qyqcfsn7 \
    --discovery-token-ca-cert-hash sha256:740fa71f6c5acf156195ce6989cb49b7a64fd061b8bf56e4b1b684cbedafbd40
[root@k8s-master01 ~]# kubectl get nodes
NAME           STATUS     ROLES                  AGE     VERSION
k8s-master01   NotReady   control-plane,master   3m59s   v1.20.2
k8s-worker01   NotReady   <none>                 18s     v1.20.2
k8s-worker02   NotReady   <none>                 10s     v1.20.2

七、K8S集群网络插件使用

[root@k8s-master01 ~]# wget https://docs.projectcalico.org/v3.19/manifests/calico.yaml
[root@k8s-master01 ~]# vim calico.yaml
以下两行默认没有开启,开始后修改第二行为kubeadm初始化使用指定的pod network即可。
3680             # The default IPv4 pool to create on startup if none exists. Pod IPs will be
3681             # chosen from this range. Changing this value after installation will have
3682             # no effect. This should fall within `--cluster-cidr`.
3683             - name: CALICO_IPV4POOL_CIDR
3684               value: "10.244.0.0/16"
3685             # Disable file logging so `kubectl logs` works.
3686             - name: CALICO_DISABLE_FILE_LOGGING
3687               value: "true"
[root@k8s-master01 ~]# kubectl create -f calico.yaml
configmap/calico-config created
customresourcedefinition.apiextensions.k8s.io/bgpconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/bgppeers.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/blockaffinities.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/clusterinformations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/felixconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalnetworkpolicies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalnetworksets.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/hostendpoints.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamblocks.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamconfigs.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamhandles.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ippools.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/kubecontrollersconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/networkpolicies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/networksets.crd.projectcalico.org created
clusterrole.rbac.authorization.k8s.io/calico-kube-controllers created
clusterrolebinding.rbac.authorization.k8s.io/calico-kube-controllers created
clusterrole.rbac.authorization.k8s.io/calico-node created
clusterrolebinding.rbac.authorization.k8s.io/calico-node created
daemonset.apps/calico-node created
serviceaccount/calico-node created
deployment.apps/calico-kube-controllers created
serviceaccount/calico-kube-controllers created
poddisruptionbudget.policy/calico-kube-controllers created
[root@k8s-master01 calicodir]# kubectl get pods -n kube-system
NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-848c5d445f-rq4h2   1/1     Running   0          10m
calico-node-kjrcb                          1/1     Running   0          10m
calico-node-ssx5m                          1/1     Running   0          10m
calico-node-v9fgt                          1/1     Running   0          10m
coredns-7f89b7bc75-9j4rw                   1/1     Running   0          166m
coredns-7f89b7bc75-srhxf                   1/1     Running   0          166m
etcd-k8s-master01                          1/1     Running   0          166m
kube-apiserver-k8s-master01                1/1     Running   0          166m
kube-controller-manager-k8s-master01       1/1     Running   0          166m
kube-proxy-4xhms                           1/1     Running   0          163m
kube-proxy-njg9s                           1/1     Running   0          166m
kube-proxy-xfb97                           1/1     Running   0          163m
kube-scheduler-k8s-master01                1/1     Running   0          166m

八、应用部署验证及访问验证

cat >  nginx.yaml  << "EOF"
---
apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx-web
spec:
  replicas: 2
  selector:
    name: nginx
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.19.6
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service-nodeport
spec:
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30001
      protocol: TCP
  type: NodePort
  selector:
    name: nginx
EOF
# kubectl create -f nginx.yaml
replicationcontroller/nginx-web created
service/nginx-service-nodeport created
# kubectl get pods
NAME              READY   STATUS    RESTARTS   AGE
nginx-web-7lkfz   1/1     Running   0          31m
nginx-web-n4tj5   1/1     Running   0          31m
# kubectl get svc
NAME                     TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
kubernetes               ClusterIP   10.1.0.1      <none>        443/TCP        30m
nginx-service-nodeport   NodePort    10.1.236.15   <none>        80:30001/TCP   10s
  • port: 80
    targetPort: 80
    nodePort: 30001
    protocol: TCP
    type: NodePort
    selector:
    name: nginx
    EOF



~~~powershell
# kubectl create -f nginx.yaml
replicationcontroller/nginx-web created
service/nginx-service-nodeport created
# kubectl get pods
NAME              READY   STATUS    RESTARTS   AGE
nginx-web-7lkfz   1/1     Running   0          31m
nginx-web-n4tj5   1/1     Running   0          31m
# kubectl get svc
NAME                     TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
kubernetes               ClusterIP   10.1.0.1      <none>        443/TCP        30m
nginx-service-nodeport   NodePort    10.1.236.15   <none>        80:30001/TCP   10s

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为云欧拉操作系统(OpenEuler)部署K8S集群 的相关文章

  • Python 拉取远程服务器资源到本地

    因为功能需要 需要从远端服务器拉取文件资源到本地 写了一个简单脚本 功能没有很复杂就不写相关解释了 span class token keyword import span paramiko span class token keyword
  • ros_openvino_toolkit环境搭建纪实

    文章目录 先决条件一 配置环境1 安装Open VINO 2020 3 194环境a 在Ubuntu系统上无sudo权限命令行安装OpenVINOb 验证安装成功c 安装MO 2 安装ROS环境a 换源b 添加ros latest list
  • python怎么限制输入0到100的范围,思路及方法

    python限制输入0到100的范围的思路 要用python设计一个程序 xff0c 不仅可以满足限制用户输入0到100的范围 xff0c 而不仅仅是提示 xff0c 而且当用户输入超出范围的值的时候 xff0c python程序会给出提示
  • linux上 防火墙查看,添加,关闭,开放端口等命令

    1 查看防火墙状态如下 xff1a 查看防火墙状态 systemctl status firewalld 开启防火墙 systemctl start firewalld 关闭防火墙 systemctl stop firewalld 开启防火
  • 使用Python自动给视频逐帧截图

    背景 数据集采集不单有图片格式 xff0c 也有视频格式 xff0c 有时我们需要根据采集来的视频生成图片 xff0c 再进行标注 所以这里我们使用Python自动给视频逐帧截图 注意 xff1a 由于摄像机录制的视频大多是XMF格式 xf
  • FTP文件服务器部署

    以下步骤以在Ubuntu系统中部署为例 1 安装vsftpd软件 在Linux系统中 xff0c 可以使用包管理器来安装vsftpd软件 sudo apt get install vsftpd 2 配置vsftpd软件 安装完vsftpd软
  • python扫描端口

    什么是端口扫描 定义 xff1a 对一段端口或指定的端口进行扫描 目的 xff1a 通过扫描结果可以知道一台计算机上都提供了哪些服务 xff0c 然后就可以通过所提供的这些服务的己知漏洞就可进行攻击 原理 xff1a 当一个主机向远端一个服
  • SWT/ANR问题-- OTA 升级 从Android P 到 Q 发生 watchdog

    问题描述 通过OTA从Android P升级到Android Q后 手机会出现反复重启 Logcat logs 06 10 12 38 58 496 4369 4369 I SystemServer StartUsageService 06
  • Webpack中使用ProvidePlugin插件全局引入jquery报错

    报错提示 xff1a error 39 39 is not defined no undef webpack config js设置 xff1a new Webpack ProvidePlugin 39 jquery 39 jQuery 3
  • Java 异常处理

    Java是一种面向对象的编程语言 xff0c Java程序在运行时可能会发生各种异常 xff0c 如空指针异常 文件读取异常 算术异常等 在Java中 xff0c 异常是指程序运行时可能会发生的错误 xff0c 例如输入不正确 内存不足等等
  • smb连接错误: 连接到服务器时出现问题。请检查服务器名称或IP地址,然后再试一次。如果问题持续发生,请联系系统管理员

    大家在用Ipad或者Iphone连接电脑的共享文件夹时如果出现 连接到服务器时出现问题 请检查服务器名称或IP地址 xff0c 然后再试一次 如果问题持续发生 xff0c 请联系系统管理员 解决办法 xff1a 关闭公用网络防火墙 Ps 如
  • Linux部署lamp(centos 7),照做就行

    大家好 xff0c 今天我们来分享一下Linux上部署lamp lamp指的是Linux 43 Apache 43 MySQL数据库 43 php几者相结合的web框架结构 虽然我在这之前 xff0c 就写过有关于这方面的博客 xff0c
  • C++ volatile关键字说明

    内容摘抄自https www jb51 net article 85852 htm xff0c 感谢原作者分享 volatile原意是 易变的 xff0c 但这种解释简直有点误导人 xff0c 应该解释为 直接存取原始内存地址 比较合适 易
  • Ubuntu安装VMware Tools工具

    1 启动VMware Workstation软件 xff0c 运行Ubuntu系统 xff0c 菜单栏 xff1a 虚拟机 gt 安装VMware Tools xff08 注 xff1a 不运行Ubuntu系统 xff0c 无法点击 安装V
  • mac安装报错Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules‘

    mac上使用npm安装报错Error EACCES permission denied access 39 usr local lib node modules 39 错误描述解决方案 错误描述 今天在mac上安装vue cli时报错 xf
  • 前端打印时背景图片失效

    前端打印时背景图片失效 xff08 已解决 xff09 一 问题描述二 解决方案总结 一 问题描述 今天在开发时使用了input type 61 checkbox 和 input type 61 34 radio 34 这两个标签 xff0
  • mac下查看本机IP地址

    mac下查看本机IP地址 方法一 xff1a ifconfig方法二 xff1a ifconfig grep 34 inet 34 方法一 xff1a ifconfig 首先打开终端 然后输入 ifconfig 方法二 xff1a ifco
  • Python读取gzip文件

    首先安装gzip包 xff0c 如下 xff1a pip install gzip 读取gzip文件 xff1a import gzip 导入gzip包 with gzip open 39 xxx gz 39 39 rb 39 as fil
  • SSM框架--Spring配置文件

    Spring配置文件 1 Bean标签的基本配置 用于配置对象交由Spring来创建 默认情况下它调动的是类中的无参构造函数 xff0c 如果没有无参构造函数则不能创建成功 基本属性 xff1a id xff1a 作用是唯一标识 xff0c
  • docker: Error: No such image: mysql

    今天操作docker的时候 xff0c docker提示 于是我又试了试 docker pull mysql 安装完毕之后还是一样的问题 xff0c 想着卸载镜像 xff0c 输入了 docker rmi mysql 于是我清空了docke

随机推荐

  • selenium自动化测试

    目录 第一节 xff1a selenium概述 第二节 xff1a 在PyCharm中使用selenium 第三节 xff1a 使用selenium自动控制浏览器 第四节 xff1a selenium在大数据的使用 第一节 xff1a se
  • 数据库二进制安装以及数据库破解密码

    数据库二进制安装 实验步骤一 xff1a 把需要的数据库包传到主机 实验步骤二 xff1a 安装依赖包 实验步骤三 xff1a 创建mysql用户并且验证 实验步骤四 xff1a 解压mysql软件包并且做软链接 实验步骤五 xff1a 修
  • SaltStack之salt-ssh

    salt ssh介绍 salt ssh可以让我们不需要在受控机上安装salt minion客户端也能够实现管理操作 salt ssh特点 1 远程系统需要Python支持 xff0c 除非使用 r选项发送原始ssh命令 2 salt ssh
  • TDD代码驱动测试基础

    测试驱动开发 TDD 知识调研 文章目录 测试驱动开发 TDD 知识调研TDD的核心目标处理遗留代码问题的核心法则如下 不良测试的死亡漩涡 xff08 亦称为 SCUMmy 周期 xff09 警惕撤回迈入死亡漩涡的步伐测试先行 FIRST原
  • SaltStack进阶

    masterless 应用场景 1 master 与 minion 网络不通或通信有延迟 xff0c 即网络不稳定 2 想在 minion 端直接执行状态 传统的 SaltStack 是需要通过 master 来执行状态控制 minion
  • docker容器技术基础入门

    容器介绍 xff08 container xff09 容器是一种基础工具 xff1b 泛指任何可以用于容纳其他物品的工具 xff0c 可以部分或完全封闭 xff0c 被用于容纳 储存 运输物品 xff1b 物体可以被放置在容器中 xff0c
  • docker基础用法

    什么是docker Docker 是一个开源的应用容器引擎 xff0c 让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中 xff0c 然后发布到任何流行的 Linux或Windows 机器上 xff0c 也可以实现虚拟化 容器是完全
  • docker容器虚拟化

    虚拟化网络 Network Namespace 是 Linux 内核提供的功能 xff0c 是实现网络虚拟化的重要功能 xff0c 它能创建多个隔离的网络空间 xff0c 它们有独自网络栈信息 不管是虚拟机还是容器 xff0c 运行的时候仿
  • docker容器网络

    docker容器网络 Docker在安装后自动提供3种网络 xff0c 可以使用docker network ls命令查看 root 64 localhost docker network ls NETWORK ID NAME DRIVER
  • docker容器网络配置

    Linux内核实现名称空间的创建 ip netns命令 可以借助ip netns命令来完成对 Network Namespace 的各种操作 ip netns命令来自于iproute安装包 xff0c 一般系统会默认安装 xff0c 如果没
  • docker存储卷

    cow机制 cow意思是写时复制 xff0c 在对页表进程读操作时 xff0c 不会产生异常 xff0c 对页表进程写操作时 xff0c 会触发page fault异常 xff0c 通常这种机制的产生是通过对页表设置read only 在l
  • Docker Private Registry(docker私有仓库)

    Docker Registry 网上有很多的Registry服务器都支持第三方用户注册 xff0c 而后基于用户名去做自己的仓库 xff0c 但是使用互联网上的Registry有一个缺陷 xff0c 那就是我们去推送和下载镜像时都不会很快
  • harbor

    harbor简介 无论是使用Docker distribution去自建仓库 xff0c 还是通过官方镜像跑容器的方式去自建仓库 xff0c 通过前面的演示我们可以发现其是非常的简陋的 xff0c 还不如直接使用官方的Docker Hub去
  • Ansible介绍与安装

    1 介绍Ansible 什么是ansible xff1f ansible是新出现的自动化运维工具 xff0c 基于Python开发 xff0c 集合了众多运维工具 xff08 puppet cfengine chef func fabric
  • 定时打印进程信息shell脚本

    定时打印进程信息脚本 span class token shebang important bin sh span span class token comment 输入参数 span span class token assign lef
  • 部署ansible

    部署ansible 1 构建ansible清单1 1定义清单1 2使用静态清单指定受管主机1 3验证清单1 4覆盖清单的位置1 5构建ansible清单1 6自定义清单文件 2 管理Ansible配置文件2 1配置Ansible2 2配置文
  • ansible常用模块

    ansible常用模块 1 ansible常用模块使用详解2 ansible常用模块之ping3 ansible常用模块之command4 ansible常用模块之raw5 ansible常用模块之shell6 ansible常用模块之sc
  • ansible之playbook

    playbook 1 实施playbook1 1Ansible Playbook与临时命令1 2格式化Ansible Playbook1 3运行playbook1 4提高输出的详细程度1 5语法验证1 6执行空运行 2 实施多个play2
  • LAMP-手动架构部署

    1 lamp简介 有了前面学习的知识的铺垫 xff0c 今天可以来学习下第一个常用的web架构了 所谓lamp xff0c 其实就是由Linux 43 Apache 43 Mysql MariaDB 43 Php Perl Python的一
  • 华为云欧拉操作系统(OpenEuler)部署K8S集群

    华为云欧拉操作系统 xff08 OpenEuler xff09 部署K8S集群 需要提前准备好OpenEular操作系统虚拟机3台 xff0c 本文使用模板机创建 一 主机硬件要求 1 1 主机操作系统说明 序号操作系统及版本备注1open