🐐 kubernetes
# kubernetes安装
参考教程为:[k8s教程](https://k8s.easydoc.net/docs/dRiQjyTY/28366845/6GiNOzyZ/nd7yOvdY)
## 腾讯云
我尝试过使用虚拟机的方式,但是我用不来虚拟机,虚拟机的复制粘贴很不方便,要想使用虚拟机得使用ssh进行连接,但是网络是一大难题。我ssh连接不上。甚至宿主机ping不通虚拟机。
我尝试过使用容器的方式,但是找不到合适的镜像,从头搭起的话,经常遇到网络状况不好的情况,耗时耗力。
微软云有200美金的免费额度,各个方面的新手教程非常好,只可惜网络不是很通,不知道什么原因本地ssh就是连接不上。难道是被墙了?ssh我也不知道怎么走代理。
最终选择了腾讯云,腾讯云三台云虚拟机的价格最便宜的是5毛钱一小时,三台就是1.5元/小时,预计要花掉20多元吧。
腾讯云的体验不错,有香港地区的,网络非常通畅!
## Kubernetes
粗略理解一下,kubernetes是用来管理容器的软件,和常见的软件不同,kubernetes经常被部署在一个集群中,而不是仅仅一台电脑。
kubernetes的安装可以通过yum进行,要同时安装在多台计算机上。
>i 注:教程是CentOS,我最开始是使用Ubuntu去部署的,但是有一些差异,在Ubuntu上遇到了无法解决的错误。我使用的CentOS系统是7.9
在每台机器上安装好了kubernetes之后,需要对docker进行设置,
```
# 设置自动启动
systemctl enable kubelet
systemctl start kubelet
systemctl enable docker
systemctl start docker
# 修改 docker 配置(所有节点)
# kubernetes 官方推荐 docker 等使用 systemd 作为 cgroupdriver,否则 kubelet 启动不了
# 可以设置成bash文件
cat <<EOF > daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://ud6340vz.mirror.aliyuncs.com"]
}
EOF
mv daemon.json /etc/docker/
# 重启生效
systemctl daemon-reload
systemctl restart docker
```
在每台机器上安装好了kubernetes之后,可以指定一台机器为master,master进行初始化,然后其他node运行指令加入master
初始化集群方法:
```
# 初始化集群控制台 Control plane
# 失败了可以用 kubeadm reset 重置
kubeadm init --image-repository=registry.aliyuncs.com/google_containers
# 记得把 kubeadm join xxx 保存起来
# 忘记了重新获取:kubeadm token create --print-join-command
# 复制授权文件,以便 kubectl 可以有权限访问集群
# 如果你其他节点需要访问集群,需要从主节点复制这个文件过去其他节点
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
# 在其他机器上创建 ~/.kube/config 文件也能通过 kubectl 访问到集群
```
```
kubeadm join 172.19.0.3:6443 --token mo855j.0a3kzgpxs7hof3if --discovery-token-ca-cert-hash sha256:0aa70186abc124e25c5c93d9f35ec8c21cad18721934f752b86bb5851f300fed
```
使用命令`kubectl get node`查看各个节点的情况,此时节点应该是处于`Not Ready`的状态,然后需要安装网络插件。(主节点)
```
# 很有可能国内网络访问不到这个资源,你可以网上找找国内的源安装 flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 如果上面的插件安装失败,可以选用 Weave,下面的命令二选一就可以了。
kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
kubectl apply -f http://static.corecore.cn/weave.v2.8.1.yaml
# 更多其他网路插件查看下面介绍,自行网上找 yaml 安装
https://blog.csdn.net/ChaITSimpleLove/article/details/117809007
```
至此,k8s就已经安装好了。