Install snap
sudo apt update && sudo apt install snapd
# 没有启动snapd的话,需要先启动一下snapd服务
sudo service snapd start
Install microk8s
另外需要注册,机器的hostname不要有给下划线,不要有横线
sudo snap install microk8s --classic --channel=1.21
Join the group
sudo usermod -a -G microk8s ${USER}
sudo chown -f -R $USER ~/.kube
Create Alias for kubectl
alias kubectl='microk8s kubectl'
echo "alias kubectl='microk8s kubectl'" >> ~/.bash_aliases
修改Sandbox Image
默认的puase镜像是google提供的,国内一般拉不下来。现在用vim编辑/var/snap/microk8s/current/args/containerd-template.toml这个文件,把k8s.gcr.io/pause:3.1 替换为 registry.cn-shenzhen.aliyuncs.com/juxuny-google-containers/pause:3.1
sudo cp /var/snap/microk8s/current/args/containerd-template.toml /var/snap/microk8s/current/args/containerd-template.bk.toml
sudo cat /var/snap/microk8s/current/args/containerd-template.bk.toml |sed -e 's/k8s.gcr.io\/pause:3.1/registry.cn-shenzhen.aliyuncs.com\/juxuny-google-containers\/pause:3.1/g' > /var/snap/microk8s/current/args/containerd-template.toml
修改完就重启一下micok8s
sudo microk8s stop
sudo microk8s start
修改microk8s 里面 DNS 服务
microk8s enable dns
microk8s kubectl -n kube-system edit configmap/coredns
# 需要 rbac的话,这个时候启动,这个版本的microk8s有bug,之前试好多次启动rbac之后 node 变成了NotReady
# 另外需要注册,机器的hostname不要有给下划线,不要有横线
# microk8s enable rbac
把8.8.8.8 和 8.8.4.4 改成自己想要的DNS Server就可以了,阿里云 DNS: 223.5.5.5 223.6.6.6
默认配置信息如下:
apiVersion: v1
data:
Corefile: |
.:53 {
errors
health {
lameduck 5s
}
ready
log . {
class error
}
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . 8.8.8.8 8.8.4.4
cache 30
loop
reload
loadbalance
}
kind: ConfigMap
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","data":{"Corefile":".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n log . {\n class error\n }\n kubernetes cluster.local in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n }\n prometheus :9153\n forward . 8.8.8.8 8.8.4.4\n cache 30\n loop\n reload\n loadbalance\n}\n"},"kind":"ConfigMap","metadata":{"annotations":{},"labels":{"addonmanager.kubernetes.io/mode":"EnsureExists","k8s-app":"kube-dns"},"name":"coredns","namespace":"kube-system"}}
creationTimestamp: "2021-06-20T10:01:55Z"
labels:
addonmanager.kubernetes.io/mode: EnsureExists
k8s-app: kube-dns
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:data:
.: {}
f:Corefile: {}
f:metadata:
f:annotations:
.: {}
f:kubectl.kubernetes.io/last-applied-configuration: {}
f:labels:
.: {}
f:addonmanager.kubernetes.io/mode: {}
f:k8s-app: {}
manager: kubectl
operation: Update
time: "2021-06-20T10:01:55Z"
name: coredns
namespace: kube-system
resourceVersion: "38981300"
selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
uid: a5a21628-9b13-4fda-8b6f-d019f32b9d43