前言 研究Kubernetes和实际项目使用kubernetes已经有一段时间了。Kubernetes系列,可以算是我个人学习的记录吧,先简要整理出一些学习笔记分享给大家,揭示一下当今非常火热,流行的Kubernetes到底是个啥玩意~,新技术的出现必有其道理,但也不要雾里看花,觉得特别神秘,其实也就那么回事儿,本次笔记先从安装开始。
1.安装前准备(每个server都要这么干) 1.1 关闭交换分区:
1.2 打开网桥: 1 $ sudo modprobe br_netfilter
1.3 调整防火墙设置: 1 2 3 4 5 $ cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF
1.4 获取k8s工具安装公钥: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 $ cat <<EOF | sudo tee /etc/yum .repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https:// packages.cloud.google.com/yum/ repos/kubernetes-el7-\$basearch enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https:// packages.cloud.google.com/yum/ doc/yum-key.gpg https:/ /packages.cloud.google.com/yum /doc/ rpm-package-key.gpg exclude=kubelet kubeadm kubectl EOF
1.5 调整权限:
1 $ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/ selinux/config
1.6 设置docker代理:(如果有http proxy代理可以出海可以参考如下配置,如没有请跳过) 1 $ sudo mkdir -p /etc/ systemd/system/ docker.service.d
1 $ touch /etc/ systemd/system/ docker.service.d/http-proxy.conf
写入以下内容:
1 2 3 4 [Service] Environment ='HTTP_PROXY=http://10.25.192.8:3378/' Environment ='HTTPS_PROXY=http://10.25.192.8:3378/' Environment ='NO_PROXY=localhost,127.0.0.1'
使配置生效:
1 $ sudo systemctl daemon-reload
1 $ sudo systemctl restart docker
1.7 下载kubernetes必要的image包和工作包(如设置了1.6则可跳过,无可用出海http proxy可用以下方式) 本来打算自己上传的,发现了另一个大佬的已经在csdn有上传相关镜像和工具等:kubernetes 1.19.4版本镜像和工具 镜像使用方法: 下载后解压,直接上传至 server 中 使用 “docker load -i xxx.tar” 即可,别忘了主节点和工作节点都要导入,kubeadm,kubectl等安装包的安装方式请自查,哈哈,此处不做额外说明
1.8 检查kubernetes镜像 1 2 3 4 5 6 7 8 9 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE k8s.gcr .io/kube-proxy v1.19.4 635 b36f4d89f 6 months ago 118 MB k8s.gcr .io/kube-controller-manager v1.19.4 4830 ab618586 6 months ago 111 MB k8s.gcr .io/kube-apiserver v1.19.4 b15c6247777d 6 months ago 119 MB k8s.gcr .io/kube-scheduler v1.19.4 14 cd22f7abe7 6 months ago 45.7 MB k8s.gcr .io/etcd 3.4 .13 -0 0369 cf4303ff 9 months ago 253 MB k8s.gcr .io/coredns 1.7 .0 bfe3a36ebd25 11 months ago 45.2 MB k8s.gcr .io/pause 3.2 80 d28bedfe5d 15 months ago 683 kB
2.安装k8s 2.1 安装kubeadm等工具(如采用下载离线包方式,可跳过本命令) 1 $ sudo yum install -y kubelet kubeadm kubectl --disableexcludes =kubernetes
2.2 在master节点执行: 1 $ sudo kubeadm init --pod-network-cidr =10.244.0.0/16
注:–pod-network-cidr=10.244.0.0/16不要乱改网段,否则会对后续步骤安装网络插件flannel有影响,flannel默认为此网段,若此处有修改,则安装flannel也需要有对应的调整,具体调整方式请自行上flannel的github issue搜索。别问我为什么知道~~我也不知道我怎么知道的。 安装结束后会打印类似如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at : https ://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root : kubeadm join 172.17 .100 .191 :6443
2.3 在工作节点执行: 1 2 $ kubeadm join 172.17.100.191:6443 --token rk5**** **** **** \ --discovery-token-ca-cert-hash sha256:9a478**** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ***
2.4 安装网络插件(网络插件必不可少,当然也可以选择其他类型,此处以flannel为例子) 1 $ kubectl apply -f https:// raw.githubusercontent.com/coreos/ flannel/master/ Documentation/kube-flannel.yml
3.检查集群状态 1 2 3 4 5 $ kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready 65111 to65139,master 187d v1.19.4 node1 Ready 65141 to65169,node 187d v1.19.4 node2 Ready 65171 to65199,node 187d v1.19.4
如都显示为ready则集群状态正常,至此,kubernetes集群安装完成
4.结束语
见到新技术的时候,不要去怕深入,新技术的出现,肯定是因为有新需求的出现,新需求出现了,但原有的解决相应问题的解决方案不够用了,那么便会推进新的技术理论的出现和发展。
不要为了学习新技术而学习新技术,因为如果没有具体的去使用新技术,是不那么容易理解的,从问题出发到解决方案和技术。
搞不懂新技术是干什么的,要学会不求甚解,先学会用,然后再相辅相成的大胆猜测,小心求证。
最后一句,干就完了,不怂。
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !