IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

kubernetes系列(二) – kubectl的入门操作

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

目录

    1. 安装 / 卸载
    • 1 .1 前提条件
    • 1.2 安装方式
    • 1.3 卸载
    1. 通过 minikube 学习 k8s 实操基础
    • 2.1 创建集群
    • 2.2 部署应用
    • 2.3 探索当前应用【故障排除】
    • 2.4 公开暴露应用
    • 2.5 使用label
    • 2.6 扩容应用
    • 2.7 更新应用

1、 安装 / 卸载

1 .1 前提条件

  • homebrew安装kubectl
  • docker本身设置镜像加速
  • 以下操作如果失败,开启ssr的全局模式进行再次操作

1.2 安装方式

  • homebrew【不好使】
  • 二进制【参照如下的链接】

Minikube – Kubernetes本地实验环境

1.3 卸载

# 停止集群
minikube stop
 ​
# 清理minikube本地状态
minikube delete

# 通过homebrew卸载
brew uninstall minikube

2、 通过 minikube 学习 k8s 实操基础

2.1 创建集群

# 二进制安装minikube
curl -Lo minikube https://github.com/kubernetes/minikube/releases/download/v1.9.2/minikube-darwin-amd64 \
&& chmod +x minikube && sudo mv minikube /usr/local/bin/

# 创建minikube集群【使用阿里的镜像】
# !!这一句之后,kubectl还会被配置为默认使用minikube!!
minikube start --image-mirror-country cn \
--iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.9.0.iso \
--registry-mirror=https://rnbhv8m8.mirror.aliyuncs.com

# 完成后,查看minikube状态
minikube status

# 打开本地dashboard
minikube dashboard

2.2 部署应用

  • deployment会帮我们创建pod
  • pod运行在一个私有的,隔离的网络上。默认情况下可以被同一个集群的其他【pod】和【service】所访问到,但是外部网络无法访问,需要通过service来暴露给外部
# 创建第一个deployment【deployment会自动创建一个pods】
kubectl create deployment codepie --image=lzw5399/codepiefe:20200423.

# 获取deployments信息
kubectl get deploy【或者全称deployments】

# 获取deploy创建的pod信息
kubectl get pods

# 临时地,允许通过api访问api-server
# 通过以下链接访问具体的pod:
# [http://localhost:8001/api/v1/namespaces/default/pods/具体的pod_name/proxy/](http://localhost:8001/api/v1/namespaces/default/pods/具体的pod_name/proxy/)
kubectl proxy
 【Starting to serve on 127.0.0.1:8001】

2.3 探索当前应用【故障排除】

1 # 获取资源
2 kubectl get pods
3 # 显示当前pod的详细状态信息
4 kubectl describe pods
5 # 显示当前pod的日志
6 kubectl logs codepie-677c5c9c56-wk4qn【pod名字】
7 # 针对某个pod执行一个命令
8 # 显示当前pod内部的环境变量
9 kubectl exec codepie-677c5c9c56-wk4qn -- env
10 # 进入到pod内部
11 kubectl exec -ti codepie-677c5c9c56-wk4qn -- bash

2.4 公开暴露应用

  • 思路就是创建service来将pod转发出去
  • 创建service的方式

1、 kubectl expose deployment/{depoly_name} –type=”NodePort” –port 80【这个port是docker容器内部的端口】
2、 kubectl create service nodeport codepie –tcp=80: 80 【create这个 80 : 80 】
3、 kubectl create -f xxx.yaml 【不推荐】
4、 kubectl apply -f xxx.yaml【推荐】

# 通过上面的方式之一来建立起service

# 访问, 或者直接在浏览器中直接访问下面的地址
# minikube ip是minikube帮我们创建的虚拟机的ip,对应着正式k8s中的pod所在node的外网ip
curl $(minikube ip):{向外暴露的端口}

2.5 使用label

# 打label
kubectl label pod {pod_name} {key}={value}

# 根据label来获取
kubectl get po -l {key}={value}

2.6 扩容应用

  • 适用于无状态应用,将一个应用扩容多个实例
  • 扩容后,service会有一个均衡负载的功能,将请求发送到相同实例的不同的pod
  • 还支持自动缩放,但是超出了本教程的范围
  • 一旦运行了多个应用程序的多个实例,就可以在不停机的情况下滚动更新
# 获取所有的deploy部署的容器实例个数
# 【DESIRED】期望的个数 【CURRENT】实际的个数
kubectl get rs 【ReplicaSet】

# 将deploy/codepie 的实例扩容成四个
# 缩容就改一下 replicas 的数值就好了
kubectl scale deploy/codepie --replicas= 4

# 以下几个都可以查看到实例变成四个
kubectl get po -o wide
kubectl get rs
kubectl get deploy

2.7 更新应用

  • 多个实例的情况下可以滚动不停机更新,且允许以下操作:

1、 通过更新docker image,更新应用程序
2、 回顾到以前的版本
3、 CI/CD, 停机时间为 0

  • 默认情况下,在更新过程中的【不可用pod的最大数量】和【可以创建新的pod的最大数量】都为 1。这两个选项都可以配置为数字或者百分比
  • 更新过程中,service会仅将流量负载到【可用的pod】
# 更新deploy对应的image
# 格式 kubectl set image deploy/{depoly_name} {docker镜像的后半部分名字}={新的image} kubectl set image deploy/codepie codepiefe=lzw5399/codepiefe:20200410.

# 打印滚动更新中的状态信息
kubectl rollout status deploy/codepie

# 回滚到指定版本,不加--to-version则回滚到上一个版本
kubectl rollout undo deploy/codepie --to-revision= 2

# 查看状态
kubectl describe po

其他章节
Kubernetes系列(一) – kubernetes入门基本概念

文章永久链接:https://tech.souyunku.com/?p=22290


Warning: A non-numeric value encountered in /data/wangzhan/tech.souyunku.com.wp/wp-content/themes/dux/functions-theme.php on line 1154
赞(69) 打赏



未经允许不得转载:搜云库技术团队 » kubernetes系列(二) – kubectl的入门操作

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码
IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

评论 抢沙发

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏


Fatal error: Uncaught Exception: Cache directory not writable. Comet Cache needs this directory please: `/data/wangzhan/tech.souyunku.com.wp/wp-content/cache/comet-cache/cache/https/tech-souyunku-com/index.q`. Set permissions to `755` or higher; `777` might be needed in some cases. in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php:367 Stack trace: #0 [internal function]: WebSharks\CometCache\Classes\AdvancedCache->outputBufferCallbackHandler() #1 /data/wangzhan/tech.souyunku.com.wp/wp-includes/functions.php(5109): ob_end_flush() #2 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(303): wp_ob_end_flush_all() #3 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /data/wangzhan/tech.souyunku.com.wp/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /data/wangzhan/tech.souyunku.com.wp/wp-includes/load.php(1097): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php on line 367