开发 Tips(11)

2023年 1月 4日 45.3k 0

主要记录最近遇到的一些开发问题,解决方法。

1. 打开 OS X 原生 NTFS 支持

  • 插上磁盘,查看盘符
  • 1
    2
    3
    4
    5
    6
    
    diskutil list
    diskutil list
    /dev/disk2 (external, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:     FDisk_partition_scheme                        *96.9 GB   disk2
       1:               Windows_NTFS SSD                      96.8 GB   disk2s1
    

    这里的 SSD 就是 Volume Name。

  • 更新 /etc/fstab文件
  • 1
    
    sudo nano /etc/fstab
    

    输入密码,然后输入 LABEL=SSD none ntfs rw,auto,nobrowse,其中 SSD 为 Volume Name。按 Ctrl + X,接着按 Y 保存。

  • 创建访问链接
  • 1
    
    sudo ln -s /Volumes/SSD ~/Desktop/SSD
    

    SSD 为 Volume Name ,需要更具具体情况替换。

    2. Docker 内部访问宿主机服务

    在 Docker 中,直接使用 localhost 访问宿主机服务,报错网络不通,需要借助 docker0 。

    • 在 Linux 中,查看宿主机 docker0 的 IP 地址,执行命令:
    1
    
    ip addr show docker0
    
    • 在 OS X 中,可以直接使用地址。
    1
    
    docker.for.mac.host.internal
    

    3. Kubectl 配置多个集群

    在进行 Kubernetes 相关开发时,通常会涉及多个集群的管理。Kubectl 提供了多集群上下文管理的功能。通常 Kubectl 的配置信息在 $HOME/.kube/config/etc/kubernetes/admin.conf 。登陆机器,查看集群的配置信息,按照下面的格式进行编辑。kubeconfig 配置格式

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    apiVersion: v1
    kind: Config
    preferences: {}
    
    clusters:
    - cluster:
        certificate-authority-data: xxx
        server: xxx
      name: {cluster-name1}
    - cluster:
        certificate-authority-data: xxx
        server: xxx
      name: {cluster-name2}
    
    users:
    - name: {user-name1}
      user: xxx
    - name: {user-name2}
      user: xxx
    
    contexts:
    - context:
        cluster: {cluster-name1}
        user: {user-name1}
      name: {context-name1}
    - context:
        cluster: {cluster-name2}
        user: {user-name2}
      name: {context-name2}
    
    current-context: {context-name1}
    

    查看集群

    1
    
    kubectl config get-contexts
    

    查看 config 信息

    1
    
    kubectl config view
    

    切换集群

    1
    
    kubectl config use-context {context-name}
    

    4. helm 提示 cannot get resource “namespaces”

    使用 helm 安装应用:

    1
    2
    
    helm install --name prometheus-operator --namespace=monitoring stable/prometheus-operator
    Error: namespaces "monitoring" is forbidden: User "system:serviceaccount:kube-system:default" cannot get resource "namespaces" in API group "" in the namespace "monitoring"
    

    解决办法,添加服务账号:

    1
    2
    3
    
    kubectl create serviceaccount --namespace kube-system tiller
    kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
    kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
    

    相关文章

    KubeSphere 部署向量数据库 Milvus 实战指南
    探索 Kubernetes 持久化存储之 Longhorn 初窥门径
    征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
    那些年在 Terraform 上吃到的糖和踩过的坑
    无需 Kubernetes 测试 Kubernetes 网络实现
    Kubernetes v1.31 中的移除和主要变更

    发布评论