https://blog.csdn.net/wenjianfeng/article/details/93347306
https://www.cnblogs.com/python-cat/p/10831419.html
前提条件:docker已部署
添加yum源
vi /etc/yum.repos.d/kubernetes.repo
[Kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
安装
kubelet 运行在 Cluster 所有节点上,负责启动 Pod 和容器。
kubeadm 用于初始化 Cluster。
kubectl 是 Kubernetes 命令行工具。通过 kubectl 可以部署和管理应用,查看各种资源,创建、删除和更新各种组件。
yum install kubelet kubeadm kubectl -y
检查swap和桥接
cat /proc/sys/net/bridge/bridge-nf-call-iptables
1
free -m
total used free shared buff/cache available
Mem: 991 151 365 7 475 674
Swap: 0 0 0
初始化
--image-repository string:这个用于指定从什么位置来拉取镜像
--kubernetes-version string:指定kubenets版本号(看一下之前安装的版本)
--apiserver-advertise-address 指明用 Master 的哪个 interface 与 Cluster 的其他节点通信。如果 Master 有多个 interface,建议明确指定,如果不指定,kubeadm 会自动选择有默认网关的 interface。
--pod-network-cidr指定 Pod 网络的范围。Kubernetes 支持多种网络方案,而且不同网络方案对 --pod-network-cidr有自己的要求,这里设置为10.244.0.0/16 是因为我们将使用 flannel 网络方案,必须设置成这个 CIDR。
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.2 --apiserver-advertise-address 10.0.0.80 --pod-network-cidr=10.244.0.0/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 10.0.0.80:6443 --token 7yasz7.oouxo59ravh4eitz --discovery-token-ca-cert-hash sha256:545678e30451193c605e170ba3f8b8e500b9a5c7d0bb54bd00eb7c7113a4308d
配置完,kubectl就能用了
kubectl get cs
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
etcd-0 Healthy {"health":"true"}
controller-manager Healthy ok
为了使用更便捷,启用 kubectl 命令的自动补全功能。
echo "source <(kubectl completion bash)" >> ~/.bashrc
配置flannel网络
# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
添加yum,安装kubelet kubeadm kubectl,检查桥接是否为1。
然后按照master部署好之后给出的提示,运行kubeadm join。
这时在master上跑kubectl get nodes,node已经有,但是还未ready
node上启动kubelet,就会ready
systemctl restart kubelet systemctl enable kubelet
原文:https://www.cnblogs.com/jabbok/p/12822114.html