求助 iptables 开放端口无效
系统是 centos7 ,firewall 关闭了的
```
[root@localhost init.d]# systemctl status firewalld.service
● firewalld.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead) since 四 2022-10-27 15:08:38 CST; 2 months 7 days ago
Main PID: 7533 (code=exited, status=0/SUCCESS)
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
```
有一个 iptables 可以使用,但并不是 service
```
[root@localhost init.d]# service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
[root@localhost init.d]# iptables -nvL
Chain INPUT (policy ACCEPT 382K packets, 216M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3307
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1881
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 DOCKER-ISOLATION-STAGE-1 all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 206K packets, 190M bytes)
pkts bytes target prot opt in out source destination
Chain DOCKER (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.2 tcp dpt:9000
0 0 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.3 tcp dpt:6379
0 0 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.4 tcp dpt:9000
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
pkts bytes target prot opt in out source destination
0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * docker0 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-USER (1 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
```
诡异的是扫描端口,发现 1881 和 3307 没有通,1880 通了的
如果 yum 重新安装 iptables.service ,配置开通 3307 和 1881 后再扫描端口,发现 1880 和 1881 、3307 的 tcp 全部是关闭状态
求大佬解惑
#0.0 #-- #docker0 #ACCEPT #tcp #bytes #DOCKER #Chain #pkts #target
系统是 centos7 ,firewall 关闭了的
```
[root@localhost init.d]# systemctl status firewalld.service
● firewalld.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead) since 四 2022-10-27 15:08:38 CST; 2 months 7 days ago
Main PID: 7533 (code=exited, status=0/SUCCESS)
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
```
有一个 iptables 可以使用,但并不是 service
```
[root@localhost init.d]# service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
[root@localhost init.d]# iptables -nvL
Chain INPUT (policy ACCEPT 382K packets, 216M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3307
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1881
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 DOCKER-ISOLATION-STAGE-1 all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 206K packets, 190M bytes)
pkts bytes target prot opt in out source destination
Chain DOCKER (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.2 tcp dpt:9000
0 0 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.3 tcp dpt:6379
0 0 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.4 tcp dpt:9000
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
pkts bytes target prot opt in out source destination
0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * docker0 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-USER (1 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
```
诡异的是扫描端口,发现 1881 和 3307 没有通,1880 通了的
如果 yum 重新安装 iptables.service ,配置开通 3307 和 1881 后再扫描端口,发现 1880 和 1881 、3307 的 tcp 全部是关闭状态
求大佬解惑
#0.0 #-- #docker0 #ACCEPT #tcp #bytes #DOCKER #Chain #pkts #target
小团队如何搭建远程开发环境
先说下背景,主要是 web 开发,都熟悉 linux ,10 人左右,当前用的方案是 wsl2+docker ,vscode 连到 wsl2 写代码,docker 实现运行环境。其实这样也没啥大问题,但是现在有台闲置机器( pc 机 16G )自己想折腾一下-_-
目前能想到的远程开发方案列一下
## 方案 1:VM 方案
基于 esxi 或者 kvm 给每个人分配一个虚拟机,vscode+ssh remote 开发,在虚拟机里各自安装 docker 运行项目。主要是担心性能不够
1. 底层选 esxi 还是有更优的推荐?
2. 不影响体验最多能启动多少个 vm ?
## 方案 2:docker in docker 方案
宿主机上跑 docker ,每人分配一个 docker 容器,用 docker in docker 的方案来实现运行环境。已经折腾了下,开发代码没啥问题,但是每个容器内都有操作宿主机 docker daemon 的能力有点不可控,mounts 也是宿主目录而非容器内目录。主要是没搞定完全隔离
1. 容器内有全局管理 docker 的能力
2. 内层容器挂载的是宿主机目录
## 方案 3:继续 wsl2 ,或推荐其他更优方案
希望有前辈推荐下方案,解答下方案的问题,感谢
#docker #方案 #容器 #宿主机 #wsl2 ### #虚拟机 #vscode #esxi #更优
先说下背景,主要是 web 开发,都熟悉 linux ,10 人左右,当前用的方案是 wsl2+docker ,vscode 连到 wsl2 写代码,docker 实现运行环境。其实这样也没啥大问题,但是现在有台闲置机器( pc 机 16G )自己想折腾一下-_-
目前能想到的远程开发方案列一下
## 方案 1:VM 方案
基于 esxi 或者 kvm 给每个人分配一个虚拟机,vscode+ssh remote 开发,在虚拟机里各自安装 docker 运行项目。主要是担心性能不够
1. 底层选 esxi 还是有更优的推荐?
2. 不影响体验最多能启动多少个 vm ?
## 方案 2:docker in docker 方案
宿主机上跑 docker ,每人分配一个 docker 容器,用 docker in docker 的方案来实现运行环境。已经折腾了下,开发代码没啥问题,但是每个容器内都有操作宿主机 docker daemon 的能力有点不可控,mounts 也是宿主目录而非容器内目录。主要是没搞定完全隔离
1. 容器内有全局管理 docker 的能力
2. 内层容器挂载的是宿主机目录
## 方案 3:继续 wsl2 ,或推荐其他更优方案
希望有前辈推荐下方案,解答下方案的问题,感谢
#docker #方案 #容器 #宿主机 #wsl2 ### #虚拟机 #vscode #esxi #更优
大哥们,帮我看看我这样安装的 Gitea 为啥配置完以后访问不了?
容器安装命令:
```
docker run -d -p 6030:3000 -p 6031:22 --name gitea --restart=always -v /data/gitea:/data gitea/gitea:latest
```
安装配置如下图:
[Imgur]( https://i.imgur.com/lZrPJgi.png)
安装完跳转就 502 了,是哪里有问题吗?有没有办法不重新安装修改配置解决?谢谢。
#gitea #-- #data #安装 #重新安装 #跳转 #docker #run #6030 #3000
容器安装命令:
```
docker run -d -p 6030:3000 -p 6031:22 --name gitea --restart=always -v /data/gitea:/data gitea/gitea:latest
```
安装配置如下图:
[Imgur]( https://i.imgur.com/lZrPJgi.png)
安装完跳转就 502 了,是哪里有问题吗?有没有办法不重新安装修改配置解决?谢谢。
#gitea #-- #data #安装 #重新安装 #跳转 #docker #run #6030 #3000
Docker 运行的 Rancher(容器内部基于 K3s)搭建的测试环境最近经常整个容器重启
排查思路为:Docker event ,容器内部 K3s.log ,Rancher log
都没有有效信息,现在测试环境是用 Docker 搭建的单例 Rancher 在跑应用,老是会整个容器挂掉自动重启,请问有排查思路或者解决方案吗 ?
BTW: 之前是所有应用 + 中间件都用 Rancher 跑,后面怕是资源问题导致 K3s 节点挂掉重启,已经把中间件迁移走了,现在容器里面跑的是纯业务应用,大概 80 多个 Pod
#Rancher #容器 #中间件 #Docker #K3s #log #挂掉 #排查 #应用 #重启
排查思路为:Docker event ,容器内部 K3s.log ,Rancher log
都没有有效信息,现在测试环境是用 Docker 搭建的单例 Rancher 在跑应用,老是会整个容器挂掉自动重启,请问有排查思路或者解决方案吗 ?
BTW: 之前是所有应用 + 中间件都用 Rancher 跑,后面怕是资源问题导致 K3s 节点挂掉重启,已经把中间件迁移走了,现在容器里面跑的是纯业务应用,大概 80 多个 Pod
#Rancher #容器 #中间件 #Docker #K3s #log #挂掉 #排查 #应用 #重启
来历不明的 buildkitd 容器,请教各位大佬
请教大佬,k8s 集群中有台节点 node01 ,莫名多出一个 buildkitd 容器,容器名为“buildx_buildkit_default”,持续集成使用了 Jenkins slave pod ,所有调度到 node01 的 slave pod 都会构建容器镜像失败。想查出这个容器是哪里来的?是谁创建的(删掉后有 slave pod 调度到该机器依旧会创建出来)?#Kubernetes #docker
请教大佬,k8s 集群中有台节点 node01 ,莫名多出一个 buildkitd 容器,容器名为“buildx_buildkit_default”,持续集成使用了 Jenkins slave pod ,所有调度到 node01 的 slave pod 都会构建容器镜像失败。想查出这个容器是哪里来的?是谁创建的(删掉后有 slave pod 调度到该机器依旧会创建出来)?#Kubernetes #docker
kubeadm init --config [file.yaml] 后实际配置与 yaml 里的配置不符
#### 今天使用 kubeadm reset 后,再使用 kubeadm init 来重新初始化 k8s 时,发现初始化后实际配置跟我 yaml 设定的配置不一样。
#### 具体情况,打个比方:我 yaml 文件里面 criSocket([参考文档]( https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker))配置的是:
```yaml
criSocket: unix:///var/run/cri-dockerd.sock
```
#### 然而实际情况得到的 criSocket 则是:
```yaml
criSocket: unix:///var/run/containerd/containerd.sock
```
##### 下面是我 init 初始化日志&yaml 配置&InitConfiguration 实际配置结果:
- 这是调用 kubeadm init 初始化成功输出(没报错):
```log
root@master1 ~/k8s/]# kubeadm init --config=/root/k8s/kubeadm/config.yaml --upload-certs
[init] Using Kubernetes version: v1.26.0
[preflight] Running pre-flight checks
[WARNING FileExisting-tc]: tc not found in system path
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
...
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
- 这是我的 yaml 配置文件:
```yaml
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
nodeRegistration:
criSocket: unix:///var/run/cri-dockerd.sock
kubeletExtraArgs:
runtime-cgroups: /system.slice/docker.service
pod-infra-container-image: registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
ipvs:
minSyncPeriod: 8s
syncPeriod: 8s
scheduler: 'wrr'
....(省略其他配置)
```
- 这是我运行`kubeadm config print init-defaults`后 输出的实际配置日志
```log
[root@master1 k8s]# kubeadm config print init-defaults
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 1.2.3.4
bindPort: 6443
nodeRegistration:
criSocket: unix:///var/run/containerd/containerd.sock
imagePullPolicy: IfNotPresent
name: node
taints: null
---
.....(省略其他配置)
```
- 大佬们觉得是什么问题,另外大家平时是怎么部署 k8s 集群的,谢谢大家回复。
#### 今天使用 kubeadm reset 后,再使用 kubeadm init 来重新初始化 k8s 时,发现初始化后实际配置跟我 yaml 设定的配置不一样。
#### 具体情况,打个比方:我 yaml 文件里面 criSocket([参考文档]( https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker))配置的是:
```yaml
criSocket: unix:///var/run/cri-dockerd.sock
```
#### 然而实际情况得到的 criSocket 则是:
```yaml
criSocket: unix:///var/run/containerd/containerd.sock
```
##### 下面是我 init 初始化日志&yaml 配置&InitConfiguration 实际配置结果:
- 这是调用 kubeadm init 初始化成功输出(没报错):
```log
root@master1 ~/k8s/]# kubeadm init --config=/root/k8s/kubeadm/config.yaml --upload-certs
[init] Using Kubernetes version: v1.26.0
[preflight] Running pre-flight checks
[WARNING FileExisting-tc]: tc not found in system path
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
...
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
- 这是我的 yaml 配置文件:
```yaml
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
nodeRegistration:
criSocket: unix:///var/run/cri-dockerd.sock
kubeletExtraArgs:
runtime-cgroups: /system.slice/docker.service
pod-infra-container-image: registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
ipvs:
minSyncPeriod: 8s
syncPeriod: 8s
scheduler: 'wrr'
....(省略其他配置)
```
- 这是我运行`kubeadm config print init-defaults`后 输出的实际配置日志
```log
[root@master1 k8s]# kubeadm config print init-defaults
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 1.2.3.4
bindPort: 6443
nodeRegistration:
criSocket: unix:///var/run/containerd/containerd.sock
imagePullPolicy: IfNotPresent
name: node
taints: null
---
.....(省略其他配置)
```
- 大佬们觉得是什么问题,另外大家平时是怎么部署 k8s 集群的,谢谢大家回复。
orbstack 安装 ha&homekit bridge 后,家庭 app 无法扫描到配件
我是在 Macmini 用 orbstack 安装的 Home Assistant Container 。
配置文件参考的 https://www.home-assistant.io/installation/alternative/#docker-compose 。( network_mode 指定了 host )
启动后能够直接通过 http://localhost:8123/访问到 ha 主页,没有问题。但是 homekit bridge 的二维码无法扫描到配件。基本断定是 *mDNS 没有正常在 host 网络广播* 。因为我在另一台 win 下起了个 hap server ,家庭 app 能够正常扫描到配件;在 win 下执行 `dns-sd -B _hap._tcp ` 也看不到诸如 HASS Bridge:21064 这样的记录。(如果 mDNS 广播到了 host 网络上正常是能看到)
一开始查下来的可能原因是,mac 上的 docker 实现不支持 mDNS 。但是根据 orbstack 官网 https://docs.orbstack.dev/docker/host-networking 和 issue https://github.com/orbstack/orbstack/issues/183 ,mDNS 在特定版本后似乎是支持了的。
所以不知道是我哪里配置有问题,还是 mDNS 实现仍有问题?有没有 v 友用的 orbstack 装 ha container ,homekit bridge 能正常扫描到配件?
我是在 Macmini 用 orbstack 安装的 Home Assistant Container 。
配置文件参考的 https://www.home-assistant.io/installation/alternative/#docker-compose 。( network_mode 指定了 host )
启动后能够直接通过 http://localhost:8123/访问到 ha 主页,没有问题。但是 homekit bridge 的二维码无法扫描到配件。基本断定是 *mDNS 没有正常在 host 网络广播* 。因为我在另一台 win 下起了个 hap server ,家庭 app 能够正常扫描到配件;在 win 下执行 `dns-sd -B _hap._tcp ` 也看不到诸如 HASS Bridge:21064 这样的记录。(如果 mDNS 广播到了 host 网络上正常是能看到)
一开始查下来的可能原因是,mac 上的 docker 实现不支持 mDNS 。但是根据 orbstack 官网 https://docs.orbstack.dev/docker/host-networking 和 issue https://github.com/orbstack/orbstack/issues/183 ,mDNS 在特定版本后似乎是支持了的。
所以不知道是我哪里配置有问题,还是 mDNS 实现仍有问题?有没有 v 友用的 orbstack 装 ha container ,homekit bridge 能正常扫描到配件?