Kubernetes(K8s)极速入门

1. 概述
老话说的好:努力学习,努力提高,做一个有真才实学的人。

言归正传,之前我们聊了 如何使用国内的镜像源搭建 kubernetes(k8s)集群 ,今天我们来聊聊如何在 kubernetes(k8s)上部署容器。

官网教程:https://kubernetes.io/docs/home/

2. 部署 Pod
2.1 概述
Pod 是 kubernetes(k8s)的最小单元,一个 Pod 中可部署多个容器,这里我们以部署 Nginx 为例,先介绍一下 kubernetes(k8s)的编排脚本。

2.2 Pod 脚本例子
新建一个脚本,名为 my-pod.yml
# vi my-pod.yml

apiVersion: v1 kind: Pod metadata: name: my-nginx spec: containers: - name: my-nginx image: nginx

apiVersion:脚本的版本,Pod 通常使用 v1 这个版本
kind:脚本的类型,这里就是 Pod
metadata.name:Pod 的名称
spec.containers:Pod 中运行的容器,可以是多个

注意:下级相对上级缩进两个空格,而不是Tab。

2.3 执行脚本
# kubectl apply -f my-pod.yml

2.4 查看 pod 信息
# kubectl get pod -o wide
Kubernetes(K8s)极速入门
文章图片

ContainerCreating 状态代表 pod 正在添加

Kubernetes(K8s)极速入门
文章图片

Running 状态代表 pod 已经运行

2.5 查看 pod 详细信息
# kubectl describe pod my-nginx

2.6 删除 pod
# kubectl delete pod my-nginx

3. 部署 Deployment
3.1 概述
在 kubernetes(k8s)中, 使用 Pod 脚本部署 pod,只能单节点部署,无法高可用。
因此需要用到 Deployment ,Deployment 可以指定 Pod 的副本数,通常情况是使用 Deployment部署。

3.2 Deployment 脚本例子
新建一个脚本,名为 my-deployment.yml
# vi my-deployment.yml
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx-deployment template: metadata: labels: app: nginx-deployment spec: containers: - name: my-nginx image: nginx

spec.replicas:部署 Pod 的副本数
sepc.template.metadata.labels.app:deployment 标签名称。

3.3 执行脚本
# kubectl apply -f my-deployment.yml

3.4 查看 deployment 信息
# kubectl get deployment
Kubernetes(K8s)极速入门
文章图片


# kubectl get pod -o wide
Kubernetes(K8s)极速入门
文章图片


3.5 查看 deployment 详细信息
# kubectl describe deployment nginx-deployment

3.6 删除 deployment
# kubectl delete deployment nginx-deployment

4. 部署 Service
4.1 概述
上一步我们使用 deployment 部署了多个 Pod 实例,但我们无法访问到 Pod 中的 Nginx。
此时就要借助 Service。

4.2 Service 脚本例子
新建一个脚本,名为 my-service.yml
# vi my-service.yml
apiVersion: v1 kind: Service metadata: name: nginx-service spec: type: NodePort selector: app: nginx-deployment ports: - protocol: TCP nodePort: 30000 port: 20000 targetPort: 80

spec.type:Service 的类型,NodePort 是端口映射的方式,就是把容器的端口映射到宿主机的端口。
spec.selector.app:作用于哪个 deployment 标签。
spec.ports:是端口映射设置,targetPort 是容器中服务真实的端口,Nginx默认使用 80 端口,port 是Service 对外暴露的端口,用于 K8s 内部访问,nodePort 是映射的宿主机的端口。

4.3 执行脚本
# kubectl apply -f my-service.yml

4.4 查看 Service 信息
# kubectl get service -o wide
Kubernetes(K8s)极速入门
文章图片



4.5 查看 Service 详细信息
# kubectl describe service nginx-service
Kubernetes(K8s)极速入门
文章图片



4.6 删除 Service
# kubectl delete service nginx-service

【Kubernetes(K8s)极速入门】4.7 访问 Nginx
地址:http://宿主机IP:30000
例如:http://192.168.1.12:30000/
Kubernetes(K8s)极速入门
文章图片



5. 综述
今天聊了一下 kubernetes(k8s)集群上是如何部署容器的,希望可以对大家的工作有所帮助。
欢迎帮忙点赞、评论、转发、加关注 :)
关注追风人聊Java,每天更新Java干货。

6. 个人公众号
追风人聊Java,欢迎大家关注
Kubernetes(K8s)极速入门
文章图片

    推荐阅读