k8s学习——基础知识

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 模式的具体逻辑如下:

  1. cni.values.excludeNamespaces 中被配置的 istio-cni 插件排除列表用于跳过排除列表中的命名空间。

  2. Pod 使用 ambient 模式,如果:

    • 命名空间或 Pod 具有 istio.io/dataplane-mode=ambient 标签
    • Pod 没有选择移除 istio.io/dataplane-mode=none 标签
    • Pod 上不存在 sidecar.istio.io/status 注解

避免配置冲突的最简单选项是用户确保对于每个命名空间,它要么具有 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 *** 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值