Please enable Javascript to view the contents

开发 Tips(11)

 ·  ☕ 2 分钟

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

1. 打开 OS X 原生 NTFS 支持

  1. 插上磁盘,查看盘符
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。

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

输入密码,然后输入 LABEL=SSD none ntfs rw,auto,nobrowse,其中 SSD 为 Volume Name。

按 Ctrl + X,接着按 Y 保存。

  1. 创建访问链接
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"}}}}'

微信公众号
作者
微信公众号