microk8s 1.14本地Registry及DNS配置

Microk8s从1.14开始用containerd代替自带的microk8s.docker。介绍了使用本地Registry加速镜像的方法,在k8s yaml中使用localhost:32000/newtag即可;还提及无法使用ClusterFirstWithHostNet时启用DNS的操作,以及无法解析本地DNS时添加自定义DNS的情况。

microk8s 从1.14 开始, 使用containerd 代替原来自带的microk8s.docker, 据说是出于性能和与主机docker共存的考虑.

使用本地Registry加速镜像

microk8s.enable registry
docker tag 主机镜像  localhost:32000/newtag
docker push localhost:32000/newtag

然后在k8s yaml中使用 localhost:32000/newtag 即可

无法使用ClusterFirstWithHostNet

启用DNS: microk8s.enable dns

无法解析本地DNS

有时单位或家中配置了一些自定义的DNS, 而microk8s 仅配置了两个公网DNS: "8.8.8.8", "8.8.4.4", 想要添加自定义DNS, 可以这样:

kubectl -n kube-system edit configmap/kube-dns

转载于:https://www.cnblogs.com/qianyuming/p/10832265.html

<think>嗯,用户想在AnolisOS上配置MicroK8s,需要一个安装和配置的指南或教程。用户引用了几个资料:1Panel面板安装、AnolisOS系统部署、KVM安装和DRBD配置,这些引用提供了在AnolisOS上安装软件的背景知识,但核心诉求是MicroK8s。从引用的资料看,用户似乎具备服务器运维基础,习惯命令行操作,可能正在构建云原生环境。引用[3]提到调整SELinux策略的经验,说明用户了解系统安全配置的权衡。用户的问题需要分层解决:第一步是MicroK8s的基本安装,需要处理软件源适配问题;第二步是网络和存储配置,引用[4]涉及的DRBD存储方案或许能作为持久化存储的备选方案;第三步要解决容器运行时兼容性,MicroK8s默认用containerd,但引用提到的KVM虚拟化环境可能有特殊需求。关键挑战在于MicroK8s官方没有AnolisOS的现成支持。参考引用[1][4]中通过Epel或第三方源安装软件的模式,可能需要从Ubuntu适配。考虑到Anolis属于CentOS系,最好用snapd安装MicroK8s,不过要先验证snap在Anolis的兼容性。用户没有明确用途,但MicroK8s适合边缘计算场景,引用[2]的系统配置步骤提示需要特别关注防火墙设置——龙蜥默认的firewalld可能与MicroK8s端口冲突。另外引用[3]的安全策略建议需要融入,在SELinux环节要给出具体命令而非简单建议禁用。</think> 以下是针对**Anolis OS**安装配置**MicroK8s**的完整指南(基于其与RHEL/CentOS的兼容性设计): --- ### 一、安装前准备 1. **系统更新** ```bash sudo dnf update -y && sudo reboot ``` 2. **安装必备工具** ```bash sudo dnf install -y snapd epel-release sudo systemctl enable --now snapd.socket ``` 3. **启用SELinux兼容模式** ```bash sudo setenforce 0 # 临时关闭(可选) sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config # 永久改为宽容模式 ``` --- ### 二、安装MicroK8s ```bash sudo snap install microk8s --classic --channel=1.28/stable ``` > ⚠️ **关键配置调整**(解决Anolis环境适配): > ```bash > sudo echo "export PATH=\$PATH:/snap/bin" >> /etc/profile # 添加snap路径 > sudo usermod -aG microk8s $USER # 当前用户加入microk8s组 > newgrp microk8s # 刷新用户组 > ``` --- ### 三、启动与基础配置 ```bash sudo microk8s start # 启动集群 microk8s status --wait-ready # 等待就绪(约1-3分钟) ``` **启用核心插件**: ```bash microk8s enable dns storage ingress dashboard ``` --- ### 四、网络与存储优化 1. **修正CNI冲突** ```bash sudo iptables -P FORWARD ACCEPT # 开启端口转发 sudo microk8s disable ha-cluster # 单节点建议禁用高可用 ``` 2. **配置本地存储**(参考DRBD逻辑[^4]) ```bash sudo mkdir /var/snap/microk8s/common/default-storage sudo microk8s kubectl apply -f - <<EOF apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-storage provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer EOF ``` --- ### 五、访问Kubernetes Dashboard 1. **获取Token** ```bash microk8s kubectl -n kube-system describe secret $(microk8s kubectl -n kube-system get secret | grep default-token | awk '{print $1}') | grep "token:" ``` 2. **开启代理访问** ```bash microk8s kubectl port-forward -n kube-system service/kubernetes-dashboard 10443:443 --address 0.0.0.0 ``` > 浏览器访问:`https://<服务器IP>:10443` --- ### 六、验证安装 ```bash microk8s kubectl get all -A # 查看全部资源 microk8s kubectl get sc # 检查存储类 curl -sL https://debug.microk8s.io | sudo sh # 官方诊断工具 ``` --- ### 已知问题解决方案 | 问题现象 | 修复命令 | |---------|---------| | **coredns CrashLoopBackOff** | `sudo microk8s reset && sudo microk8s start` | | **端口冲突(8080/6443)** | `sudo snap stop microk8s && sudo snap start microk8s --disable-port-check` | | **SELinux阻止容器启动** | `sudo ausearch -c 'k8s' --raw | audit2allow -M mypolicy && sudo semodule -i mypolicy.pp` | > 📌 **重要提示**:生产环境建议参考龙蜥官方安全加固指南[^2][^3],特别是: > - 恢复SELinux为`enforcing`模式后需按需定制策略 > - 使用`firewalld`精确开放端口(非默认放行所有) --- ### 性能调优建议 ```bash echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf # 减少Swap使用 sudo sysctl -p sudo microk8s stop sudo sed -i 's/--cluster-dns=.*/--cluster-dns=10.152.183.10 --max-pods=250/' /var/snap/microk8s/current/args/kubelet sudo microk8s start ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值