k8s搭建遇到的问题

#查看本地镜像
docker images
#查看本地容器
docker ps -a
#通过本地镜像运行一个容器
docker run --name 容器名  -idt 镜像名
#运行一个已经存在的容器
docker start 容器ID
#停止一个真正运行的容器
docker stop  容器ID
#删除一个停止运行的容器
docker rm 容器ID
#删除一个本地镜像
docker rmi 镜像名
#搜索docker仓库,寻找某一镜像
docker search 镜像名
#拉取某一镜像
docker pull 镜像名
#进入某一运行的容器
docker exec -it 容器名 /bin/bash
#退出某一运行的容器
exit
#将某一容器打包成镜像
docker commit -m="描述信息" -a="作者" 容器ID  目标镜像名


#容器内部的操作指令和linux指令是一样的。
#拉取一个干净的基础镜像
#docker pull centos或者docker pull ubuntu

#运行一个容器
#docker run --name 容器名  -idt 镜像名 

#进入容器
#docker exec -it 容器名 /bin/bash 

#在容器中配置环境,修改程序。

#退出容器
#exit 

#打包成镜像
#docker commit -m="描述信息" -a="作者" 容器ID 目标镜像名    

守护进程重启 systemctl daemon-reload
#GPU解决的问题
密集型数据处理和大型并行数据计算(通过并行提高吞吐量) 
#GPU厂家
intel、nvidia、amd等
#GPU与CPU区别
GPU有更多的计算单元ALU,擅长并发计算。
#cuDNN
cuDNN是nvidia打造的神经网络运算加速库

#CUDA加速技术
CUDA是由nvidia推出的并行计算架构,用来管理计算单元ALU。
CUDA只能够在nvidia的GPU硬件上运行。

#不同版本CUDA对应的nvidia驱动版本
CUDA驱动程序向后兼容,特定版本CUDA编译的应用程序在后续(更高版本)的驱动程序中工作。

#不同平台(platform)的CUDA
CUDA根据操作系统、硬件架构、发行版本来发布CUDA库,不支持跨平台。

#OpenCL加速技术
OpenCL是一个跨平台的并行计算架构,适用于异构系统上的通用计算。
异构平台可由CPU、GPU、DSP、FPGA或其他类型的处理器搭建。

Warning:detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd".

执行kubeadm init集群初始化时遇到:
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd".
[警告IsDockerSystemdCheck]:检测到“cgroupfs”作为Docker cgroup驱动程序。 推荐的驱动程序是“systemd”。

所以我们更换一下驱动。
解决方法:修改docker
由于Ubuntu默认没有设置root,所以设置一下root用户
sudo passwd root

输入密码后,切换root用户:su root
在/etc/docker下创建daemon.json并编辑:
mkdir /etc/docker/daemon.json

加入以下内容:
{
    
    
 "exec-opts":["native.cgroupdriver=systemd"]
}

重启docker
systemctl restart docker
systemctl status docker
守护进程重启 systemctl daemon-reload

docker  daemon.json的作用

