kubeadm安装k8s系列(三):安装kubernetes基础组件以及calico网络插件
2020-06-08 04:33
585 查看
概述
kubeadm安装k8s系列(一):初始化安装环境
kubeadm安装k8s系列(二):docker以及kubeadm,kubelet,kubectl的安装
kubeadm init
1.查看网络占用
执行命令
ip addr
如上图:192.168.100.0网段和172.17.0.0网段均被占用.我们选用一个跟他们不冲突的网段
172.20.0.0/16(或者其他网段也可以)作为init命令的
pod-network-cidr参数的值
选用的网段内的ip地址一定不能与已经存在的有冲突.否则后续必出错
2.拉取镜像
kubernetes的某些镜像在国内访问不到,需要换种方式拉取,在这里使用阿里的镜像源(registry.cn-hangzhou.aliyuncs.com/google_containers)拉取下来,然后利用
docker tag命令修改即可
[root@master ~]# kubeadm config images list W0517 05:00:48.849105 57199 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io] k8s.gcr.io/kube-apiserver:v1.18.2 k8s.gcr.io/kube-controller-manager:v1.18.2 k8s.gcr.io/kube-scheduler:v1.18.2 k8s.gcr.io/kube-proxy:v1.18.2 k8s.gcr.io/pause:3.2 k8s.gcr.io/etcd:3.4.3-0 k8s.gcr.io/coredns:1.6.7 [root@master ~]#
如上,执行
kubeadm config images list就能列出需要的镜像.
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.2 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.2 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.2 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.2 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7
使用
docker tag命令修改,并使用
docker rmi命令移除原有的镜像
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.2 k8s.gcr.io/kube-apiserver:v1.18.2 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.2 k8s.gcr.io/kube-controller-manager:v1.18.2 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.2 k8s.gcr.io/kube-scheduler:v1.18.2 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.2 k8s.gcr.io/kube-proxy:v1.18.2 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7 docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.2 docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.2 docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.2 docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.2 docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0 docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7
3.执行kubeadm init命令
在master节点执行
kubeadm init --pod-network-cidr=172.20.0.0/16
4.执行提示命令
执行成功之后,如下图:
- 需要在命令行中执行的命令
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 添加节点时需要执行的命令(每次执行完kubeadm init之后并不相同,需要根据你的实际情况)
kubeadm join 192.168.100.100:6443 --token qttsee.jh2i26zofvr5g7qu \ --discovery-token-ca-cert-hash sha256:a622dae274da5c61b6f926c2f2b0aa063dcd438ca4d1b88f026b12a5151c6e0c
执行完毕之后,可以使用命令
kubectl get nodes查看节点状态
[root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master NotReady master 4m10s v1.18.2 [root@master ~]#
如上,master节点处于
NotReady的状态,是因为还没有安装网络插件,我们使用
calico作为kuberntes的网络插件,当然也有其他选择,可查看官网.
安装calico网络插件
下载并安装calico
在master节点执行
wget https://docs.projectcalico.org/manifests/calico.yaml kubectl apply -f calico.yaml
等待一会儿,执行如下命令
[root@master ~]# kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE calico-kube-controllers-789f6df884-svwnr 1/1 Running 0 5m15s calico-node-v5lxx 1/1 Running 0 5m15s coredns-66bff467f8-6czgr 1/1 Running 0 14m coredns-66bff467f8-wf2t2 1/1 Running 0 14m etcd-master 1/1 Running 0 14m kube-apiserver-master 1/1 Running 0 14m kube-controller-manager-master 1/1 Running 0 14m kube-proxy-zxpxc 1/1 Running 0 14m kube-scheduler-master 1/1 Running 0 14m [root@master ~]#
可以看到calico插件都已经是ready状态了
再次执行
kubectl get nodes
[root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready master 16m v1.18.2 [root@master ~]#
可以看到主节点已经是ready状态了
添加node1和node2节点
分别在node1和node2虚拟机上述得到的
kubeadm join命令,将两个节点添加进集群.
再次执行
[root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready master 99m v1.18.2 node1 Ready <none> 12s v1.18.2 node2 Ready <none> 74m v1.18.2 [root@master ~]#
可以看到node1和node2两个节点已经添加进来了,等待一段时间之后就会变为
ready的状态
总结
至此,kubernetes的基础组件已经安装完成,这已经是一个完整的kubernetes集群了.后续kubernetes-dashboard,prometheus,grafana等,本质就是在集群上安装的应用.后续的yaml文件比较复杂,想完全搞懂yaml的内容,需要一定的k8s基础.
相关文章推荐
- k8s技术预研3--使用kubeadm安装、配置Kubernetes集群以及进行故障排查的方法
- kubeadm手动安装kubernetes 1.13高可用集群(使用calico网络)
- 使用kubeadm安装kubernetes 1.13高可用集群(使用calico网络)
- Kubernetes安装系列之网络组件-Flannel安装设定
- Kubernetes1.91(K8s)安装部署过程(五)--安装flannel网络插件
- Sublime Text 3 常用插件以及安装方法,Package Control组件安装
- IDEA(Jetbrains系列,pycharm,goland...)翻译插件推荐Translation 安装和使用以及快捷键绑定
- linux网络基础设置 以及 软件安装
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
- k8s入门系列之扩展组件(二)kube-ui安装篇
- k8s集群之kubernetes-dashboard和kube-dns组件部署安装
- 面向基础系列之---Java网络编程---网络连接组件的使用(URL与URI) 3ff0
- 区块链基础知识系列第5课 Hyperledger fabric1.0网络中transaction产生以及流转过程
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
- kubernetes学习第一篇-k8s安装以及HelloWorld
- 深入玩转K8S之使用kubeadm安装Kubernetes v1.10以及常见问题解答
- Tomcat系列之服务器的安装与配置以及各组件详解
- kubernetes(k8s)以及涉及组件简单介绍
- OpenStack离线安装系列—7.2计算节点-Neutron网络服务组件