开发者学堂课程【Kubernetes 极速入门:K8S 集群核心概念 Service 通过命令行创建 Service】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/658/detail/10917
K8S 集群核心概念 Service 通过命令行创建 Service
内容介绍:
一.创建一个 Deployment 应用
二.验证 Deployment 类型应用创建情况
三.创建 Service
四.访问 service 以实现访问 Pod 目的
一.创建一个 Deployment 应用
Service 的创建在工作中有两种方式,一是命令行创建,二是通过资源清单文件 YAML 文件创建。通过命令行创建时默认创建 Service 为 ClusterIP 类型。
创建一个 Service 应首先明确 Service 针对 pod 工作,因此首先创建一个 pod,pod 的创建是一个应用,创建一个 Deployment 应用运行 pod 建立关联。
输入[root@master1 ~]# kubectl] run nginx-app1 --image=nginx:latest--image-pull-policy=IfNotPresent --replicas=1
使用回车键完成创建。
二.验证 Deployment 类型应用创建情况
输入[root@master1 ~]# get deployment.apps
使用回车键确定应用已被创建并且对应一个可以直接访问的 pod。
三.创建 Service
输入【root@master1 ~】# kubectl expose deployment.apps nginx-appl --type=ClusterIP --target-port=80 --port=80
使用回车键运行。
Expose 用于暴露一个服务,nginx-appl 是名称,type=ClusterIP是类型,target-port=表示容器中运行的类型,port=80代表 service
对应的端口。
输出
Service/nginx-app exposed
说明
Expose 创建 service
Deployment.apps 控制器类型
Nginx-app 应用名称,也是 service 名称
--type=ClusterIP 指定 service 类型
--target-port=80 指定 Pod 中容器端口
--port=80 指定 service 端口
四.访问 service 以实现访问 Pod 目的
1.查看 Service 创建情况
输入【root@masterl ~】# kubectl get service
使用回车键或者 svc
查看 service。
输出
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
AGE
Nginx-app ClusterIP 10.109.21.171 <none> 80/TCP
5m15s
10.109.21.171代表 IP 地址 80/TCP 表示 service80 端口
2. 访问 Service
输入【root@masterl ~】# curl http://10.109.21.171
使用回车键访问网站
输出
<!DOCTYPE html>
<html>
<head>
<title>welcome to nginx!</title>
<style>
body {
width: 35em;
Margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
Working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href=
”http://nginx.com/>”
>nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
输入【root@masterl ~】# kubectl get endpoints
使用回车键运行。
endpoints 是端点,service 与 pod 发生关联通过端点,nginx-app1 是端点名称对应172.16.189.67.80,172.16.189.67.80代表 pod 的 IP 地址和 pod 端口.