1、k8s-server:v1.21.2
2、k8s-client:v1.19.3
3、ktConnect:0.3.6(自测发现Mac不受版本影响)
4、idea:2022.2.3 (不影响)
5、Mac:10.15.7
备注:查看方式 kubectl version、ktctl -v
目的:本地可以直接控制k8s集群
# 官网地址:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-macos/
# 安装最新版本
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
如果需要指定版本,使用下面指令:
# 说明:如果需要下载某个指定的版本,用该指定版本号替换掉命令的这个部分:
$(curl -L -s https://dl.k8s.io/release/stable.txt)。
# 例如:要为 Intel macOS 系统下载 v1.25.0 版本,则输入:
curl -LO "https://dl.k8s.io/release/v1.25.0/bin/darwin/amd64/kubectl"
# 对于 Apple Silicon 版本的 macOS,输入:
curl -LO "https://dl.k8s.io/release/v1.25.0/bin/darwin/arm64/kubectl"
备注:Windows下载雷同,可参考官网
chmod +x ./kubectl
sudo mv kubectl /usr/local/bin/kubectl
kubectl version --client
备注:还有其他安装方式不在此处讲解,上边已附官网地址
mkdir /Users/用户名/.kube
# eg: 用户名为zhangsan
mkdir /Users/zhangsan/.kube
# master节点目录地址
/root/.kube
mv config /root/.kube/
备注:Windows坏境下,也是将config文件放到当前用户目录下的/.kube目录下
kubectl get pods
目的:创建本地与k8s集群通道,可以相互调用,调试代码,但是大多数场景还是本地连接集群较多,此处只讲解从本地到集群的”单向VPN“,如需想了解其他(Exchange/Mesh/Preview),请在评论区留言,本人再分享一篇专辑
# 官网地址:https://alibaba.github.io/kt-connect/#/zh-cn/guide/downloads
$ curl -OL https://github.com/alibaba/kt-connect/releases/download/v0.3.6/ktctl_0.3.6_MacOS_x86_64.tar.gz
tar zxf ktctl_0.3.6_MacOS_x86_64.tar.gz
mv ktctl /usr/local/bin/ktctl
ktctl --version
sudo ktctl -n 命名空间 connect
eg:
sudo ktctl -n test connect
Windows有一些区别,无法直接访问集群内服务,需要做代理,详情请看配置idea
# 访问集群内服务
$ curl http://: #本地直接访问PodIP
$ curl http://: # 本地直接访问ClusterIP
$ curl http://: #使用Service的域名访问
$ curl http://.: #本地访问带有命名空间的service
$ curl http://..svc.cluster.local: #集群dns解析访问
检测完kubectl与ktctl版本没有问题后,如果本地还是无法连接到k8s集群,则是DNS缓存的问题,此时执行一下命令,清除缓存,再重新连接(Windows不存在此情况)
# 版本:Mac OS X 12 (Sierra) and later:
sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcache
# 版本:Mac OS X 11 (El Capitan) and OS X 12 (Sierra):
sudo killall -HUP mDNSResponder
# 版本:Mac OS X 10.10 (Yosemite), Versions 10.10.4+:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
这个要分Mac和Windows来说明:
在本人自测场景下,idea无需配置代理,可直接访问到集群内服务;
原因:本人推测,由于配置了环境变量,做了全局代理,当站点请求集群内部服务时,也会通过VPN隧道;
有不同见解,请在评论区留言,欢迎探讨
需要在启动项目前,配置代理IP和代理端口,否则无法访问到集群内部服务
1、操作如下,需要在idea启动参数中配置如下代理
VM options:-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=2223