V2EX hejw19970413
 hejw19970413 最近的时间轴更新
注册了 V2EX
2020-04-28 14:39:31 +08:00
hejw19970413

hejw19970413

V2EX 第 486683 号会员,加入于 2020-04-28 09:41:26 +08:00
请教一下 Mybatis Mapper SQL
程序员    hejw19970413    364 天前    最后回复来自 montaro2017
15
请教一下 oracle 协议解析
程序员    hejw19970413    2024-10-31 16:26:29 PM    最后回复来自 hasdream
14
kubebuilder 创建的 webhook 不生效
程序员    hejw19970413    2021-09-15 17:17:52 PM    最后回复来自 hejw19970413
2
怎么在 V2EX 里面的正文添加图片
新手求助    hejw19970413    2021-07-26 11:41:37 AM    最后回复来自 CEBBCAT
3
如何把 http 请求转成对应的 rpc 请求。
  •  1   
    程序员    hejw19970413    2021-07-19 19:21:10 PM    最后回复来自 NCE
    25
    996 大小周的公司值得长时间待吗,如想走多久可以走?
  •  1   
    程序员    hejw19970413    2020-12-22 15:32:27 PM    最后回复来自 zhuweiyou
    19
    为什么 LeetCode 中文站的题目都变成了英文?
    程序员    hejw19970413    2020-09-26 12:29:42 PM    最后回复来自 youxiachai
    5
    LeetCode 程序员兄弟可能要罚钱了,心疼你们
    无要点    hejw19970413    2020-08-05 11:58:54 AM    最后回复来自 xdxtao
    26
    hejw19970413 最近回复了
    20 天前
    回复了 coverme7 创建的主题 生活 大家会让另一半看你手机吗?
    随便看,主要是懒的看。
    26 天前
    回复了 sakurawzt 创建的主题 Kubernetes 求份搭建高可用 k8s 的教程
    自己玩可以如果企业搭建先建 ETCD ,家里玩尽量用 Debian ,Ubuntu 等用的比较多的,别弄国产
    要先弄 Keeplived + HA

    *前提:*

    ```
    1. 选择官方推荐版本并且不要选择最新版的
    2. 国内存在着镜像拉取问题
    3. 如果服务没起来需要看一下 containerd 服务
    ```

    *准备工作:*

    ```
    1. 确定机器的信息,操作系统,CPU 架构
    1. 操作系统
    2. CPU 架构
    2. 时区设置
    1. 配置系统时区: timedatectl set-timezone Asia/Shanghai
    2. 设置本地 RTC 为 0: timedatectl set-local-rtc 0
    3. 验证时区设置: timedatectl show --property=Timezone
    4. 验证 RTC 设置: timedatectl show --property=RTC
    3. 加载内核模块
    *需要加载['br_netfilter', 'overlay']*
    1. 查看/etc/modules-load.d,目录是否存在内核模块文件: ls /etc/modules-load.d/ | grep "k8s.conf"
    2. 如果不存在
    1. 创建模块加载配置文件: vi k8s.conf
    2. 写入模块加载文件:tee >

    <<EOF br_netfilter \n overlay \n EOF
    3. 临时加载模块: modprobe overlay br_netfilter
    4. 加载模块:

    5. 验证模块是否成功加载

    4. 关闭防火墙
    1. 常用的防火墙: ['firewalld', 'ufw', 'iptables']
    2. 检查服务是否运行: systemctl is-active <service-name>
    3. 禁用防火墙服务
    1. 停止服务: systemctl stop <service-name>
    2. 禁止开机自启: systemctl disable <serivce-name>
    4. 额外操作:
    firewalld: firewall-cmd --state && firewall-cmd --permanent --shutdown
    ufw: ufw disable
    iptables: iptables -F && iptables -X && iptables -t nat -F && iptables -t nat -X && iptables -t mangle -F && iptables -t manage -X
    5. 交换分区
    1. 检查交换分区: free -h && swapon --show
    2. 临时关闭交换分区: swapoff -a
    3. 永久关闭交换分区
    1. 注释掉

    文件中关于 swap 的配置:

    6. 修改内核参数:
    1. net.bridge.bridge-nf-call-ip6tables = 1
    2. net.bridge.bridge-nf-call-iptables = 1
    3. net.ipv4.ip_forward = 1
    ```

    *部署组件:*

    ````
    Dokcer [https://download.docker.com/linux/static/stable/]( https://download.docker.com/linux/static/stable/?_gl=1*1w17yhs*_ga*OTg3MzYwNS4xNzQzOTA0MTQ2*_ga_XJWPQMJYHQ*MTc0NDYwMDEwMC4zLjEuMTc0NDYwMDExNi40NC4wLjA.)

    ```
    export KUBE_VERSION=<version>
    export ARCH=<arch>
    export KUBEADM_URL=https://dl.k8s.io/release/<KUBE_VERSION>/bin/linux/<ARCH>/kubeadm
    export KUBECTL_URL=https://dl.k8s.io/release/<KUBE_VERSION>/bin/linux/<ARCH>/kubectl
    export KUBELET_URL=https://dl.k8s.io/release/<KUBE_VERSION>/bin/linux/<ARCH>/kubelet
    ```

    1. 安装 Docker:
    1. 下载安装包: curl -OL <docker_url>
    2. 解压安装包: tar -xf <tar_name> && sudo mv docker/* /usr/local/bin/
    2. 安装 kubeadm,kubectl,kubelet:
    1. 下载二进制: curl -OL $(echo $KUBEADM_URL) && curl -OL $(echo $KUBECTL_URL) && curl -OL $(echo $KUBECTL_URL)
    2. 移动文件位置: chmod +x kubeadm kubectl kubelet && sudo mv kubeadm kubectl kubelet /usr/local/bin/
    3. 创建 containerd.service:
    1. 创建 containerd 配置文件:

    2. 创建 containerd 服务文件:

    ```
    [Unit]
    Description=containerd container runtime
    Documentation=https://containerd.io
    After=network.target local-fs.target
    Wants=network.target

    [Service]
    Type=notify
    ExecStartPre=-/sbin/modprobe overlay
    ExecStart=/usr/local/bin/containerd
    TimeoutStartSec=0
    RestartSec=10
    Restart=always
    Delegate=yes
    KillMode=process
    OOMScoreAdjust=-999
    LimitNOFILE=1048576
    LimitNPROC=infinity
    LimitCORE=infinity
    TasksMax=infinity
    EnvirOnment="CGROUP_DRIVER=systemd"

    [Install]
    WantedBy=multi-user.target
    ```
    4. 创建 docker.service:
    1. 创建 docker 服务文件: /etc/systemd/system/docker.service
    ```
    [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    BindsTo=container.service
    After=network-online.target containerd.service
    Wants=network-online.target

    [Service]
    Type=notify
    ExecStart=/usr/local/bin/dockerd --cOntainerd=/run/containerd/containerd.sock
    Restart=always
    RestartSec=5
    TimeoutStartSec=0
    Delegate=yes
    KillMode=process
    OOMScoreAdjust=-999
    LimitNOFILE=1048576
    LimitNPROC=infinity
    LimitCORE=infinity
    TasksMax=infinity
    EnvirOnmentFile=-/etc/docker/daemon.json

    [Install]
    WantedBy=multi-user.target
    ```
    5. 创建 kubeadm-kubelet 配置:
    1. 创建 kubeadm-kubelet: /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
    ```
    EnvirOnment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubecOnfig=

    /bootstrap-kubelet.conf --kubecOnfig=/etc/kubernetes/kubelet.conf"
    EnvirOnment="KUBELET_CONFIG_ARGS=--cOnfig=/var/lib/kubelet/config.yaml"
    EnvirOnmentFile=-/var/lib/kubelet/kubeadm-flags.env
    EnvirOnmentFile=-/etc/sysconfig/kubelet
    ExecStart=
    ExecStart=/usr/local/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
    ```
    6. 创建 kubelet.service:
    *非必须*
    1.创建 kubelet 服务文件: /etc/systemd/system/kubelet.service
    ```
    [Unit]
    Description=kubelet: The Kubernetes Node Agent
    Documentation=https://kubernetes.io/docs/home/
    Wants=network-online.target
    After=network-online.target

    [Service]
    ExecStart=/usr/local/bin/kubelet
    Restart=always
    StartLimitInterval=0
    RestartSec=10

    [Install]
    WantedBy=multi-user.target
    ```
    7. 启动服务
    1. 重载 systemd 配置: systemctl daemon-reload
    2. 组件加入开机自启:
    1. containerd: systemctl enable --now containerd.service
    2. docker: systemctl enable --now docker.service
    3. kubelet: systemctl enable --now kubelet.service
    ````

    *部署 k8s*

    ````
    ```bash
    #!/bin/bash
    # 这里因为环境的不同的只提供一个基础的模版
    # <*> 需要按环境替换
    # <cri_socket> 默认地址: unix:///run/containerd/containerd.sock
    # <controlPlaneEndpoint> 部署多 master 需要这个控制平台地址不能为空
    # <san> apiservice 通过证书 san 校验,被请求的地址是否在证书内
    # <serviceSubnet> k8s 服务网络段
    # <podSubnet> k8s Pod 网络段
    # <etcd_data_dir> etcd 存储的地址
    # 具体的配置可以仔细阅读 https://kubernetes.io/zh-cn/docs/reference/setup-tools/kubeadm

    tee kubeadm-init.conf << EOF
    apiVersion: kubeadm.k8s.io/v1beta4
    bootstrapTokens:
    - groups:
    - system:bootstrappers:kubeadm:default-node-token
    token: <bootstrapTokens_token>
    ttl: 24h0m0s
    usages:
    - signing
    - authentication
    kind: InitConfiguration
    localAPIEndpoint:
    advertiseAddress: <localAPIEndpoint>
    bindPort: <bind_port>
    nodeRegistration:
    criSocket: <cri_socket>
    imagePullPolicy: IfNotPresent
    imagePullSerial: true
    timeouts:
    controlPlaneComponentHealthCheck: 4m0s
    discovery: 5m0s
    etcdAPICall: 2m0s
    kubeletHealthCheck: 4m0s
    kubernetesAPICall: 1m0s
    tlsBootstrap: 5m0s
    upgradeManifests: 5m0s
    ---
    apiVersion: kubeadm.k8s.io/v1beta4
    certificatesDir: /etc/kubernetes/pki
    clusterName: kubernetes
    apiServer:
    certSANs:
    - <san>
    controlPlaneEndpoint: <controlPlaneEndpoint>
    controllerManager: {}
    dns: {}
    encryptionAlgorithm: RSA-2048
    etcd:
    local:
    dataDir: <etcd_data_dir>
    imageRepository: registry.k8s.io
    kind: ClusterConfiguration
    kubernetesVersion: 1.32.3
    networking:
    dnsDomain: cluster.local
    serviceSubnet: <serviceSubnet>
    podSubnet: <podSubnet>
    proxy: {}
    scheduler: {}
    ---
    apiVersion: kubeproxy.config.k8s.io/v1alpha1
    kind: KubeProxyConfiguration
    mode: "iptables"
    EOF

    # 启动 k8s
    kubeadm init --config kubeadm-init.conf
    ```

    # 后续: 可以根据需要部署 CNI,CSI

    # CNI:
    # export calico_version=v3.27.4
    # calico : https://raw.githubusercontent.com/projectcalico/calico/$calico_version/manifests/calico.yaml

    # CSI: NFS 这个很简单!,CEPH 部署麻烦些
    ````

    *额外的说明*

    ```
    *k8s 加入节点*
    1. 如果初始化的没有配置 controlPlaneEndpoint ,现在需要加 master 节点
    1. 配置控制平面地址: kubeadm init --control-plane-endpoint <control-plane-endpoint> --upload-certs
    2. 加入 control_plane
    1. 创建新的令牌: kubeadm token create --print-join-command --certificate-key $(kubeadm init phase upload-certs --upload-certs | tail -n 1)
    3. 加入 worker
    1. 创建新的令牌: kubeadm token create --print-join-command

    *k8s 镜像*
    1. 查看镜像:kubeadm config images list
    ```
    升级不如重写,重写不如不写
    Thinkpad 在 Linux 节能和待机上,有少许问题。其他都 OK
    63 天前
    回复了 samkallon 创建的主题 生活 要不要卖房
    1. 股市有风险,投资需谨慎
    2. 有孩子的情况下,需要考虑户口上学

    如果你认为房子是用来住的,就不要考虑价格问题

    可以这么想,你现在的房子就是租的,每年跌的钱就是租房的钱。这样考虑心里会不会好受点。

    最最最重要是家庭和谐。
    63 天前
    回复了 breadykidliu 创建的主题 问与答 关于退休后有一个大胆的猜测
    我今天思考了一下,预估计我退休大概得 70 多,97 年人。
    ky10.aarch64
    Kunpeng-920
    公司选的
    364 天前
    回复了 dreamdragon 创建的主题 程序员 ceph 生产环境搭建和配置推荐
    不会就默认!
    364 天前
    回复了 hejw19970413 创建的主题 程序员 请教一下 Mybatis Mapper SQL
    @lpe234 这两个项目我试过了,解析不出来
    2024-11-25 15:54:21 +08:00
    回复了 hejw19970413 创建的主题 程序员 请教一下 Mybatis Mapper SQL
    其实我是想直接把 SQL 给弄出来,不想去执行,因为还有一个要求是写个文档,领导要看,我要是执行的来说,里面有好多的判断啥的,得处理好多得查询条件。
    @wymisgod
    @liuzhedash
    @qq135449773
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1029 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 19ms UTC 18:34 PVG 02:34 LAX 10:34 JFK 13:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86