1.查看本地已运行的镜像状态
systemctl status containerd
///usr/bin/containerd-shim-runc-v2 -namespace k8s.io -id *****
nerdctl ps --namespace k8s.io
2.选择网络启动镜像
sudo nerdctl network ls
sudo nerdctl run -it --name busybox --network=host core.harbor.shell.com:443/library/busyboxtools:v1 /bin/bash
3.常用命令
//查看当前网络
sudo nerdctl network ls
//删除指定网络
sudo nerdctl network rm <network_name>
//
nslookup example.com <DNS服务器IP>
//查看 Pod 的网络策略
kubectl get networkpolicies
kubectl get networkpolicies -n <namespace>
//查看所有支持的资源
kubectl api-resources
//保存镜像到本地
docker save -o my_image.tar my_image:tag
//强制删除镜像
nerdctl rmi --force <IMAGE_ID>
//查看当前运行的镜像
nerdctl images --namespace=k8s.io
//查看命名空间
sudo nerdctl namespace list
//上传由yaml文件下拉的镜像
sudo nerdctl -n k8s.io tag docker.m.daocloud.io/grafana/grafana:10.4.0 core.harbor.shell.com:443/istio/grafana:10.4.0
nerdctl --insecure-registry --namespace=k8s.io push core.harbor.shell.com:443/istio/grafana:10.4.0
4、网络查看
//查看当前网络工作模式
calicoctl get ippool default-ipv4-ippool -o yaml
(vxlan、bgp、ipip、直接路由、ebpf、vpp模式)
//查看当前网络配置(vxlan)
calicoctl get felixconfiguration default -o yaml
//查看集群bgp的状态信息
calicoctl node status
5、启动并应用istio的Ambient 模式
要在 Ambient 模式下将应用或命名空间添加到网格, 请将 istio.io/dataplane-mode=ambient
标签添加到相应的资源。 您可以将此标签应用于命名空间或单个 Pod。
确定 Pod 是否设置为使用 Ambient 模式的具体逻辑如下:
-
cni.values.excludeNamespaces
中被配置的istio-cni
插件排除列表用于跳过排除列表中的命名空间。 -
Pod 使用
ambient
模式,如果:- 命名空间或 Pod 具有
istio.io/dataplane-mode=ambient
标签 - Pod 没有选择移除
istio.io/dataplane-mode=none
标签 - Pod 上不存在
sidecar.istio.io/status
注解
- 命名空间或 Pod 具有
避免配置冲突的最简单选项是用户确保对于每个命名空间,它要么具有 Sidecar 注入标签(istio-injection=enabled
), 要么具有 Ambient 模式标签(istio.io/dataplane-mode=ambient
),但绝不能两者兼而有之。
//查看命名空间是否是Ambient 模式
kubectl get ns -L istio.io/dataplane-mode
NAME STATUS AGE DATAPLANE-MODE
calico-apiserver Active 6d22h
calico-system Active 50d
default Active 50d ambient
istio-system Active 32d
kube-node-lease Active 50d
kube-public Active 50d
kube-system Active 50d
kubernetes-dashboard Active 34d
tigera-operator Active 50d
traefik Active 10d
6、istio流量控制
waypoint 代理是基于 Envoy 代理的可选部署,用于将 Layer 7(L7)处理添加到一组定义的工作负载中。
当您配置重定向到某个 waypoint 时,流量将由 ztunnel 转发到该 waypoint。 如果您的应用需要以下任一 L7 网格功能,您将需要使用 waypoint 代理:
- 流量管理:HTTP 路由和负载均衡、熔断、限流、故障注入、重试、超时
- 安全性:基于请求类型或 HTTP 头等 L7 原装特性的丰富授权策略
- 可观察性:HTTP 指标、访问日志、链路追踪
istioctl
可以为 waypoint 代理生成 Kubernetes Gateway 资源。 例如,要为 default
命名空间生成名为 waypoint
的 waypoint 代理,该代理可以处理命名空间中这些服务的流量
kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \ { kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.1.0/standard-install.yaml; }
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
labels:
istio.io/waypoint-for: service
name: waypoint
namespace: default
spec:
gatewayClassName: istio-waypoint
listeners:
- name: mesh
port: 15008
protocol: HBONE
请注意,Gateway 资源具有设置为 gatewayClassName
的 istio-waypoint
标签, 这表明它是 Istio 所提供的 waypoint。Gateway 资源标有 istio.io/waypoint-for: service
, 表示该 waypoint 默认可以处理这些服务的流量。
要使命名空间、服务或 Pod 能够使用 waypoint, 请添加 istio.io/use-waypoint
标签,取值为 waypoint 名称。
kubectl label ns default istio.io/use-waypoint=waypoint
7、kiali没有配置grafana
Grafana URL is not set in Kiali configuration-CSDN博客
8、删除悬挂镜像
悬挂镜像就是显示<none>的镜像
查看悬挂镜像:sudo nerdctl image ls -q --filter dangling=true --namespace=k8s.io
删除悬挂镜像:sudo nerdctl image prune --namespace=k8s.io
9、指定证书访问
curl -v --cacert ./core.harbor.shell.com.crt https://core.harbor.shell.com:443
10、强制pod下线上线
kubectl rollout restart deploy *** -n ***