代码拉取完成,页面将自动刷新
这篇文档是关于安装k8s的,如果要学习k8s概念以及组件,移步到这里进行学习
要遵循本指南,你需要:
参考kubernetes官方文档 控制面
协议 | 方向 | 端口范围 | 目的 | 使用者 |
---|---|---|---|---|
TCP | 入站 | 6443 | Kubernetes API server | 所有 |
TCP | 入站 | 2379-2380 | etcd server client API | kube-apiserver, etcd |
TCP | 入站 | 10250 | Kubelet API | 自身, 控制面 |
TCP | 入站 | 10259 | kube-scheduler | 自身 |
TCP | 入站 | 10257 | kube-controller-manager | 自身 |
尽管 etcd 的端口也列举在控制面的部分,但你也可以在外部自己托管 etcd 集群或者自定义端口。
工作节点
协议 | 方向 | 端口范围 | 目的 | 使用者 |
---|---|---|---|---|
TCP | 入站 | 10250 | Kubelet API | 自身, 控制面 |
TCP | 入站 | 30000-32767 | NodePort Services† | 所有 |
参考calico官方文档 网络要求 确保您的主机和防火墙根据您的配置允许必要的流量。
配置 | 主持人 | 连接类型 | 端口/协议 |
---|---|---|---|
BGP | 全部 | 双向 | TCP 179 |
cat /etc/hosts
uname -r
rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y kernel-lt
grub2-set-default 0
reboot
rpm -Uvh http://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y kernel-lt
grub2-set-default 0
reboot
cat >> /etc/hosts << EOF
127.0.0.1 $(hostname)
10.0.xx.x master
10.0.x.xx node2
10.0.x.xx node1
43.138.xxx.xx master
43.138.xxx.xxx node2
43.138.xxx.xxx node1
EOF
下载好服务器对应版本的脚本文件到用户目录下。比如/root
hostnamectl set-hostname master
touch master.sh
chmod +x master.sh
vim master.sh
./master.sh
hostnamectl set-hostname node1
touch node.sh
chmod +x node.sh
vim node.sh
./node.sh
hostnamectl set-hostname node2
touch node.sh
chmod node.sh
vim node.sh
./node.sh
You can now join any number of machines by running the following on each node as root:
kubeadm join : --token --discovery-token-ca-cert-hash sha256:
vi calico.yaml
利用/CALICO_IPV4POOL_CIDR快速查找位置,更改为你的pod网段
- name: CALICO_IPV4POOL_CIDR
value: 10.244.0.0/16
利用/k8s,bgp快速查找位置,等号后面更改为你的网卡名,比如ens33,eth0
– name: IP_AUTODETECTION_METHOD
value: “interface=eth0”
保存之后就可以应用配置了
kubectl apply -f calico.yaml
然后等所有的pod都running完毕,自然状态就是ready了
watch kubectl get po -A
都ready好啦之后,现在可以查看nodes状态,所有的节点都已经ready了
kubectl get nodes -o wide
对照下图的ingress-nginx
与k8s集群的版本关系图,选择安装对应版本的ingress-nginx
我的是1.24版本的k8s,所以我直接使用当前最新版本1.4.0的ingress-nginx
也没关系
前面的脚本已经将必要的镜像下载好了,直接执行下面的步骤就可以安装
kubectl apply -f ingress-deploy.yaml
ali
registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.4.0
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.4.0
registry.k8s.io/ingress-nginx/controller:v1.4.0@sha256:34ee929b111ffc7aa426ffd409af44da48e5a0eea1eb2207994d9e0c0882d143
registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
ctr -n registry.k8s.io/ingress-nginx i tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.4.0 registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343
ctr -n registry.k8s.io i tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.4.0 registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343
sed -i s#registry.k8s.io/ingress-nginx/controller:v1.4.0@sha256:34ee929b111ffc7aa426ffd409af44da48e5a0eea1eb2207994d9e0c0882d143#registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.4.0#g deploy.yaml
sed -i s#registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f#registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.4.0#g deploy.yaml
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。