华为云云原生实践之基于CCE Kubernetes编排实战【与云原生的故事】
基于CCE Kubernetes编排实战
购买华为云CCE集群
- 登录华为云控制台,点击“服务列表”->“容器”->“云容器引擎CCE”,进入云容器引擎CCE控制台
- 选择标准版CCE集群,点击“创建”
- 选择相关的配置
配置参数如下:
① 计费模式:按需计费
② 区域:华北-北京四
③ 集群名称:ccetest
④ 版本:v1.19
⑤ 集群管理规模:50节点
⑥ 控制节点数:1
勾选协议
⑦ 虚拟私有云:预置环境预置的VPC
⑧ 所在子网:预置环境预置的子网
⑨ 网络模型:容器隧道网络
⑩ 容器网段:勾选“自动选择”其他参数默认
- 集群配置后,单击“下一步:创建节点”进入“创建节点”步骤。
配置参数如下:
①创建节点:现在添加
②计费模式:按需计费
③当前区域:华北-北京四
④可用区:任意
⑤节点类型:虚拟机节点
⑥节点名称: cce01-node1
⑦节点规格:c6s.xlarge.2 4核|8GB
- 操作系统配置
① 操作系统:选择公共镜像 EulerOS 2.5
② 系统盘:选择默认值,高IO,40G
- 弹性IP 选择“自动创建”,配置如下:
② 规格:全动态BGP
③ 计费模式:按带宽计费
④ 带宽类型:独享
⑤ 带宽大小 :5M
⑥ 登录方式:选择“密码”
⑦密码:自定义
其它参数默认
- 单击“下一步:安装插件”。系统资源插件必须要安装。其他默认即可
购买弹性云服务器
- 进入控制台,点击“服务列表”->“计算”->“弹性云服务器 ECS”
- 单击“购买弹性云服务器”
基础配置参数如下:
①计费模式:按需计费
②区域:北京四
③可用区:随机分配
④CPU架构:x86计算
⑤规格:通用计算增强型 | c6s.large.2 | 2vCPUs | 4 GiB
⑥镜像:公共镜像 | CentOS 7.6 64bit(40GB)
⑦主机安全:开通主机安全
⑧系统盘:高IO | 40 G
- “下一步:网络配置”
网络配置参数如下:
①网络:必须与CCE集群所在的VPC相同
②扩展网卡:默认配置
③安全组:选择以分配的华为云账号命名的安全组
④弹性公网IP:现在购买
⑤线路:全动态BGP
⑥公网带宽:按流量计费
⑦带宽大小:5MB
- “下一步:高级配置”
高级配置参数如下:
①云服务器名称:ecs-k8s
②登录凭证:密码
③密码:自定义
其余参数默认即可
- “下一步:确认配置”阅读并勾选同意协议,“立即购买”
登录弹性云服务器
- SSH 登录服务器
ssh root@120.46.133.117
#yes 输入密码
安装kubernetes客户端
- 下载kubectl
①下载kubectl配置文件。云容器引擎控制,“资源管理 > 集群管理”,点击命令行工具下拉菜单,然后点击kubectl 进入kubelet配置页面。
②在集群详情页中的“kubectl”页签下,在页面的步骤二中找到下载kubectl配置文件,点击”此处“,在弹出的弹框内点击“此处”
- 将下载的kubectl配置文件kubeconfig.json上传到ecs-k8s中
scp /home/user/Desktop/kubeconfig.json root@120.46.133.117:/root
- 安装和配置kubectl,弹性云服务器ecs-k8s
cd ~
wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/cce-kube-layout/kubernetes-client-linux-amd64.tar.gz
ls
tar -zxvf kubernetes-client-linux-amd64.tar.gz
cp /root/kubernetes/client/bin/kubectl /home/
cp kubeconfig.json /home/
cd /home
- 添加kubectl可执行权限,并将文件移动到/usr/local/bin目录
chmod +x kubectl
mv kubectl /usr/local/bin
- 将配置文件复制到$HOME/.kube/config文件中
mkdir $HOME/.kube
cp kubeconfig.json $HOME/.kube/config
- 切换kubectl的访问模式为VPC网络内接入访问
kubectl config use-context internal
- 验证kubectl安装结果
kubectl cluster-info
Kubernetes组件实操
- 查看Kubernetes状态
# (1)查看节点状态。
kubectl get node
#(2)查看现有namespace。
kubectl get namespace
#(3)创建namespace。
kubectl create namespace new-namespace
#(4)再次查看namespace列表。
kubectl get namespace
#(5)删除新创建的namespace。
kubectl delete namespace new-namespace
Deployment实验
#(1)创建一个Deployment。
kubectl create deployment mydep --image=nginx
#(2)通过命令行查看Deployment。
kubectl get deploy
#(3)使用kubectl describe命令查看资源对象的详细信息。
kubectl describe deployment mydep
-
通过CCE控制台查看Deployment
-
点击控制台中的工作负载—>无状态负载,可以看到创建的工作负载mydep。
-
使用kubectl命令行工具查看对象
#(1)使用kubectl get命令,get all可以查看所有对象。
kubectl get all
#(2)查看指定namespace的对象。
kubectl get all -n kube-system
#(3)以交互模式查看对象的变化,按ctrl+c退出交互模式
kubectl get deployment -w
#(4)查看完整的对象信息。
kubectl get deployment -o wide
- 创建自定义Deployment
#(1)在master节点创建/labfile/deployfile目录,用于保存配置文件。后续创建deployment的yaml文件保存在此处。
cd /
mkdir labfile
cd labfile/
mkdir deployfile
cd deployfile/
#(2)创建deployment文件。
vim nginx-deployment.yaml
- 部署nginx-deployment
kubectl apply -f nginx-deployment.yaml
- 查看创建结果
kubectl describe deployment nginx-deployment
kubectl get deployment
- 查看Pod
kubectl get pod
- 弹性伸缩Deployment
# 编辑之前创建的nginx-deployment.yaml文件,将副本数量“replicas”改为5。
vim nginx-deployment.yaml
- 按Esc键退出编辑,输入":wq"保存并退出,然后应用变更后的nginx-deployment.yaml文件
kubectl apply -f nginx-deployment.yaml
- 查看pod状态,确认Pod数量是否正确。
kubectl get pod
- 删除创建的deployment。
kubectl delete deployment nginx-deployment
DaemonSet实验
- DaemonSet配置文件
mkdir /labfile/daemonfile
cd /labfile/daemonfile/
# 创建DaemonSet的yaml文件。
- 创建DaemonSet
kubectl apply -f DaemonSet.yaml
- 查看创建的DaemonSet。
kubectl get daemonset --namespace=kube-system
kubectl get pod --namespace=kube-system -o wide
- DaemonSet自动恢复
kubectl get pod --namespace=kube-system
- 点赞
- 收藏
- 关注作者
评论(0)