//树莓派操作指令
烧录后:
默认用户名pi、
默认密码raspberry
默认开启用户pi的ssh
默认不开启root的ssh
默认不支持VNC
sudo su 无密码切换到root
输入sudo raspi-config进入树莓派设置界面
选interfacing Options
选VNC
设置连接WIFI
sdjty 1234567890
设置树莓派pi raspberry
root 1234567890
修改root密码
sudo passwd root
切换到root
su root
修改pi密码
sudo passwd pi
切换到pi
su pi
改完密码后多切换几次用户名,看看修改有没有生效。
1.默认允许以用户pi(默认密码raspberry)进行登录
2.以root用户登录,需要以用户pi登录,修改root密码,并开启root的ssh远程登录权限,具体步骤如下:
2.1.以用户pi登录
2.2.修改root登录密码,输入下面的命令,会提示输入新的密码
sudo passwd root
2.3.解锁root用户
sudo passwd -u root
2.4.修改ssh的配置文件/etc/ssh/sshd_config,将配置项PermitRootLoginwithout-password或者#PermitRootLogin prohibit-password
修改为PermitRootLogin yes,重启系统之后就可以登录
sudo nano /etc/ssh/sshd_config
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes
开启root的ssh的权利
用nano打开/etc/ssh/sshd_config
将PermitRootLoginwithout-password修改为PermitRootLogin yes
别用原生的vi,太难用了,除非卸载后更新vi。nano还支持不同颜色,为什么不用。
甚至于你可以将PermitEmptyPasswords no改成PermitEmptyPasswords yes,即允许无密码,自由从pi切换到root。
树莓派换源,要注意你使用的树莓派是buster还是stretch
# 编辑 `/etc/apt/sources.list` 文件,删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
# 编辑 `/etc/apt/sources.list.d/raspi.list` 文件,删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
换源之后apt-get update,然后apt-get upgrade
getconf LONG_BIT # 查看系统位数
uname -a # kernel 版本
/opt/vc/bin/vcgencmd version # firmware版本
strings /boot/start.elf | grep VC_BUILD_ID # firmware版本
cat /proc/version # kernel
cat /etc/os-release # OS版本资讯
cat /etc/issue # Linux distro 版本
cat /etc/debian_version # Debian版本编号
查看内存使用情况,可以知道交换分区情况,free
同步时间,树莓派一旦断电,就会时间不准,每次开机都得矫正一下。
运行命令启用NTP
sudo timedatectl set-ntp true
date查看一下
修改时区
sudo dpkg-reconfigure tzdata
选择 Asia亚洲,
选择shanghai,中国有四个时区上榜,重庆、香港、台北、上海、没找到北京。
安装docker
sudo curl -sSL https://get.docker.com | sh
禁用交换空间
sudo dphys-swapfile swapoff
sudo dphys-swapfile uninstall
sudo update-rc.d dphys-swapfile remove
k8s node节点重新加入集群失败问题解决;k8snode节点安装失败,或者master节点坏掉,重新部署完毕master节点后,node节点无法加入集群,总之就是node节点已经装过一次,现在有残留,想要重新装一次。
解决方法,出现这种问题主要原因是之前kubeadm init初始化过,所以一些配置文件及服务均已存在,重新执行
kubeadm join时必然会导致冲突,解决方法如下:
重新初始化节点配置,转到/usr/local/keadm-v1.4.0-linux-arm/keadm#执行 ./kubeadm reset
然后重新加入集群,如果是node节点,就用kubeadm join --token xxxxx master_ip:6443 --discovery-token-ca-cert-hash sha256:xxxx ,如果token失效,到主节点执行:kubeadm token create重新生成。
如果是dege节点丢失了,那么也是这样的重置一下,重新加入。
172.16.0.103 edge-node
172.16.0.104 master
# GitHub Start
185.199.109.133 raw.githubusercontent.com
185.199.108.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
# GitHub End
cd /usr/local/ke...../ke....
./keadm gettoken
./keadm init --advertise-address="172.16.0.104" --kubeedge-version=1.4.0
./keadm join --cloudcore-ipport=172.16.0.104:10000 --edgenode-name=edge-node --kubeedge-version=1.4.0 --token=9d7fd2b69e36697d64a7e1af53d0bc22da768c8a1471fc4ad312548ff2f69c53.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjA4MDkxMzJ9.xJBNI__mxbzSxzQpZCYqTd4YdKkFTI1bmWijPo6PqLg
export ftp_proxy=http://192.168.8.143:7890
export http_proxy=http://192.168.8.143:7890
export https_proxy=http://192.168.8.143:7890
export all_proxy=http://192.168.8.143:7890
export no_proxy=localhost,127.0.0.1,.baidu.net
curl -I www.google.com
https://ask.csdn.net/questions/6733408
cgroup的问题这样改,加两句话,位置比较重要,不用全盘复制。
enable in /boot/cmdline.txt by including : cgroup_memory=1 cgroup_enable=memory. Like this:
console=tty1 root=PARTUUID=9f7945f8-02 rootfstype=ext4 elevator=deadline fsck.repair=yes cgroup_memory=1 cgroup_enable=memory rootwait quiet splash plymouth.ignore-serial-consoles
改为以后用下面的查看一下
cat /proc/cgroups
树莓派暴力断电关机会引发下次连不上wifi的问题,重新添加一下ssh和wpa_supplicant文件
https://mirror.tuna.tsinghua.edu.cn/help/centos/
大服务器F11进Bios,小服务器F2进Bios
一个Kubernetes集群由一组被称作节点的机器组成,这些节点上运行Kubernetes所管理的容器化应用。
工作节点托管作为应用负载的组件的Pod。控制平面管理集群中的工作节点和Pod。为集群提供故障转移。
Control Plane里面有几个重要的东西,也就是master里面有几个重要的东西。
c-c-m
c-m,理论上有很多个,但是事实是编译到同一个可执行文件。
etcd比较重要,是一个数据库。
sched,负责监视新创建的、未指定运行节点的Pods,选择节点让Pod在上面运行。
Node里面重要的是kubelet和k-proxy
kubelet是一个在集群中每个节点上运行的代理,它保证容器都运行在Pod中。
kube-proxy是集群中每个节点上运行的网络代理。
Container Runtime是一个负责运行容器的软件,支持docker
kubernetes控制面的核心是API服务器。kubectl和kubeadm这类命令的背后也是调用API。
要多看看安装完以后的各个文件。
API组和版本也有关系的,kubernetes支持多个API版本。
如何描述kubernetes对象,可以在命令中带一个描述性的yaml文件。kubectl apply -f
kubectl create -f
kubectl delete -f
kubectl replace -f
kubectl diff -f configs/
kubectl apply -f configs/
除了kubectl和dashboard之外,还可以使用其它工具来可视化和管理kubernetes对象。
centos下安装opencv
sudo yum install dnf
sudo dnf install opencv opencv-devel opencv-python
然后就可以自己写一份代码试试
#include
#include
using namespace std;
int main(){
return 0;
}
linux下编译gcc文件
gcc -o SocketServerMat SocketServerMat.cpp
如果,我是说如果报错了,而且错误是undefined reference to `std::ios_base::Init::Init(),那么
用gcc(C编译器)编译C++程序,会报标题的错误。
原因是用gcc编译c++程序时,链接的库文件为libstdc++.so,而不是默认的libc.so,因此需要用-lstdc++参数指明,否则会在链接时发生错误.
如: gcc helloworld.cpp -lstdc++
上面那一句就这么写。
gcc -o SocketServerMat SocketServerMat.cpp -lstdc++
2021年5月17日重要博客
python3 --version
NAVIDA Jetson TX2安装opencv-python并且用其调用板载摄像头,USB/网口相机显示图像
/opencv/myopencv.py
master下
/usr/local/opencv-py
**************************************************************************************************************************
centos查看所有用于登录的用户
cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1 #查看可以登录系统的用户
centos7创建用户并授权sudo su权限
1、创建一个新用户(整个操作都在超级管理员权限下)
# adduser admin
2、为新用户设置密码
# passwd admin (如果提示密码无效,别管它,重新输入一遍即可)
3、查看/etc/sudoers的权限
# ll /etc/sudoers
4、增加到可读可写可执行权限(及777权限),如果已经是777权限,那么请忽略这一步
# chmod 777 /etc/sudoers
5、把用户添加到sudoers,给用户名权限
# echo 'admin ALL=(ALL) ALL' >> /etc/sudoers
6、再把sudoers的777权限给去掉
# chmod 440 /etc/sudoers
7、现在新用户及权限就添加完毕了,退出当前的用户就可登录新建的用户了
8、删除用户组
userdel -rf <username>
9、虚拟机选择桥接模式的时候有一个小技巧,由于桥接一般是自动桥接,所以往往会发现桥接到了无线网卡上,而不是想要的有线网卡,
关闭无线连接就好了。或者改为有线网桥接。
chmod 755 文件
adduser xufei
passwd xufei
chmod 777 /etc/sudoers
echo 'xufei ALL=(ALL) ALL' >> /etc/sudoers
chmod 440 /etc/sudoers
**************************************************************************************************************************
一个好用的内网穿透工具natapp
./natapp -authtoken=
centos换源请看清华源help
**************************************************************************************************************************
centos安装golang
1、传包,解压。/usr/local下
2、打开环境变量文件
vi /etc/profile
3、在环境变量最后添加GOROOT环境变量,GOROOT变量为go的安装目录,类似java的jdk安装目录,GOPATH类似eclipse的workspace
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/root/go
export PATH=$PATH:$GOPATH/BIN
4、刷新环境变量
source /etc/profile
5、查看go是否安装成功
go --version
**************************************************************************************************************************
**************************************************************************************************************************
有时候socket通讯被阻断,是因为开了防火墙,
systemctl status firewalld
systemctl stop firewalld
这是新防火墙,而不是老的iptables
调用socket程序显示摄像头的时候,提示
Qt: Session management error: None of the authentication protocols specified are supported
这个问题的根源是当前是以root身份进行登录的,而运行程序需要更换一种角色。退出root 运行应用程序就OK了。
虚拟机中调用物理机的摄像头有两部
1、USB控制器,USB兼容性改3.0
2、虚拟机-->可移动设备-->Syntek,让摄像头与虚拟机连接。
linux下查找文件的命令,全盘根据名字查找。
find / -name proxy-admin
**************************************************************************************************************************
**************************************************************************************************************************
不好用,已经不用了。
centos安装opencv2.4
1、在安装之前,要先配置好epel源,因为下面的某些安装在系统自带的源中找不到
yum -y install epel-release
2、首先是gcc,g++等这些基本的工具,一般都是有的。没有的话就用yum install来安装。
yum install gcc gcc-c++
yum install cmake
yum install python-devel numpy
3、安装opencv的依赖项
yum install gtk2-devel
yum install libdc1394-devel
yum install libv4l-devel
yum install gstreamer-plugins-base-devel
4、安装ffmpeg-devel
wget https://forensics.cert.org/cert-forensics-tools-release-el7.rpm
rpm -Uvh cert-forensics-tools-release*rpm
yum --enablerepo=forensics install ffmpeg-devel
5、安装opencv2
wget https://github.com/opencv/opencv/archive/2.4.13.6.zip
unzip 2.4.13.6.zip
cd opencv-2.4.13.6
mkdir build
cd build
cmake ..
如果报错in-source builds are not allowed
则删除CMakeCache.txt
rm CMakeCache.txt
make
6、查看linux下的opencv安装版本:
pkg-config opencv --modversion
**************************************************************************************************************************
centos安装python3和pip3,并且解决与2同名冲突问题。
1、安装python依赖
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
2、下载安装包
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
3、解压
tar -zxvf Python-3.6.5.tgz
4、进入文件夹
cd Python-3.6.5
5、创建安装目录(不会随意安装)
mkdir /usr/local/python3
6、指明安装路径
./configure -prefix=/usr/local/python3
7、编译安装,得有gcc
sudo make && make install
8、建立链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 #为python3创建软连接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 #为pip3创建软连接
9、验证
python3 # 输入
pip3 -V #V大写
10、更新pip3,否则无法用pip3安装numpy和opencv,现在的pip3是9.0的,不是最新的。
pip3 install --upgrade pip
11、安装numpy
pip3 install numpy或者pip3 install --upgrade numpy
12、安装opencv
pip3 install --upgrade opencv-python或者pip3 install opencv-python
主要是一定要记住pip3 install --upgrade pip,后面的问题都好解决。
13、查看pip3安装的包
pip3 list
14、卸载和删除python3
卸载python3
rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps 卸载pyhton3
whereis python3 |xargs rm -frv 删除所有残余文件
成功卸载!
whereis python 查看现有安装的python
**************************************************************************************************************************
搭建proxy
在vps上执行
proxy bridge -p ":33080" -C proxy.crt -K proxy.key
proxy server -r ":28080@:8002" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key
在公司机器A上面执行
proxy client -P "111.229.175.232:33080" -C proxy.crt -K proxy.key
完成
proxy bridge -p ":33080" -C proxy.crt -K proxy.key
proxy server -r ":28080@:8030" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key
在公司机器A上面执行
proxy client -P "47.108.49.230:33080" -C proxy.crt -K proxy.key
完成
**************************************************************************************************************************
**************************************************************************************************************************
//ubuntu设置
服务器配完ubuntu系统以及LNMP环境以后,想用WINSCP远程登录,就需要开启SSH服务才能支持。
SSH服务分为客户端和服务器。顾名思义,我想用WINSCP远程登录Ubuntu服务器,所以需要安装SSH server。
OK,下面介绍如何开启SSH服务。
一、检查是否开启SSH服务
因为Ubuntu默认是不安装SSH服务的,所以在安装之前可以查看目前系统是否安装,通过以下命令:
ps -e|grep ssh
输出的结果ssh-agent表示ssh-client启动,sshd表示ssh-server启动。我们是需要安装服务端所以应该看是否有sshd,如果没有则说明没有安装。
二、安装SSH服务
#客户端
sudo apt-get install openssh-client
#服务器
sudo apt-get install openssh-server
或者
apt-get install ssh
三、启动SSH服务
sudo /etc/init.d/ssh start
四、修改SSH配置文件
可以通过SSH配置文件更改包括端口、是否允许root登录等设置,配置文件位置:
/etc/ssh/sshd_config
默认是不允许root远程登录的,可以再配置文件开启。
sudo vim /etc/ssh/sshd_config
找到PermitRootLogin without-password 修改为PermitRootLogin yes
五、重启SSH服务
service ssh restart
即可通过winscp 、putty使用ROOT权限远程登录。
启用root用户:sudo passwd root //修改密码后就启用了。
客户端如果是ubuntu的话,则已经安装好ssh client,可以用下面的命令连接远程服务器。
查看磁盘使用情况,df -h
**************************************************************************************************************************
//龙芯
用户root root
long long
HUAWEI_06DL
Y4J9R3LR
long芯mac地址
00:1E:10:1F:00:00
sudo nano /etc/ssh/sshd_config
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes
https://hub.docker.com/repository/docker/loongnixk8s
docker pull loongnixk8s/node:v3.13.2
docker pull loongnixk8s/cni:v3.13.2
docker pull loongnixk8s/pod2daemon-flexvol:v3.13.2
docker pull loongnixk8s/kube-controllers:v3.13.2
docker pull loongnixk8s/kube-apiserver-mips64le:v1.18.3
docker pull loongnixk8s/kube-controller-manager-mips64le:v1.18.3
docker pull loongnixk8s/kube-proxy-mips64le:v1.18.3
docker pull loongnixk8s/kube-scheduler-mips64le:v1.18.3
docker pull loongnixk8s/pause:3.2
docker pull loongnixk8s/coredns:1.6.5
docker pull loongnixk8s/etcd:3.3.12
docker镜像的批量导出脚本
#!/bin/sh
#docker save $(docker images --format '{{.Repository}}:{{.Tag}}') -o allinone.tar
IMAGES=$(docker images --format '{{.Repository}}:{{.Tag}}')
for element in ${IMAGES[@]}
do
echo "saving ${element} ..."
docker save ${element} >> allinone.tar
echo "${element} saved"
done
kubeadm-1.18.3-0.mips64el.rpm
kubectl-1.18.3-0.mips64el.rpm
kubelet-1.18.3-0.mips64el.rpm
kubernetes-cni-0.8.6-0.mips64el.rpm
千兆网上网模式
sssss
admin
1234567890
关闭所有防火墙,包括windows的
sshd随机自启
docker 存出镜像需要注意的一个问题
正确:docker save <repository>:<tag> -o <repository>.tar
错误:docker save <IMAGE ID> -o <repository>.tar(会导致载入镜像后名字标签都为<none>)
如果docker载入新的镜像后repository和tag名称都为none
那么通过tag的方法增加名字标签
docker tag <IMAGE ID> <repository>:<tag>
我找到的包
docker.io/loongnixk8s/coredns 1.6.5 c36e05b0fbb8 5 months ago 40.8 MB
docker.io/loongnixk8s/kube-apiserver-mips64le v1.18.3 db84b163a21e 7 months ago 222 MB
docker.io/loongnixk8s/kube-controller-manager-mips64le v1.18.3 8b93be1b27b9 7 months ago 210 MB
docker.io/loongnixk8s/kube-scheduler-mips64le v1.18.3 d50cb0ffd0c4 7 months ago 119 MB
docker.io/loongnixk8s/kube-proxy-mips64le v1.18.3 87afa7b09bfd 7 months ago 137 MB
docker.io/loongnixk8s/node v3.13.2 a5d19f129dea 9 months ago 231 MB
docker.io/loongnixk8s/pod2daemon-flexvol v3.13.2 6fa6398f8540 10 months ago 124 MB
docker.io/loongnixk8s/cni v3.13.2 c14ac7807e5c 10 months ago 161 MB
docker.io/loongnixk8s/kube-controllers v3.13.2 488eeba8f21e 10 months ago 55.3 MB
docker.io/loongnixk8s/pause 3.2 d52dc88f0f11 10 months ago 769 kB
docker.io/loongnixk8s/etcd 3.3.12 cd3b6f594d56 11 months ago 176 MB
龙芯需要的包
loongnixk8s/kube-apiserver:v1.18.3
loongnixk8s/kube-controller-manager:v1.18.3
loongnixk8s/kube-scheduler:v1.18.3
loongnixk8s/kube-proxy:v1.18.3
loongnixk8s/pause:3.2
loongnixk8s/etcd:3.4.3-0
loongnixk8s/coredns:1.6.7
可以看到
loongnixk8s/etcd:3.4.3-0
loongnixk8s/coredns:1.6.7
版本不符合
1.查看占用程序
netstat -apn | grep 443
最后一项显示的是pid和对应的名称
2.杀掉对应的进程,彻底杀死进程
kill -9 pid
172.16.0.101 FC:45:96:A1:55:D2 tian
172.16.0.102 44:37:E6:EA:78:C3 node
172.16.0.103 B8:27:EB:BE:75:BC 树莓派
172.16.0.104 20:47:47:80:6D:30 master
172.16.0.105 00:0B:2F:16:EC:5B long
172.16.0.106 50:7B:9D:19:72:70 xf
windows更新以后,安全等级提高了,会禁止陌生设备ping,比如mips
**************************************************************************************************************************
//uos统信安装
uos稳定的源
amd64的源 deb [by-hash=force] http://packages.deepin.com/deepin stable main contrib non-free
deb https://mirrors.aliyun.com/debian stable main contrib non-free
Y4J9R3LR
试过,但是不太好用的源
deb [by-hash=force] https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free
#deb-src [by-hash=force] https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free
#deb [by-hash=force] http://packages.deepin.com/deepin stable main contrib non-free
#deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
#deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
#deb [by-hash=force] https://mirrors.tsinghua.edu.cn/deepin panda main contrib non-free
deb https://mirrors.aliyun.com/debian stable main contrib non-free
deb [trusted=yes] https://mirrors.huaweicloud.com/deepin stable main contrib non-free
apt-get update --fix -missing
uos解决没有ssh的问题
sudo apt-get autoremove openssh-client
sudo apt-get install openssh-client openssh-server
sudo /etc/init.d/ssh start
systemctl status ssh
设置开机自启动
systemctl enable ssh
接下来就可以使用xshell连接,粘贴浏览器上的内容,做更多操作了。早早的换阿里源,没有数字秘钥照样没用。
有些linux在安装的时候就提示设root的密码,有些没有提示,这个时候想要切root,提示输入密码是怎样都不会正确的,
所以可以sudo passwd root,先设置root的mim,然后再切root。
sudo nano /etc/ssh/sshd_config
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes
vim /etc/apt/sources.list
具体就是修改/etc/apt/apt.conf.d下的70debconf文件,在里面加上:Acquire::AllowInsecureRepositories “true”;
Acquire::AllowInsecureRepositories "true";
Acquire::AllowDowngradeToInsecureRepositories "1";
**************************************************************************************************************************
//nginx配置和安装
nginx reload命令_nginx:Failed to start nginx.service:unit not found
解决方法:
1. 在/root/etc/init.d/目录下新建文件,文件名为nginx
或者用命令在根目录下执行:# vim /etc/init.d/nginx (注意vim旁边有一个空格)
2. 插入以下代码
#!/bin/sh
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
3. 用命令进入此目录
cd /etc/init.d
4. 依此执行以下命令
chmod 755 /etc/init.d/nginx
chkconfig --add nginx (注意add前面是两个短横线-)
5. 开启nginx
service nginx start
centos安装nginx后开启防火墙端口
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
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
yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0
kubeadm init \
--apiserver-advertise-address=172.16.0.108 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.17.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
./keadm init --advertise-address="172.16.0.104" --kubeedge-version=1.4.0
./keadm join --cloudcore-ipport=172.16.0.104:10000 --edgenode-name=edge-node --kubeedge-version=1.4.0 --token=9ef727c62cd60d325a250f10a4b0d54bb6b509007a6d15f11cd36525567dbe1a.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjA0NjAwOTZ9.tZgB7VtAfmFzwV30nEaTSRPxuQV-nJKq0rIfYYZXfBI
./keadm reset
**************************************************************************************************************************
//田鹏新
烧录后:
默认用户名pi、
默认密码raspberry
默认开启用户pi的ssh
默认不开启root的ssh
默认不支持VNC
sudo su 无密码切换到root
输入sudo raspi-config进入树莓派设置界面
选interfacing Options
选VNC
设置连接WIFI
sdjty 1234567890
设置树莓派pi raspberry
root 1234567890
修改root密码
sudo passwd root
切换到root
su root
修改pi密码
sudo passwd pi
切换到pi
su pi
改完密码后多切换几次用户名,看看修改有没有生效。
1.默认允许以用户pi(默认密码raspberry)进行登录
2.以root用户登录,需要以用户pi登录,修改root密码,并开启root的ssh远程登录权限,具体步骤如下:
2.1.以用户pi登录
2.2.修改root登录密码,输入下面的命令,会提示输入新的密码
sudo passwd root
2.3.解锁root用户
sudo passwd -u root
2.4.修改ssh的配置文件/etc/ssh/sshd_config,将配置项PermitRootLoginwithout-password或者#PermitRootLogin prohibit-password
修改为PermitRootLogin yes,重启系统之后就可以登录
sudo nano /etc/ssh/sshd_config
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes
开启root的ssh的权利
用nano打开/etc/ssh/sshd_config
将PermitRootLoginwithout-password修改为PermitRootLogin yes
别用原生的vi,太难用了,除非卸载后更新vi。nano还支持不同颜色,为什么不用。
甚至于你可以将PermitEmptyPasswords no改成PermitEmptyPasswords yes,即允许无密码,自由从pi切换到root。
树莓派换源,要注意你使用的树莓派是buster还是stretch
# 编辑 `/etc/apt/sources.list` 文件,删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
# 编辑 `/etc/apt/sources.list.d/raspi.list` 文件,删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
换源之后apt-get update,然后apt-get upgrade
getconf LONG_BIT # 查看系统位数
uname -a # kernel 版本
/opt/vc/bin/vcgencmd version # firmware版本
strings /boot/start.elf | grep VC_BUILD_ID # firmware版本
cat /proc/version # kernel
cat /etc/os-release # OS版本资讯
cat /etc/issue # Linux distro 版本
cat /etc/debian_version # Debian版本编号
查看内存使用情况,free
同步时间,树莓派一旦断电,就会时间不准,每次开机都得矫正一下。
运行命令启用NTP
sudo timedatectl set-ntp true
date查看一下
修改时区
sudo dpkg-reconfigure tzdata
选择 Asia亚洲,
选择shanghai,中国有四个时区上榜,重庆、香港、台北、上海、没找到北京。
安装docker
sudo curl -sSL https://get.docker.com | sh
禁用交换空间
sudo dphys-swapfile swapoff
sudo dphys-swapfile uninstall
sudo update-rc.d dphys-swapfile remove
k8s node节点重新加入集群失败问题解决;k8snode节点安装失败,或者master节点坏掉,重新部署完毕master节点后,node节点无法加入集群,总之就是node节点已经装过一次,现在有残留,想要重新装一次。
解决方法,出现这种问题主要原因是之前kubeadm init初始化过,所以一些配置文件及服务均已存在,重新执行
kubeadm join时必然会导致冲突,解决方法如下:
重新初始化节点配置,转到/usr/local/keadm-v1.4.0-linux-arm/keadm#执行 ./kubeadm reset
然后重新加入集群,如果是node节点,就用kubeadm join --token xxxxx master_ip:6443 --discovery-token-ca-cert-hash sha256:xxxx ,如果token失效,到主节点执行:kubeadm token create重新生成。
如果是dege节点丢失了,那么也是这样的重置一下,重新加入。
------------------------------------------------------------------------------------------
编辑hosts
nano /etc/hosts
172.16.0.103 edge-node
172.16.0.104 master
# GitHub Start
185.199.109.133 raw.githubusercontent.com
185.199.108.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
# GitHub End
-------------------------------------------------------------------------------------------------------
./keadm init --advertise-address="172.16.0.104" --kubeedge-version=1.4.0
./keadm join --cloudcore-ipport=172.16.0.104:10000 --edgenode-name=edge-node --kubeedge-version=1.4.0 --token=9d7fd2b69e36697d64a7e1af53d0bc22da768c8a1471fc4ad312548ff2f69c53.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjA4MDkxMzJ9.xJBNI__mxbzSxzQpZCYqTd4YdKkFTI1bmWijPo6PqLg
-------------------------------------------------------------------------
部署golang
wget https://golang.google.cn/dl/go1.15.3.linux-amd64.tar.gz
tar -zxvf go1.15.3.linux-amd64.tar.gz -C /usr/local
vi /etc/profile
# golang env
export GOROOT=/usr/local/go
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source /etc/profile
mkdir -p /data/gopath && cd /data/gopath
mkdir -p src pkg bin
------------------------------------------------------------------------
export ftp_proxy=http://172.16.0.106:7890
export http_proxy=http://172.16.0.106:7890
export https_proxy=http://172.16.0.106:7890
export all_proxy=http://172.16.0.106:7890
export no_proxy=localhost,127.0.0.1,.baidu.net
curl -I www.google.com
---------------------------------------------------------------------------------------
docker镜像源查看
https://hub.docker.com
------------------------------------------------------------------------------------------
cgroup的问题这样改,加两句话,位置比较重要,不用全盘复制。
enable in /boot/cmdline.txt by including : cgroup_memory=1 cgroup_enable=memory. Like this:
console=tty1 root=PARTUUID=9f7945f8-02 rootfstype=ext4 elevator=deadline fsck.repair=yes cgroup_memory=1 cgroup_enable=memory rootwait quiet splash plymouth.ignore-serial-consoles
改为以后用下面的查看一下
cat /proc/cgroups
树莓派暴力断电关机会引发下次连不上wifi的问题,重新添加一下ssh和wpa_supplicant文件
https://mirror.tuna.tsinghua.edu.cn/help/centos/
------------------------------------
node节点get nodes出现:The connection to the server localhost:8080 was refused - did you specify the right host or port?
将master节点中/etc/kubernetes中的admin.conf复制到node节点的相同目录下,之后执行:export KUBECONFIG=/etc/kubernetes/admin.conf
-----------------------------------------------------------------------------
apt-get安装kubectl等找不到
root@ubuntu:~# cat /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
root@ubuntu:~#
root@ubuntu:~# curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
root@ubuntu:~# apt-get update
root@ubuntu:~# apt-cache madison 'kubeadm' | grep 1.16.2 | head -1 | awk '{$1=$1};1' | cut -d' ' -f 3
1.16.2-00
root@ubuntu:~# apt-get install -y --allow-change-held-packages --allow-downgrades kubeadm=1.17.0-00 kubelet=1.17.0-00 kubectl=1.17.0-00
----------------------------------------------------------------
#查看k8s-master表示不运行pod
[root@k8s-master ~]# kubectl describe node k8s-master |grep Taints
Taints: node-role.kubernetes.io/master:NoSchedule
#查看k8s-master表示运行pod
[root@k8s-master ~]# kubectl describe node k8s-master |grep Taints
Taints: <none>
#让 master节点参与POD负载的命令为
kubectl taint nodes k8s-master node-role.kubernetes.io/master-
#让 master节点恢复不参与POD负载的命令为
kubectl taint nodes k8s-master node-role.kubernetes.io/master=:NoSchedule
------------------------------------------------------------------------
**************************************************************************************************************************
//kubelet配置和安装
centos系统的master及node下操作
关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
关闭swap:
swapoff -a # 临时
vim /etc/fstab # 永久 注释关于swap的那一行,在最后一行。
修改主机名hostname:
hostnamectl set-hostname <hostname>
在master添加hosts:
cat >> /etc/hosts << EOF
192.168.31.61 k8s-master
192.168.31.62 k8s-node1
192.168.31.63 k8s-node2
EOF
将桥接的 IPv4 流量传递到 iptables 的链:
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效
时间同步:
yum install ntpdate -y
ntpdate time.windows.com
date
安装docker,kubernetes默认CRI(容器运行时)为docker:
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
docker --version
添加阿里云YUM软件源,
设置仓库地址:
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
} EOF
添加 yum 源:
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
安装 kubeadm,kubelet和 kubectl:
yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0
systemctl enable kubelet
从下面开始centos系统的master和node就不一样了。
centos系统的master:
部署kubernetes master: 假如master的IP是172.16.0.104
kubeadm init \
--apiserver-advertise-address=192.168.31.61 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.17.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
由于默认拉取镜像地址 k8s.gcr.io 国内无法访问,这里指定阿里云镜像仓库地址。
使用kubectl工具:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装pod网络插件(CNI)
kubectl apply -f kube-flannel.yaml
该yaml文件是通用的,可以去github下载,或者在apply -f执行指令中加入github下载地址。
查看master状态
kubectl get nodes
获取token,为node加入做准备.
kubeadm token create --print-join-command
centos系统的node
kubeadm join 192.168.31.61:6443 --token n2vb26.1nzx4628932e7r8n --discovery-token-ca-cert-hash sha256:74cac4b44cbb7ae95d57ce86ea6602bac9d1b2fade82e224b929f1ce6f918196
其中--token n2vb26.1nzx4628932e7r8n --discovery-token-ca-cert-hash sha256:74cac4b44cbb7ae95d57ce86ea6602bac9d1b2fade82e224b929f1ce6f918196 是在master里面获取的token和hash。
centos系统的cloudcore云
将执行脚本keadm-v1.4.0-linux-amd64.tar.gz传输到/usr/local下,解压,进入,再进入keadm,然后
./keadm init --advertise-address="172.16.0.104" --kubeedge-version=1.4.0
假如172.06.0.104是cloudcore的IP
./keadm gettoken获取token
raspberry系统的edgecore
将执行脚本keadm-v1.4.0-linux-arm.tar.gz传输到/usr/local下,解压,进入,再进入keadm,然后
./keadm join --cloudcore-ipport=172.16.0.104:10000 --edgenode-name=edge-node --kubeedge-version=1.4.0 --token=9d7fd2b69e36697d64a7e1af53d0bc22da768c8a1471fc4ad312548ff2f69c53.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjA4MDkxMzJ9.xJBNI__mxbzSxzQpZCYqTd4YdKkFTI1bmWijPo6PqLg
token是从cloudcore获取的。