SQLServer Decimal数据类型怎么赋值
266
2022-10-19
swarm 学习笔记
《官方文档:set-hostname manager
hostnamectl set-hostname worker1
hostnamectl set-hostname worker2=============
创建集群:docker swarm init --advertise-addr 10.0.2.15 其中 10.0.2.15 是manager节点的ip
返回值告诉我们如何添加work 节点,如果忘记了添加work节点的命令,可以通过 docker swarm join-token worker 查看。查看添加manager节点的命令:docker swarm join-token manager
查看当前swarm集群中的节点状态:docker node ls
默认配置下 manager node 也是 worker node,所以 swarm-manager 上也运行了副本。如果不希望在 manager 上运行 service,可以执行如下命令:docker node update --availability drain swarm-manager
===============检查防火墙状态:systemctl status firewalld.service 或 firewall-cmd --state查看防火墙:firewall-cmd --list-all更新防火墙规则:firewall-cmd --reload启停防火墙:systemctl start firewalld.service systemctl stop firewalld.service
临时增加:firewall-cmd --add-port=999/tcp永久增加:firewall-cmd --permanent --add-port=999/tcpfirewall-cmd --reload
删除端口:firewall-cmd --remove-port=999/tcp----firewall-cmd --permanent --remove-port=999/tcpfirewall-cmd --reload
查询端口firewall-cmd --query-port=999/tcp查看所有放行的端口:firewall-cmd --list-ports
添加端口:
firewall-cmd --permanent --add-port=2377/tcp
firewall-cmd --permanent --add-port=7946/tcpfirewall-cmd --permanent --add-port=7946/udpfirewall-cmd --permanent --add-port=4789/udpfirewall-cmd --reloadfirewall-cmd --list-ports ============如果开启防火墙,则需要在所有节点的防火墙上依次放行2377/tcp(管理端口)、7946/udp(节点间通信端口)、4789/udp(overlay 网络端口)端口。
查看部署的服务:docker service ls查看服务每个副本的状态:docker service ps
为了外部网络可以访问服务,需要使用--publish-add, 将容器的端口映射到主机的端口,这样外部网络就能访问到 service 了,这样访问任何一个节点的ip都能访问到服务
查看宿主机上的容器网络:docker network ls通过服务发现,service 的使用者不需要知道 service 运行在哪里,IP 是多少,有多少个副本,就能与 service 通信。要使用服务发现,需要相互通信的 service 必须属于同一个 overlay 网络,所以我们先得创建一个新的 overlay 网络虽然ingress也是overlay 网络,但ingress 没有提供服务发现,必须创建自己的 overlay 网络
可以通过 --rollback 快速恢复到更新之前的状态,--rollback 只能回滚到上一次执行 docker service update 之前的状态,并不能无限制地回滚docker service update --rollback
service提供了一个 global mode,其作用是强制在每个 node 上都运行一个且最多一个副本。即使之后有新的 node 加入,swarm 也会自动在新 node 上启动容器docker service create \ --mode global \ --name logspout \ --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock \ gliderlabs/logspout
可以通过给节点打标签和设置容器的constraint来控制容器运行在哪个节点上docker node update --label-add env=test swarm-worker1docker service create \ --constraint node.labels.env==test \ --replicas 3 \ --name my_web \ --publish 8080:80 \ 进行健康检查:docker service create --name my_db \ --health-cmd "curl --fail || exit 1" \ couchbase
--health-cmd Health Check 的命令,还有几个相关的参数:--timeout 命令超时的时间,默认 30s。--interval 命令执行的间隔时间,默认 30s。--retries 命令失败重试的次数,默认为 3,如果 3 次都失败了则会将容器标记为 unhealthy。swarm 会销毁并重建 unhealthy 的副本
========yaml官方文档:stack deploy ocr-system -c /export/system-install-offline/docker-compose.yamlyaml修改后,也是通过docker stack deploy 命令来生效修改
为了不重名,所有资源都会加上 stack 名称作为前缀
查看应用列表:docker stack ls
查看所有的服务:docker service ls删除应用docker stack rm ocr-system列出某个应用下面的服务docker stack ps ocr-system查看应用下的服务docker stack services ocr-system查看应用下的详细信息docker stack ps ocr-system
docker service inspect tst2_flask-svc
docker service logs tst2_flask-svc
docker service ps tst2_flask-svc
如果需要从镜像仓库拉镜像,首先要在执行deploy的节点上docker login镜像仓库(其他节点不用login),然后在deploy时需要加上 --with-registry-auth
docker stack deploy -c tst.yaml tst --with-registry-auth
docker stack deploy -c tst.yaml tst --with-registry-auth
虽然manager节点上可以运行容器,但强烈不建议,因为若manager节点挂了,上面的服务也就挂了。如果服务是运行在worker节点,若worker节点挂了,服务可以迁移到其他节点
排空一个节点:docker node update --availability drain worker1
恢复节点:docker node update --availability active worker1
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~