运维的一些指令
linux连接另一台linux
命令:ssh root@ip 然后输入密码
切换成管理员用户登陆:
su root
服务机
安装docker
https://www.runoob.com/docker/ubuntu-docker-install.html
docker ps 查看运行的容器
docker ps -a 查看所有运行过的容器
docker start b750bbbcfd88 启动一个运行过的停止的容器
docker logs 容器 查看容器里的日志
docker logs -f 容器 实时看日志
docker logs --tail 300 最新300行日志
docker stop amazing_cori 停止容器
docker pull ubuntu 拉取镜像
docker run -i -t ubuntu /bin/bash 运行ubt镜像并进入容器开始命令 -i进入容器 -t开始终端
docker run -it ubuntu /bin/bash
exit 退出终端
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
以后台的方式启动镜像,并输出 hello world
docker exec b750bbbcfd88 进入容器,退出时不会关闭
docker exec -it 容器id /bin/bash
kubectl exec -it podName -n namespace bash
docker images 查看有哪些镜像
docker search 查找镜像
//需要修改docker的启动项
vi /usr/lib/systemd/system/docker.service 一般地址
可以查找 find / -name docker.service
修改
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
为
ExecStart=/usr/bin/dockerd --insecure-registry harbor.私有.in 最后的为harbor私有地址
重启docker
systemctl daemon-reload
systemctl restart docker
docker login harbor.私有.in 重新登录输入账号密码即可
docker save -o 文件.tar 镜像
-o表示保存成文件
docker save -o data/images/hellp.tar hello-world
ip add 查看ip
远程主机用户@远程主机IP:远程主机文件的绝对路径
scp 文件 root@172.25.254.215:/root/file ##把本地文件复制到远程主机
scp -r 目录 root@172.25.254.215:/root/dir ##-r表示复制目录
文件传输前需要安装ssh
sudo apt-get install openssh-server 安装
sudo ps -e |grep ssh 查看是否启动 有sshd,说明ssh服务已经启动
sudo service ssh start 启动
改服务器的配置文件 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
添加
PermitRootLogin yes
PubkeyAuthentication no
PasswordAuthentication yes
后sudo service sshd restart 重启ssh服务
vi 编辑文件 a光标延后
客户机器
apt install curl 安装curl工具
安装国内k3s
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
将mes-k8s所有内容到服务器路径/data/mes-k8s
windows拷贝到linux文件会添加断元字符 ^M
查看文件 cat -A 文件名
去除命令 dos2unix filename
dos2unix 第三方需要安装 命令apt install dos2unix
cat filename |tr -d '\r' > newfile
#导入镜像
ctr image import dashboard.tar
#查询镜像,为什么没有刚才导入的镜像?
crictl images
k8s相关
# 查看所有pod所属的命名空间
kubectl get pod --all-namespaces
# 查看命名空间
$ kubectl get ns
$ kubectl get namespaces
# 查看已经部署了的所有应用,可以看到容器,以及容器所用的镜像,标签等信息
查看现有服务
kubectl get deploy -o wide -n namespace
查看所有端口服务
kubectl get svc -o wide -n namespace
创建端口映射的服务
kubectl expose deployment <deployment-name> --type=<service-type> --port=<target-port> --name=<service-name>
kubectl expose deployment hanclouds-mom-gateway --type=NodePort --port=8080 --target-port=8080 --name=hanclouds-mom-gateway-np
--port 监听的端口号。这不一定是 Deployment 容器的端口,你可以通过 --target-port 参数指定容器内的端口。
删除端口映射服务
kubectl delete service hanclouds-wx-gateway-np -n jn-prod
重启一个应用,一定要加空间名mes-env 不然是默认空间
kubectl rollout restart deployment deploymentname -n namespace
利用部署过的pro导出yaml
kubectl get deploy redis-deploy -n mes_env -o=yaml > /data/redis_my.yaml
单服务部署查看
kubectl get pods -n namespace 查看空间的单个
kubectl logs <pod name>能够帮助检索Pod的容器日志
kubectl describe pod <pod name>能够有效地检索与Pod相关的事件列表
kubectl get pod <pod name>对于提取存储在Kubernetes中的Pod的YAML定义十分有用
kubectl exec -it <pod name> -n namespace bash可以用于在Pod其中一个容器中运行一个交互式命令
kubectl delete pod <pod-name> 删除一个服务
exit 退出
单个服务部署
导入镜像
ctr images import /data/mes-k8s/system/images/gateway.tar
更新服务
kubectl apply -f /data/mes-k8s/system/yamls/gateway.yaml
如果没启动查看容器日志
kubectl describe pod
重启镜像
kubectl delete pod -n
ubuntu 输入
ip add 出现网络问题
输入 sudo dhclient ens33 即可
docker部署的EMQX忘记密码
docker ps 查看容器
docker exec -it 容器id bash
输入修改命令
./bin/emqx_ctl admins password admin public
添加用户
./bin/emqx_ctl admins add test public123
删除用户
./bin/emqx_ctl admins del test public123