在基于华为云上部署K8S集群环境 以及k8s的每个工具的实操
看完包你学会K8s!!!
虚拟私有云VPC
点击访问控制台
配置虚拟私有云
区域切换为北京四
名称VPC-k8s,其他参数默认
返回虚拟私有云列表,查看已经创建的VPC
在服务列表中选择云容器
选择CCE集群
计费模式:按需付费
区域: 华为-北京四
集群名称:k8s-demo
版本:v1.15.1
集群管理规模: 50节点
控制节点数: 3(高可用)
虚拟私有云 vpc-k8s 所在子网:选择VPC-K8S 一同创建子网
网络模型: 容器隧道网络
容器网段:自动选择
服务网段:默认
鉴权方式:RBAC
其他:保持默认
私有云选择刚刚创建的K8S
选择同一子网 模型vpc
创建节点
现在添加—按需计费---华北-北京四
可用区1 虚拟机节点 名称VPC-demo-node
通用s6.large.2/2核4GB
弹性ip 自动创建
规格全动态BGP
计费模式:按流量计费
带宽类型 独享
系统插件必装
查看产品详情
创建成功
看K8S工作状态变为正常
使用命令行工具kubectl
获取Kuberctl 证书
获取Kuberctl 证书
下载版本对应的kuberctl
查看下载的配置文件
购买弹性云服务器ECS
计费模式按需计费
区域北京四
可用区 随机分配
CPU架构 x86架构
规格选择 通用计算机 s6.small.1
镜像Centos7.5
系统盘高IO 40GB
查看创建的公网ip
查看公网ip
添加22号端口规则
打开CRT自带的传送文件FXP服务
输入密码
将 kubectl 和 kubectl 配置文件(在刚才下载两个文件存放的目录里)上传至 ecs-k8s 的 /home 目录。(选中左边的文件直接拖到左边目录 home 下即可)。
显示已经上传上去了
在CRT中执行以下命令 惊醒kubeconfig.json相关配置
进入Home目录
[root@ecs-65b2 ~]# cd /home
查看所有文件及权限
[root@ecs-65b2 home]# ls -l
赋予权限
[root@ecs-65b2 home]# chmod +x kubectl
移动文件到bin目录下
[root@ecs-65b2 home]# mv -f kubectl /usr/local/bin/
创建目录
移动文件到config下
[root@ecs-65b2 home]# mv -f kubeconfig.json $HOME/.kube/config
查看集群信息
[root@ecs-65b2 home]# kubectl cluster-info
查看节点信息
[root@ecs-65b2 ~]# kubectl get nodes
Kubernetes核心服务实践
我们将下载的附件上传到服务器目录/home目录下
可以看到已经上传到了目录
可以看到已经上传到了目录
Cat 查看一下yml
通过命令创建POD
Kubectl apply -f POD-1container.yml
创建成功
查看状态
[root@ecs-65b2 home]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx 0/1 ContainerCreating 0 32s
[root@ecs-65b2 home]#
通过命令查看pod运行在哪台弹性云服务器
[root@ecs-65b2 home]# kubectl get pod -o wide
使用ssh命令登录节点
[root@ecs-65b2 home]# ssh 192.168.0.96
登录成功
查看此节点上与刚刚创建的POD相关容器实例的信息
Docker container ls | grep nginx
注意:通过观察可以发现容器名称带有 nginx 的有两个,一个使用的镜像名称为 nginx,另 外一个容器使用的镜像名称为 cce-pause:3.1。
退出node节点
删除pod
确认删除成功
指定Pod运行到指定到node上
Kubectl get node 查看节点
通过以下命令给第一个节点打上 node=test 的标签。
[root@ecs-65b2 home]# kubectl label nodes 192.168.0.33 node=test (换成自己的node节点的ip地址
通过以下命令查看节点标签信息
通过以下命令查看集群中带有 node=test 标签的节点信息。
[root@ecs-65b2 home]# kubectl get node -l "node=test"
通过 FXP OD-NodeSel ctor.yml 文件至客户端服务器/Home 目录。
上传
输入命令ls 查看已上传的文件
创建POD
查看并确认POD是否为指定节点
[root@ecs-65b2 home]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 0/1 ContainerCreating 0 38s
[root@ecs-65b2 home]#
创建POD2 容器
查看上传的文件
通过命令上传Pod
通过命令查看POD运行在那个node上
[root@ecs-65b2 home]# kubectl get pod -o wide
Ssh登录
通过命令查看ssh相关容器
[root@vpc-demo-node-mh0i9 ~]# docker container ls | grep two-container
[root@vpc-demo-node-mh0i9 ~]# exit (退出)
查看节点信息
Kubectl get pod
删除pod
[root@ecs-65b2 home]# kubectl delete pod nginx
删除
查看已经没有了
Doployment实践
上传deplyment 上传至看k8s
创建depolyment
[root@ecs-65b2 home]# kubectl apply -f deployment.yml
查看状态
手动删除上述看到的pod
[root@ecs-65b2 home]# kubectl delete pod nginx-deployment-84b8bdb667-cm8nz
查看POD
通过以下命令扩展 Deployment 数量至 4 并查看。
[root@ecs-65b2 home]# kubectl get pod
删除deployment 并查看
Kubectl get deployment
[root@ecs-65b2 home]# kubectl get deployment
No resources found in default namespace.
[root@ecs-65b2 home]#
\
将statefulset定义文件statefulset 上传之k8s
Ls 查看
创建的statefulset
[root@ecs-65b2 home]# kubectl apply -f statefulset.yml
statefulset.apps/web created
[root@ecs-65b2 home]#
查看创建的statefulset 运行状态
[root@ecs-65b2 home]# kubectl get pod
通过以下命令查看 web-0 的 POD 的名称、P 地址和所在的节点信息
kubectl describe pod web-0 查看ip地址
Kubectl delete pod web-0
查看pod
发生变化
Daemonet实践
上传
通过以下命令查看kube-system命令空间中的
kubectl get ds -n kube-system
通过命令创建daemonset
创建成功
[root@ecs-65b2 home]# kubectl apply -f daemonset.yml
daemonset.apps/fluentd-elasticsearch created
[root@ecs-65b2 home]#
再次查看kube-system中的DAEMONSET
不购买节点了 没钱了
将job.yml上传时ecs-k8s
通过以下命令运行Job
[root@ecs-65b2 home]# kubectl apply -f Job.yml
查看job运行状态
查看所有节点 可以发现Pi节点正在创建中
创建成功
查看job输出
创建
[root@ecs-65b2 home]# kubectl apply -f deployment.yml
deployment.apps/nginx-deployment created
[root@ecs-65b2 home]#
查看状态
查看pod状态
kubectl expose deployment nginx-deployment –-type=NodePort
查看service
通过curl命令验证网站是否可以访问
Kuberctl get node
[root@ecs-65b2 home]# curl 192.168.0.96:32270
找一个节点的公网地址
打开地址栏输入ip:端口
通过命令查看系统默认的NameSpace
Kubectl get namespace
通过以下命令可以手动创建一个NameSpace命名空间并查看
[root@ecs-65b2 home]# kubectl create namespace test
创建一个POD并指定此POD运行在test命名空间
[root@ecs-65b2 home]# kubectl apply -f POD-1Container.yml --namespace=test
查看指定命名空间里的pod
Kubectl get pod -n test
创建一个限制Cpu和内存大小的 namespace
[root@ecs-65b2 home]# kubectl create namespace quota-mem-cpu-example
[root@ecs-65b2 home]# kubectl get ns
用namespace定以文件ns-cpu-mem.yml 到k8s‘
通过以下命令查看文件信息
创建 ResourceQuota 并和 NameSpace 进行关联
[root@ecs-65b2 home]# kubectl create -f ns-cpu-mem.yml --namespace=quota-mem-cpu-example
查看ResourceQuota详细信息
[root@ecs-65b2 home]# kubectl get resourcequota mem-cpu-demo --namespace=quota-mem-cpu-example --output=yaml
添加限制
以上刚创建的ResourceQuota对象在quota-mem-cpu-example 名字空间中添加以下限 制:
每个容器必须设置内存请求(memory request),内存限额(memory limit),cpu 请求 (cpu request)和 cpu 限额(cpu limit)。 l 所有容器的内存请求总额不得超过 1 GiB。 l 所有容器的内存限额总额不得超过 2 GiB。 l 所有容器
的 CPU 请求总额不得超过 1 CPU。 l 所有容器的 CPU 限额总额不得超过 2 CPU
将 POD 定义文件上传至 ecs-k8s。
将quota上传到服务器
查看POD定义文件
[root@ecs-65b2 home]# kubectl create -f quota-mem-cpu-pod.yml --namespace=quota-mem-cpu-example
pod/quota-mem-cpu-demo created
[root@ecs-65b2 home]#
运行以下命令确认 POD 已运行。
用FXP上传
创建第二个POD
以下命令输出显示第二个 Pod 并没有创建成功。错误信息说明了如果创建第二个 Pod,内存 请求总额将超出名字空间的内存请求配额。
返回云容器引擎控制台,点击“创建无状态工作负载
具体配置如下
点击下一步,添加容器,点击“第三方镜像”,选择镜像相关参数
镜像名称:swr.cn-north-1.myhuaweicloud.com/hc_cce/flappybird:latest
添加服务,如下参数配置后点击确定。
访问类型:负载均衡,服务名称:flappybird;集群级别
端口配置,容器端口:80;访问端口:80
其他参数默认
第三步查看创建的节点
访问
留言与评论(共有 0 条评论) “” |