K8S搭建和部署,看完包你学会K8S

在基于华为云上部署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 192.168.0.33

[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定义文件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实践

将job.yml上传时ecs-k8s

通过以下命令运行Job

[root@ecs-65b2 home]# kubectl apply -f Job.yml

查看job运行状态









查看所有节点 可以发现Pi节点正在创建中



创建成功

查看job输出



Service实践

通过之前上传的 deployment 文件创建 Deployment

创建

[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实践

通过命令查看系统默认的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,内存 请求总额将超出名字空间的内存请求配额。



CCE 搭建flappybird

返回云容器引擎控制台,点击“创建无状态工作负载



具体配置如下



点击下一步,添加容器,点击“第三方镜像”,选择镜像相关参数



镜像名称:swr.cn-north-1.myhuaweicloud.com/hc_cce/flappybird:latest



添加服务,如下参数配置后点击确定。

访问类型:负载均衡,服务名称:flappybird;集群级别

端口配置,容器端口:80;访问端口:80

其他参数默认



第三步查看创建的节点

访问





看完   K8S
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章