阿里云k8s集群(创建以及部署应用)

本文介绍了如何在阿里云上创建和管理Kubernetes集群,并使用镜像快速部署应用程序。容器服务Kubernetes版提供了一站式的集群管理和应用全生命周期管理,简化了集群搭建和扩容流程。详细步骤包括集群配置、工作负载设置以及从市场选择镜像进行应用部署。

简介

容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级 Kubernetes 容器化应用的全生命周期管理。容器服务 Kubernetes 版简化集群的搭建和扩容等工作,整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes 容器化应用运行环境。

创建k8s集群

1.集群配置

首先先创建集群,若没有专有网络,可以先申请一个Serverless Kubernetes的集群

在这里插入图片描述
在这里插入图片描述
2. work配置

点击下一步,进入work配置

在这里插入图片描述
**3. 组件配置 **

在这里插入图片描述
创建成功

阿里云部署 Kubernetes 集群可以采用多种方式,包括使用阿里云 Kubernetes 服务(ACK)或手动部署单节点集群。以下是一个基于阿里云 ECS 实例手动部署单节点 Kubernetes 集群的步骤指南。 ### 1. 环境准备 - **操作系统**:选择阿里云 ECS 实例的操作系统,如 Alibaba Cloud Linux 或 Debian 12[^2]。 - **网络配置**:确保 ECS 实例具有公网 IP 地址,并且安全组规则允许必要的端口(如 6443、2379-2380、10250 等)。 - **软件依赖**: - 安装 Docker:使用 `docker-ce` 版本 18.06.1.ce-3.el7 或更高版本[^3]。 - 安装 `kubeadm`、`kubelet` 和 `kubectl`:这些是 Kubernetes 的核心组件,用于集群初始化和管理。 ```bash # 安装 Docker sudo yum install -y docker-ce-18.06.1.ce-3.el7 # 启动 Docker 服务并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 添加 Kubernetes 仓库 cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 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 EOF # 安装 kubeadm、kubelet 和 kubectl sudo yum install -y kubeadm kubelet kubectl # 启动 kubelet 服务并设置开机自启 sudo systemctl enable --now kubelet ``` ### 2. 初始化 Kubernetes 集群 使用 `kubeadm init` 命令初始化单节点 Kubernetes 集群。此命令会配置控制平面并生成用于加入节点的令牌。 ```bash # 初始化集群 sudo kubeadm init --pod-network-cidr=10.244.0.0/16 # 配置 kubectl 访问权限 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config # 验证集群状态 kubectl get nodes ``` ### 3. 安装网络插件 Kubernetes 需要网络插件来管理 Pod 之间的通信。Flannel 是一个常用的网络插件,适用于大多数单节点和多节点集群。 ```bash # 安装 Flannel kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` ### 4. 配置持久存储 如果需要为应用提供持久化存储,可以配置持久卷(Persistent Volume, PV)和持久卷声明(Persistent Volume Claim, PVC)。阿里云提供了多种存储选项,如云盘、NAS 和 OSS。 ```yaml # 示例:创建一个使用阿里云云盘的持久卷 apiVersion: v1 kind: PersistentVolume metadata: name: example-pv spec: capacity: storage: 20Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: default azureDisk: diskName: example-disk diskURI: /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.Compute/disks/example-disk ``` ### 5. 配置 Ingress 和 HTTPS 为了使外部流量能够访问 Kubernetes 集群中的服务,可以配置 Ingress 控制器。Nginx Ingress 是一个常用的选择,并且支持 HTTPS。 ```bash # 安装 Nginx Ingress 控制器 kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml # 创建 TLS 证书 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=example.com" # 创建 TLS Secret kubectl create secret tls example-tls --cert=tls.crt --key=tls.key # 创建 Ingress 资源 apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress annotations: nginx.ingress.kubernetes.io/ssl-redirect: "true" spec: tls: - hosts: - example.com secretName: example-tls rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: example-service port: number: 80 ``` ### 6. 部署示例应用 最后,可以部署一个简单的应用来测试集群的功能。 ```yaml # 示例:部署一个 Nginx 服务 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 imagePullSecrets: - name: regcred --- apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer ``` ### 7. 故障排除 在部署过程中可能会遇到一些常见问题: - **网络问题**:确保所有必要的端口都已开放,特别是 6443(API Server)、2379-2380(etcd)、10250(kubelet API)等。 - **Docker 版本不兼容**:确保使用的 Docker 版本与 Kubernetes 兼容,避免使用过旧或过新的版本。 - **证书问题**:如果使用自签名证书,确保证书已正确配置并信任。 - **权限问题**:确保 `kubelet` 和 `kubectl` 的配置文件权限正确,避免因权限问题导致的服务启动失败。 通过以上步骤,可以在阿里云 ECS 实例上成功部署一个单节点 Kubernetes 集群,并为其配置必要的网络、存储和外部访问功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值