使用kind创建K8S
安装kind:
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/bin/kind
安装kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
创建K8S集群:
kind create cluster --name myk8s
安装azure cli
参考:https://learn.microsoft.com/zh-cn/cli/azure/install-azure-cli-linux?pivots=script
安装python3
安装工具
yum -y groupinstall "Development tools"
安装依赖
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y
下载源码
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
编译
./configure --prefix=/usr/local/python3
make && make install
安装后还需要创建软连接
rm -rf /usr/bin/python
ln -s /usr/local/python3/bin/python3 /usr/bin/python
(如果要恢复为python2,ln -s /usr/bin/python2 /usr/bin/python)
替换后使用yum会失败,因为yum需要python2,需要修改yum:
vi /usr/bin/yum
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/bin/yum-config-manager
#!/usr/bin/python 改为 #!/usr/bin/python2
安装az cli
curl -L https://aka.ms/InstallAzureCli | bash
整个安装耗时很长
添加集群
在azure arc界面添加本地集群,会生成一段脚本
# 此脚本创建用于将 Kubernetes 群集连接到 Azure 的 Azure Arc 资源
# 文档: https://aka.ms/AzureArcK8sDocs
# 登录 Azure
az login
# 设置 Azure 订阅
az account set --subscription a62cf54a-a61e-46aa-af7d-XXX
# 创建已连接群集
az connectedk8s connect --name myK8S --resource-group grp1 --location eastasia --correlation-id c18ab9d0-685e-48e7-XXX --tags Datacenter='' City=''
拷贝这段脚本执行,又是漫长的等待。。。。
脚本:
通过 KUBECONFIG、~/.kube/config 或 --kube-config 检查群集与 Azure Arc 的连接
通过 Helm 3 将 Azure Arc 代理部署到 azure-arc 命名空间。
执行脚本过程中可能会报错Microsoft.KubernetesConfiguration provider is not registered
执行命令进行注册
az provider register -n 'Microsoft.Kubernetes'
az provider register -n 'Microsoft.KubernetesConfiguration'
接入成功后可以在界面看到:
接入后monitor默认是没有的,只能看到集群的基本信息,看不到集群里的pod容器,需要手动开启monitor
接入容器监控
az k8s-extension create --name azuremonitor-containers --cluster-name myK8S --resource-group grp1 --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID="/subscriptions/a62cf54a-a61e-46aa-af7d-48d8a5919c31/resourcegroups/grp1/providers/microsoft.operationalinsights/workspaces/loganalytics1"
等待时间比较长。。。
执行成功后,可以看到创建了监控相关的pod:
进入monitor容器监控页面:
总结:本地K8S接入azure还是很方便的(而且是免费),只需要几个简单的命令。不过安装azure cli耗时比较长。