【云原生】Kubeadm部署k8s

目录

一、部署步骤

二、部署kubernetes

[2.1、所有节点关闭防火墙 核心防护 iptables规则 swap交换](#2.1、所有节点关闭防火墙 核心防护 iptables规则 swap交换)

2.2、修改主机名并添加主机映射

2.3、调整内核参数

三、安装Docker

3.1、所有节点安装docker

3.2、所有接点添加镜像加速器

3.3、开启docker、并设置开机自启、查看状态

四、安装kubeadm,kubelet和kubectl

4.1、定义kubernetes源

4.2、安装kubeadm,kubelet和kubectl

4.3、开机自启kubelet

五、部署K8S集群

5.1、查看初始化需要的镜像

5.2、初始化kubeadm

5.3、设定kubectl

5.4、所有节点部署网络插件

[5.5、在 node 节点上执行 kubeadm join 命令加入群集并查看状态](#5.5、在 node 节点上执行 kubeadm join 命令加入群集并查看状态)

5.6、测试pod创建资源

5.7、暴露端口提供服务

5.8、测试访问

5.9、扩展3个副本

[六、部署 Dashboard](#六、部署 Dashboard)

[6.1、上传 相关yaml 文件到 /opt/k8s 目录中](#6.1、上传 相关yaml 文件到 /opt/k8s 目录中)

[6.2、创建service account并绑定默认cluster-admin管理员集群角色](#6.2、创建service account并绑定默认cluster-admin管理员集群角色)

七、安装Harbor私有仓库

7.1、修改主机名,添加主机名和ip的映射

7.2、安装Docker20版本

[7.2.1 添加镜像加速器](#7.2.1 添加镜像加速器)

[7.2.2 开启docker并设为开机自启](#7.2.2 开启docker并设为开机自启)

7.3、安装harbor

[7.3.1 准备docker-compose安装包](#7.3.1 准备docker-compose安装包)

[7.3.2 准备harbor私有仓库的安装包](#7.3.2 准备harbor私有仓库的安装包)

[7.3.3 生成证书、私钥](#7.3.3 生成证书、私钥)

[7.3.4 启动Harbor](#7.3.4 启动Harbor)

[7.3.5 浏览器访问](#7.3.5 浏览器访问)

[7.3.6 在一个node节点上登录harbor](#7.3.6 在一个node节点上登录harbor)

[7.3.7 登录Harbar上传镜像](#7.3.7 登录Harbar上传镜像)

7.4、安装ipvsadm

[7.4.1 修改调度策略,再去访问](#7.4.1 修改调度策略,再去访问)

7.5、浏览器访问

7.6、内核参数优化方案


一、部署步骤

  1. 在所有节点上安装Docker和kubeadm
  2. 部署Kubernetes Master
  3. 部署容器网络插件
  4. 部署 Kubernetes Node,将节点加入Kubernetes集群中
  5. 部署 Dashboard Web 页面,可视化查看Kubernetes资源
  6. 部署 Harbor 私有仓库,存放镜像资源

二、部署kubernetes

实验环境

服务器 IP地址 主要组件
master 192.168.10.100 docker / kubeadm / kubelet / kubectl / flannel
node01 192.168.10.101 docker/kubeadm/kubelet/kubectl/flannel
node02 192.168.10.102 docker/kubeadm/kubelet/kubectl/flanne
harbor 192.168.10.103 docker、docker-compose、harbor-offline-v1.2.2

2.1、所有节点关闭防火墙 核心防护 iptables规则 swap交换

以下图片只展示一个,过程都一样

css 复制代码
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
swapoff -a      ##交换分区必须要关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab      ##永久关闭swap分区,&符号在sed命令中代表上次匹配的结果
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done   ##加载模块

2.2、修改主机名并添加主机映射

css 复制代码
hostnamectl set-hostname master01
bash
hostnamectl set-hostname node01
bash
hostnamectl set-hostname node02
bash

echo "192.168.10.100 master01" >> /etc/hosts
echo "192.168.10.101 node01" >> /etc/hosts
echo "192.168.10.102 node02" >> /etc/hosts
echo "192.168.10.103 hub.hg.com" >> /etc/hosts
cat /etc/hosts

2.3、调整内核参数

css 复制代码
cat > /etc/sysctl.d/kubernetes.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF

//生效参数
sysctl --system 

三、安装Docker

3.1、所有节点安装docker

css 复制代码
[root@master01 ~]#yum install -y yum-utils device-mapper-persistent-data lvm2 
[root@master01 ~]#yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
[root@master01 ~]#yum install -y docker-ce docker-ce-cli containerd.io
[root@master01 ~]#mkdir /etc/docker/
[root@master01 ~]#cat > /etc/docker/daemon.json <<EOF
 {
   "registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],
   "exec-opts": ["native.cgroupdriver=systemd"],
   "log-driver": "json-file",
   "log-opts": {
     "max-size": "100m"
   }
 }
EOF
[root@master01 ~]#systemctl daemon-reload 
[root@master01 ~]#systemctl restart docker.service 
[root@master01 ~]#systemctl enable docker.service 

3.2、所有接点添加镜像加速器

css 复制代码
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}
EOF
#使用Systemd管理的Cgroup来进行资源控制与管理,因为相对Cgroupfs而言,Systemd限制CPU、内存等资源更加简单和成熟稳定。
#日志使用json-file格式类型存储,大小为100M,保存在/var/log/containers目录下,方便ELK等日志系统收集和管理日志。

3.3、开启docker、并设置开机自启、查看状态

css 复制代码
systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service
systemctl status docker.service

docker info | grep "Cgroup Driver"
Cgroup Driver: systemd    ##结果

四、安装kubeadm,kubelet和kubectl

所有节点安装

4.1、定义kubernetes源

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

4.2、安装kubeadm,kubelet和kubectl

css 复制代码
yum install -y kubelet-1.20.11 kubeadm-1.20.11 kubectl-1.20.11

4.3、开机自启kubelet

css 复制代码
systemctl enable kubelet.service

五、部署K8S集群

5.1、查看初始化需要的镜像

css 复制代码
[root@master01 ~]#kubeadm config images list
[root@master01 opt]#unzip v1.20.11.zip -d /opt/k8s/
[root@master01 opt]#cd /opt/k8s/v1.20.11/
[root@master01 v1.20.11]#for i in $(ls *.tar); do docker load -i $i; done
#复制镜像和脚本到 node 节点,并在 node 节点上执行脚本加载镜像文件
[root@master01 v1.20.11]#scp -r /opt/k8s/ root@192.168.10.132:/opt/
[root@master01 v1.20.11]#scp -r /opt/k8s/ root@192.168.10.133:/opt/
[root@node01 v1.20.11]# for i in $(ls *.tar); do docker load -i $i; done
[root@node02 v1.20.11]# for i in $(ls *.tar); do docker load -i $i; done

5.2、初始化kubeadm

css 复制代码
kubeadm config print init-defaults > /opt/kubeadm-config.yaml

vim kubeadm-config.yaml

advertiseAddress: 192.168.10.100               ## 12行
kubernetesVersion: v1.20.11                    ## 34行
podSubnet: 10.244.0.0/16                       ## 37行
serviceSubnet: 10.96.0.0/16                    ## 38行
---                                            ## 40行
apiVersion: kubeproxy.config.k8s.io/v1alpha1   ## 41行
kind: KubeProxyConfiguration                   ## 42行
mode: ipvs                                     ## 43行


kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.log
#--experimental-upload-certs 参数可以在后续执行加入节点时自动分发证书文件,K8S V1.16版本开始替换为 --upload-certs
#tee kubeadm-init.log 用以输出日志  
//查看 kubeadm-init 日志
less kubeadm-init.log

//kubernetes配置文件目录
ls /etc/kubernetes/

//存放ca等证书和密码的目录
ls /etc/kubernetes/pki

5.3、设定kubectl

kubectl需经由API server认证及授权后方能执行相应的管理操作,kubeadm 部署的集群为其生成了一个具有管理员权限的认证配置文件 /etc/kubernetes/admin.conf,它可由 kubectl 通过默认的 "$HOME/.kube/config" 的路径进行加载。

css 复制代码
[root@master01 opt]#mkdir -p $HOME/.kube
[root@master01 opt]#cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master01 opt]#chown $(id -u):$(id -g) $HOME/.kube/config
[root@master01 opt]#kubectl get node
[root@master01 opt]#kubectl get cs
#如果 kubectl get cs 发现集群不健康,更改以下两个文件
[root@master01 opt]#vim /etc/kubernetes/manifests/kube-scheduler.yaml 
[root@master01 opt]#vim /etc/kubernetes/manifests/kube-controller-manager.yaml 
把httpGet:字段下的hosts由127.0.0.1变成192.168.10.100(有两处)
#- --port=0					# 搜索port=0,把这一行注释掉
host: 192.168.10.100        ##修改地址
[root@master01 opt]#systemctl restart kubelet.service 
[root@master01 opt]#kubectl get cs
[root@master01 opt]#kubectl get node

css 复制代码
[root@master01 opt]#vim /etc/kubernetes/manifests/kube-scheduler.yaml

 - --bind-address=192.168.10.100     ## 第16行
#    - --port=0                      ## 第19行
host: 192.168.10.100                 ## 第25行
host: 192.168.10.100                 ## 第39行
css 复制代码
[root@master01 opt]#vim /etc/kubernetes/manifests/kube-scheduler.yaml

 - --bind-address=192.168.10.100     ## 第17行
#    - --port=0                      ## 第26行
host: 192.168.10.100                 ## 第37行
host: 192.168.10.100                 ## 第51行

5.4、所有节点部署网络插件

css 复制代码
cd /opt
unzip kuadmin.zip     ##上传所需要的压缩包
解压
unzip kuadmin.zip
scp flannel-cni-v1.2.0.tar flannel-v0.22.2.tar node01:/opt/   ##拷贝到node01
scp flannel-cni-v1.2.0.tar flannel-v0.22.2.tar node01:/opt/   ##拷贝到node02

css 复制代码
[root@master01 opt]#docker load -i flannel-cni-v1.2.0.tar
[root@master01 opt]#docker load -i flannel-v0.22.2.tar
[root@master01 opt]#docker images

css 复制代码
[root@master01 opt]#kubectl apply -f kube-flannel.yml
[root@master01 opt]#kubectl get node

5.5、在 node 节点上执行 kubeadm join 命令加入群集并查看状态

将node节点加进来,

css 复制代码
[root@master01 opt]#ls
[root@master01 opt]#cat kubeadm-init.log

##node01和node02上面添加
kubeadm join 192.168.10.100:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:3800375b6db6fe668a7812e883ff1dc7ecc405c5ead58d289a6f015b594d1205

##master01查看
[root@master01 opt]#kubectl get node
[root@master01 opt]#kubectl get cs
[root@master01 opt]#kubectl get pods -n kube-system
[root@master01 opt]#kubectl get pod -n kube-flannel
[root@master01 opt]#kubectl get pod -n kube-flannel -owide

由于机器的原因,换了三台,和之前位置相似

5.6、测试pod创建资源

css 复制代码
kubectl create deployment nginx --image=nginx   ##拉取nginx
[root@master01 opt]#kubectl get pod             ##看是否拉取到
[root@master01 opt]#kubectl get pod -owide      ##查看详细信息

[root@master01 opt]#curl 10.244.2.2             ##只能对内访问,不能访问

5.7、暴露端口提供服务

css 复制代码
[root@master01 opt]#kubectl expose deployment nginx --port=80 --type=NodePort
[root@master01 opt]#kubectl get svc

5.8、测试访问

css 复制代码
192.168.10.103:31606
192.168.10.104:31606

5.9、扩展3个副本

css 复制代码
[root@master01 opt]#kubectl scale deployment nginx --replicas=3
[root@master01 opt]#kubectl get pods -o wide

六、部署 Dashboard

6.1、上传 相关yaml 文件到 /opt/k8s 目录中

在 master01 节点上操作

css 复制代码
在 master01 节点上操作
#上传 recommended.yaml 文件到 /opt/k8s 目录中
cd /opt/k8s
vim recommended.yaml
#默认Dashboard只能集群内部访问,修改Service为NodePort类型,暴露到外部:
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001     #添加
  type: NodePort          #添加
  selector:
    k8s-app: kubernetes-dashboard

##上传dashboard.tar metrics-scraper.tar到/opt目录下

##远程从master拷贝到node节点的/opt下
[root@master01 opt]#scp dashboard.tar metrics-scraper.tar node01:/opt/
	
##master节点执行下面语句
kubectl apply -f recommended.yaml
 
 
#使用输出的token登录Dashboard
https://NodeIP:30001

6.2、创建service account并绑定默认cluster-admin管理员集群角色

css 复制代码
#创建service account并绑定默认cluster-admin管理员集群角色
kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

6.3、登录Dashboard

#使用输出的token登录Dashboard

https://NodeIP:30001

无论哪个node的IP地址、因为服务都是运行在node上的

css 复制代码
https://192.168.10.104:30001

七、安装Harbor私有仓库

7.1、修改主机名,添加主机名和ip的映射

css 复制代码
#修改主机名
hostnamectl set-hostname hub.hg.com
 
#所有节点加上主机名映射
echo "192.168.10.103 master01" >> /etc/hosts
echo "192.168.10.104 node01" >> /etc/hosts
echo "192.168.10.105 node02" >> /etc/hosts
echo "192.168.10.106 hub.hg.com" >> /etc/hosts
cat /etc/hosts

7.2、安装Docker20版本

css 复制代码
yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install -y docker-ce-20.10.18 docker-ce-cli-20.10.18 containerd.io

mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "insecure-registries": ["https://hub.hg.com"]
}
EOF

systemctl start docker
systemctl enable docker

7.2.1 添加镜像加速器

所有节点都需要修改

css 复制代码
vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "insecure-registries": ["https://hub.hg.com"]
}

7.2.2 开启docker并设为开机自启

css 复制代码
##首先加载一下,因为前面把每个节点都配置了镜像加速器
systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service
systemctl status docker.service
##此处就显示一个界面,其他节点的不展示了

7.3、安装harbor

7.3.1 准备docker-compose安装包

css 复制代码
[root@hub ~]#cd /usr/local/bin/       
##上传docker-compose         ##直接将docker-compose上传到/usr/local/bin/ 
docker-compose
[root@hub bin]#chmod +x docker-compose     ##添加执行权限

7.3.2 准备harbor私有仓库的安装包

css 复制代码
官网下载地址:http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
css 复制代码
##首先进入/opt,然后将下载好的harbor压缩包上传到/opt
##进行解压
[root@hub opt]#tar xf harbor-offline-installer-v1.2.2.tgz
##将harbor配置文件进行备份
[root@hub harbor]#cp harbor.cfg{,.bak}
##对harbor.cfg配置文件进行修改
[root@hub harbor]#vim harbor.cfg
hostname = reg.hg.com                  ##第5行
ui_url_protocol = https                ##第9行
db_password = root123                  ##第12行
ssl_cert_key = /data/cert/server.key   ##第25行
harbor_admin_password = Harbor12345    ##第59行

7.3.3 生成证书、私钥

生成证书

css 复制代码
make -p /data/cert
cd /data/cert

#生成私钥

css 复制代码
openssl genrsa -des3 -out server.key 2048
##密码:123456
-------------------------------------------------------------------------------------------
openssl          #这是一个强大的加密库和工具集,用于处理SSL/TLS协议和相关的加密操作。
genrsa           #openssl的子命令,用于生成 RSA 私钥。
-des3           #openssl 使用 DES3算法来加密生成的私钥。
-out server.key  #这个选项指定了输出文件的名称,即生成的私钥将被保存在名为server.key的文件中。
2048             #这个数字指定了RSA密钥的长度(以位为单位)。

#生成证书签名请求文件

css 复制代码
openssl req -new -key server.key -out server.csr
=========================================================================================
req #用于处理与证书签名请求(CSR)和私钥相关的任务。
-new #这个选项指示OpenSSL创建一个新的证书签名请求。
-key server.key #指定用于生成CSR的私钥文件的路径
-out server.csr #指定生成的CSR文件的输出路径。
=========================================================================================
-----------------------------------------------------------------------------------------
输入私钥密码:123456
输入国家名:CN
输入省名:BJ
输入市名:BJ
输入组织名:HG
输入机构名:HG
输入域名:hub.hg.com
输入管理员邮箱:admin@hg.com
其它全部直接回车
-----------------------------------------------------------------------------------------
#备份私钥
cp server.key server.key.org
 
#清除私钥密码
openssl rsa -in server.key.org -out server.key
输入私钥密码:123456
 
#签名证书
openssl x509 -req -days 1000 -in server.csr -signkey server.key -out server.crt
 
chmod +x /data/cert/*
 
cd /opt/harbor/
./install.sh

备份私钥

css 复制代码
cp server.key server.key.org

清除私钥密码

css 复制代码
openssl rsa -in server.key.org -out server.key

签名证书

css 复制代码
openssl x509 -req -days 1000 -in server.csr -signkey server.key -out server.crt
===========================================================================================
openssl x509          #这是OpenSSL的一个子命令,用于处理X.509证书。
-req                  #指示OpenSSL从一个CSR文件中读取请求信息。
-days 1000            #设置证书的有效期为1000天。这意味着证书将在 1000 天后过期。
-in server.csr        #指定CSR文件的输入路径
-signkey server.key   #使用指定的私钥(server.key)对CSR进行签名,生成证书。
-out server.crt       #指定输出的证书文件路径。在这个例子中,证书文件将被保存为server.crt
===========================================================================================

chmod +x /data/cert/*

7.3.4 启动Harbor

css 复制代码
[root@hub cert]#cd  /opt/harbor/
[root@hub harbor]#./install.sh 
#执行命令 ./install.sh 以 pull 镜像并启动容器
 
#运行./install.sh时,这个脚本会执行一系列的步骤来配置和启动Harbor服务。这些步骤可能包括:
#检查和准备安装环境(如检查必要的依赖项、配置文件等)。
#生成或验证 Harbor 的配置文件(通常是 harbor.yml)。
#创建必要的数据目录和文件。
#初始化数据库(如果使用了数据库存储)。
#启动 Harbor 的各个组件(如 core、registry、portal、jobservice 等)

7.3.5 浏览器访问

css 复制代码
添加主机映射
在本地使用火狐浏览器访问:https://hub.hg.com
点击高级--->添加例外---->确认安全例外
 
用户密码登录,默认为:
 
用户名:admin
密码:Harbor12345

7.3.6 在一个node节点上登录harbor

css 复制代码
docker login -u admin -p Harbor12345 https://hub.hg.com

7.3.7 登录Harbar上传镜像

在node01节点操作

css 复制代码
​##上传镜像
docker tag nginx:latest hub.hg.com/library/nginx:v1
docker push hub.hg.com/library/nginx:v1

在master节点上删除之前创建的nginx资源

css 复制代码
kubectl delete deployment nginx
kubectl create deployment nginx-deployment --image=hub.hg.com/library/nginx:v1 --port=80 --replicas=3
kubectl expose deployment nginx-deployment --port=30000 --target-port=80
kubectl get svc,pods
kubectl get svc,pods -owide

访问验证

css 复制代码
curl 10.244.1.7

7.4、安装ipvsadm

css 复制代码
[root@master01 k8s]#yum -y install ipvsadm.x86_64
[root@master01 k8s]#ipvsadm -Ln
[root@master01 k8s]#curl 10.96.30.170:30000

7.4.1 修改调度策略,再去访问

css 复制代码
kubectl edit svc nginx-deployment
25   type: NodePort                        #把调度策略改成NodePort
 
[root@master01 k8s]#kubectl get svc
NAME               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)           AGE
kubernetes         ClusterIP   10.96.0.1       <none>        443/TCP           2d3h
nginx              NodePort    10.96.169.156   <none>        80:31606/TCP      2d3h
nginx-deployment   NodePort    10.96.30.170    <none>        30000:31973/TCP   10h
[root@master01 k8s]#

7.5、浏览器访问

css 复制代码
浏览器访问:
 
http://192.168.10.103:31973/
http://192.168.10.104:31973/
http://192.168.10.105:31973/
css 复制代码
#将cluster-admin角色权限授予用户system:anonymous
kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous

7.6、内核参数优化方案

css 复制代码
cat > /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0									#禁止使用 swap 空间,只有当系统内存不足(OOM)时才允许使用它
vm.overcommit_memory=1							#不检查物理内存是否够用
vm.panic_on_oom=0								#开启 OOM
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963							#指定最大文件句柄数
fs.nr_open=52706963								#仅4.4以上版本支持
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF
相关推荐
NiNg_1_23424 分钟前
使用Docker Compose一键部署
运维·docker·容器
FLGB26 分钟前
Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比
大数据·flink·kubernetes
萠哥啥都行29 分钟前
Linux安装Docker以及Docker入门操作
运维·docker·容器
汀、人工智能1 小时前
修改Docker默认存储路径,解决系统盘占用90%+问题(修改docker root dir)
docker·容器
吃面不喝汤662 小时前
如何配置和使用自己的私有 Docker Registry
运维·docker·容器
Leighteen2 小时前
Docker常用命令
docker·容器
codelife3212 小时前
在Docker容器中执行命令
容器
petaexpress3 小时前
常用的k8s容器网络模式有哪些?
网络·容器·kubernetes
华为云开源3 小时前
openGemini 社区人才培养计划:助力成长,培养新一代云原生数据库人才
数据库·云原生·开源
m0_741768859 小时前
使用docker的小例子
运维·docker·容器