Kubernetes 部署配置详解

简介: 本文主要为大家讲解如何在阿里云容器服务上部署Kubernetes集群。

72.jpeg
镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站

一、部署说明

1. Kubernetes 集群部署

在阿里云上,容器服务提供了一键式的Kubernetes部署,但很多场景应用下需要搭建自托管的Kubernetes集群。

2. Kubernetes 架构图

1.png

3. 节点信息

System: CenOS 7.6 - x64
Master 172.20.1.202 kube-controller-manager kube-apiserver kube-scheduler etcd coredns kube-flannel kube-proxy docker-ce
Slave1 172.20.1.203 kube-flannel kube-proxy docker-ce
Slave2 172.20.1.204 kube-flannel kube-proxy docker-ce

在阿里云上,可以直接通过ECS云服务器来作为集群运行环境。
2.png

二、配置详解

1. 基础配置

基础工具安装(以下配置每个节点都需要运行)

yum -y install ntpdate vim wget

修改各节点主机名

echo k8s-c01-p001 > /etc/hostname
echo k8s-c01-p002 > /etc/hostname
echo k8s-c01-p003 > /etc/hostname

修改时区及时间

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
ntpdate 0.cn.pool.ntp.org

关闭内核防火墙及系统防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service    
setenforce 0
sed -i 's/=enforcing/=disabled/' /etc/selinux/config

配置Hosts文件

tee /etc/hosts <<-'EOF'
172.20.1.202 k8s-c01-p001 
172.20.1.203 k8s-c01-p002 
172.20.1.204 k8s-c01-p003 
EOF

内核信息修改

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables
echo "1" > /proc/sys/net/bridge/bridge-nf-call-ip6tables
tee /etc/sysctl.d/kubernetes.conf <<-'EOF'
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

2. 相关环境配置

Docker RPM仓库配置

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Kubernetes RPM仓库配置

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
rpm --import /etc/yum.repos.d/rpm-package-key.gpg
tee /etc/yum.repos.d/kubernetes.repo <<-'EOF'
[kubernetes]
name=kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
EOF

安装Docker及Kube工具

yum install -y docker-ce kubelet kubeadm kubectl

启动docker

systemctl start docker

关闭虚拟内存

swapoff -a
echo "KUBELET_EXTRA_ARGS=\"--fail-swap-on=false\"" > /etc/sysconfig/kubelet

配置自启动

systemctl enable kubelet docker

查看需要用到的镜像,如果遇到墙的问题,可以在墙外下载完拉回来

kubeadm config images list
kubeadm config images pull

初始化管理节点 只需要Master运行

kubeadm init --kubernetes-version=v1.16.0 --pod-network-cidr=10.1.0.0/16 --service-cidr=10.2.0.0/16 --ignore-preflight-errors=Swap

3.png

配置kubectl连接信息

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

配置网络插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

4.png

3. 集群部署

在工作节点加入集群 只需要Slave运行

kubeadm join <Master>:6443 --token <Token> \
--discovery-token-ca-cert-hash sha256:<Cert>

5.png

集群部署完成,查看集群节点

kubectl get node -owi

6.png

查看集群节点上运行的Pod

kubectl get pods -n kube-system -owide

7.png

建议:优先使用阿里云ACK容器服务,较低运维成本,方便管理。

阿里巴巴开源镜像站 提供全面,高效和稳定的镜像下载服务。钉钉搜索 21746399 加入镜像站官方用户交流群。”

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
Kubernetes 持续交付 Docker
利用 Docker 和 Kubernetes 实现微服务部署
【10月更文挑战第2天】利用 Docker 和 Kubernetes 实现微服务部署
|
1月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
125 60
|
1月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
223 62
|
8天前
|
存储 Kubernetes Devops
Kubernetes集群管理和服务部署实战
Kubernetes集群管理和服务部署实战
23 0
|
15天前
|
Kubernetes 监控 Java
如何在Kubernetes中配置镜像和容器的定期垃圾回收
如何在Kubernetes中配置镜像和容器的定期垃圾回收
|
1月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
76 3
|
1月前
|
Kubernetes Docker 微服务
微服务实践k8s&dapr开发部署实验(1)服务调用(一)
微服务实践k8s&dapr开发部署实验(1)服务调用(一)
49 2
|
1月前
|
Kubernetes 网络安全 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
226 2
|
1月前
|
NoSQL 关系型数据库 Redis
高可用和性能:基于ACK部署Dify的最佳实践
本文介绍了基于阿里云容器服务ACK,部署高可用、可伸缩且具备高SLA的生产可用的Dify服务的详细解决方案。
|
1月前
|
Kubernetes 网络协议 安全
[kubernetes]二进制方式部署单机k8s-v1.30.5
[kubernetes]二进制方式部署单机k8s-v1.30.5
下一篇
无影云桌面