背景
docker安装后默认没有daemon.json这个配置文件,需要进行手动创建。配置文件的默认路径:/etc/docker/daemon.json
一般情况,配置文件 daemon.json中配置的项目参数,在启动参数中同样适用,有些可能不一样(具体可以查看官方文档),但需要注意的一点,配置文件中如果已经有某个配置项,则无法在启动参数中增加,会出现冲突的错误。
如果在daemon.json文件中进行配置,需要docker版本高于1.12.6(在这个版本上不生效,1.13.1以上是生效的)
参数 
daemon.json文件可配置的参数表,我们在配置的过程中,只需要设置我们需要的参数即可,不必全部写出来。详细参考官网。
官方的配置地址:https://docs.docker.com/engine/reference/commandline/dockerd/#/configuration-reloading。
官方的配置地址:https://docs.docker.com/engine/reference/commandline/dockerd/#options
官方的配置地址:https://docs.docker.com/engine/reference/commandline/dockerd/#/linux-configuration-file

 {
    
    
 "api-cors-header":"", 
 "authorization-plugins":[],
 "bip": "",
 "bridge":"",
 "cgroup-parent":"",
 "cluster-store":"",
 "cluster-store-opts":{
    
    },
 "cluster-advertise":"",
 "debug": true,                     #启用debug的模式,启用后,可以看到很多的启动信息。默认false
 "default-gateway":"",
 "default-gateway-v6":"",
 "default-runtime":"runc",
 "default-ulimits":{
    
    },
 "disable-legacy-registry":false,
 "dns": ["192.168.1.1"],             # 设定容器DNS的地址,在容器的 /etc/resolv.conf文件中可查看。
 "dns-opts": [],                     #  容器 /etc/resolv.conf 文件,其他设置
 "dns-search": [],               # 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的 主机时,DNS不仅搜索host,还会搜                             
                                  索host.example.com 。 注意:如果不设置, Docker 会默认用主机上的 /etc/resolv.conf 来配置容器。

"exec-opts": [],
 "exec-root":"",
 "fixed-cidr":"",
 "fixed-cidr-v6":"",
 "graph":"/var/lib/docker",              #已废弃,使用data-root代替,这个主要看docker的版本
 "data-root":"/var/lib/docker",          #Docker运行时使用的根路径,根路径下的内容稍后介绍,默认/var/lib/docker
 "group": "",                            #Unix套接字的属组,仅指/var/run/docker.sock
 "hosts": [],                           #设置容器hosts
 "icc": false,
 "insecure-registries": [],       #配置docker的私库地址
 "ip":"0.0.0.0",
 "iptables": false,
 "ipv6": false,
 "ip-forward": false,          #默认true, 启用 net.ipv4.ip_forward ,进入容器后使用 sysctl -a | grepnet.ipv4.ip_forward 查看

  "ip-masq":false,
 "labels":["nodeName=node-121"],   # docker主机的标签,很实用的功能,例如定义:–label nodeName=host-121

 "live-restore": true,
 "log-driver":"",
 "log-level":"",
 "log-opts": {
    
    },
 "max-concurrent-downloads":3,
 "max-concurrent-uploads":5,
 "mtu": 0,
 "oom-score-adjust":-500,
 "pidfile": "",                    #Docker守护进程的PID文件
 "raw-logs": false,
 "registry-mirrors":["xxxx"],      #镜像加速的地址,增加后在 docker info中可查看。
 "runtimes": {
    
    
 "runc": {
    
    
 "path": "runc"
 },
 "custom": {
    
    
 "path":"/usr/local/bin/my-runc-replacement",
 "runtimeArgs": [
 "--debug"
 ]
 }
 },
 "selinux-enabled": false, #默认 false,启用selinux支持

 "storage-driver":"",
 "storage-opts": [],
 "swarm-default-advertise-addr":"",
 "tls": true,                      #默认 false, 启动TLS认证开关
 "tlscacert": "",                  #默认 ~/.docker/ca.pem,通过CA认证过的的certificate文件路径
 "tlscert": "",                    #默认 ~/.docker/cert.pem ,TLS的certificate文件路径
 "tlskey": "",                     #默认~/.docker/key.pem,TLS的key文件路径
 "tlsverify": true,                #默认false,使用TLS并做后台进程与客户端通讯的验证
 "userland-proxy":false,
 "userns-remap":""
 }

上述是官网docs提供的一个示例配置,我们可以参考,选择性的配置其中的部分内容。

示例 
1、如何配置 registry 私库相关的参数
涉及以下2个参数:
   "insecure-registries": [],  #这个私库的服务地址
   "registry-mirrors": [],    #私库加速器
2.配置示例:
# cat /etc/docker/daemon.json
{
    
    
    "registry-mirrors": [
       "https://d8b3zdiw.mirror.aliyuncs.com"
    ],
    "insecure-registries": [
       "https://ower.site.com"
    ]
}

配置与应用
1.默认没有文件,所以我们需要先创建,进入/etc/docker目录下,记得创建的文件所有者是root(vim或touch,记得chown修改所有者)
-rw-r--r--  1 root root   71 Dec 19 17:25daemon.json

2.在文档中配置想要添加的参数:如,镜像加速器网站,私库网站
# cat /etc/docker/daemon.json
{
    
    
   "registry-mirrors":[
        "https://d8b3zdiw.mirror.aliyuncs.com"
    ],
    "insecure-registries": [
       "https://ower.site.com"
    ]}

3.创建并修改完daemon.json文件后,需要让这个文件生效

a.修改完成后reload配置文件
sudo systemctl daemon-reload
b.重启docker服务
sudo systemctl restartdocker.service
c.查看状态
sudo systemctl status docker -l
d.查看服务
sudo docker info

总结
当我们需要对docker服务进行调整配置时,不用去修改主文件 docker.service的参数,通过daemon.json配置文件来管理,更为安全、合理。对于

Docker的配置文件 daemon.json 详解

配置文件的默认路径:/etc/docker/daemon.json
常用参数选项:

{
    
    
  "registry-mirrors": ["http://harbor.test.com"], #镜像加速地址
  "insecure-registries": ["harbor.test.com","registry.cn-shenzhen.aliyuncs.com"], # Docker如果需要从非SSL源管理镜像,这里加上。
  "max-concurrent-downloads": 10
}
部分参数(registry-mirrors、insecure-registries ...)修改,只要reconfigure(systemctl reload docker) 就生效:
这部分参数详细列表:https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file

猜你喜欢

转载自blog.csdn.net/weixin_44716147/article/details/118542244