通过kubectl创建简单的服务

通过kubectl连接Kubernetes集群

目前百度智能云容器服务基于kubernetes v1.8.6,如果用户需要从本地个人计算机连接到百度智能云的 Kubernetes 集群,需要使用 Kubernetes 命令行客户端kubectl,kubectl的安装步骤如下所示

操作步骤

Kubernetes 版本下载页面下载对应的 kubectl 客户端,关于kubectl 的其他信息,可以参见kubernetes官方安装和设置 kubectl文档

注意:

本操作指南给出的操作步骤都是基于linux操作环境的。

1.解压下载后的文件,为kubectl添加执行权限,并放在PATH下

chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

2.配置kubectl,下载集群凭证。在集群界面下载集群配置文件,放在kubectl的默认配置路径

mv kubectl.conf  ~/.kube/config

3.配置完成后,您即可以使用 kubectl 从本地计算机访问 Kubernetes 集群

kubectl get node

创建一个nginx应用

完成通过kubectl连接Kubernetes集群的操作后,输入以下指令:

kubectl run my-nginx --image=nginx --replicas=3 --port=80

上述命令会创建3个nginx容器,每个容器都会暴露它的80端口。

常看创建nginx容器状态的指令如下:

$ kubectl get pods
NAME                       READY     STATUS    RESTARTS   AGE
my-nginx-858393261-pfjdn   1/1       Running   0          14s
my-nginx-858393261-sn7g5   1/1       Running   0          14s
my-nginx-858393261-spv8w   1/1       Running   0          14s

注意:
符号"$"代表输入的指令,其他行代表输入指令后显示的容器的信息。

暴露服务到internet

创建服务

在公有云环境下,可以通过输入命令,创建出一个类型为LoadBalancer的service,同时,还会联动公有云,创建一个负载均衡和一个公网IP,具体操作指令如下:

kubectl expose deployment my-nginx --port=80 --type=LoadBalancer

查看服务

通过查看服务的命令,可以看到这个服务的情况和创建出的公网IP。

$ kubectl get services
NAME         CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
kubernetes   172.17.0.1    <none>           443/TCP        1h
my-nginx     172.17.44.5   180.76.139.247   80:30356/TCP   47s

通过访问180.76.139.247这个链接可以看到创建的服务如图所示:

完成服务创建之后,用户可以登陆百度智能云平台,选择“产品服务>负载均衡 BLB”,进入BLB控制台查看负载均衡BLB的详细信息,具体操作步骤可以参考负载均衡操作指南

注意:
符号"$"代表输入的指令,其他行代表输入指令后显示的服务的信息其中180.76.139.247 为发布到外网的服务网址。
服务使用负载均衡除了上述指令调用之外,还可以通过dashboar调用具体操作参考Kubernetes Dashboard创建服务

删除服务

如果需要删除服务,不想将对公网暴露。可以直接删除服务

kubectl delete svc my-nginx

注意:

kubernetes会将刚才创建出的公网IP和负载均衡删除,然后也会删除创建的这个服务。