光猫密码忘记了,想找到局域网内一台电脑的ip地址,就想着用工具去扫描出网络内活跃的主机。
- 安装nmap
1
brew install nmap
- 探测网络中活跃的主机
1
2# 扫描此网段有多少ip在线,探测网段中的全部主机
nmap -v -sP 192.168.1.0/24 - 探测主机系统版本
nmap -O IP:探测指定IP的相关数据1
nmap -O 192.168.1.3
- 全面扫描
nmap -A IP:扫描指定IP的全部内容1
nmap -A 192.168.1.3
光猫密码忘记了,想找到局域网内一台电脑的ip地址,就想着用工具去扫描出网络内活跃的主机。
1 | brew install nmap |
1 | # 扫描此网段有多少ip在线,探测网段中的全部主机 |
1 | nmap -O 192.168.1.3 |
1 | nmap -A 192.168.1.3 |
拿到mac电脑后,第一件事一般都会需要配置一个适合自己用的终端。我一般选择iterm2作为日常工作的终端,下面我就来记录下怎么配置我的iterm2。
1 | brew install iterm2 |
1 | cat /etc/shells |
1 | chsh -s /bin/zsh |
1 | sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
配置zsh主题
1 | vim ~/.zshrc |
字体配置
下载特定字体,以避免无法解码
1 | # clone |
打开iterm2首选项,配置文件->文件->字体,选择“Meslo LG M for Powerline”字体,如果这一步不设置,可能会出现乱码
安装推荐的插件
1 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting |
1 | git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions |
1 | vim ~/.zshrc |
通过创建一个 Kubernetes Deployment 并使用 PersistentVolumeClaim 将其连接到已有的 PersistentVolume 来运行一个有状态的应用
1 | apiVersion: v1 |
1 | kubectl apply -f mysql-pv.yaml |
1 | kubectl describe pvc mysql-pv-claim |
1 | apiVersion: v1 |
1 | kubectl describe deployment mysql-deployment #显示Deployment信息 |
1 | apiVersion: apps/v1 |
1 | kubectl apply -f nginx-deployment.yaml |
1 | kubectl describe deployment nginx-deployment #显示Deployment信息 |
1 | apiVersion: apps/v1 |
1 | kubectl apply -f nginx-deployment-update.yaml |
1 | apiVersion: apps/v1 |
1 | kubectl apply -f nginx-deployment-scale.yaml |
1 | kubectl get pods -l app=nginx #查看Pod列表,2->4 |
运行在k8s上的应用,可是单独一个组件(比如:job),也可以是多个组件协同运行(比如:deployment,service,ingress等一起构成一个应用)
k8s应用的最基本执行单元,在创建或部署k8s对象模式的最小和最简单单元,相当于集群中运行的进程。Pod是一组容器的集合,每个Pod可以由一个或多个容器组成,每个Pod由k8s分配一个集群内的IP和DNS。同一个Pod中的多个容器共享Pod的存储和网络,且总是被安排在相同的node上,且同时启动或停止。两种主要使用方法
init容器在其它容器运行之前启动运行并终止,init容器可以做一些初始化的工作。
用于管理Pods,通过将相同Pods组合成一个Workload,简化一组Pods的管理,预置的Workloads Resources如下
将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法。用来把应用运行的Pods作为网络服务暴露出来,Pods没有固定IP,Service有固定IP
k8s在cluster中创建的virtual cluster
特指k8s内部的DNS,k8s会自动为每个Pod和Service创建DNS,暴露出Pod和Service的访问出口
对集群中服务的外部访问进行管理的API对象,典型的访问方式是HTTP。可以提供负载均衡,SSL终结和基于名称的虚拟托管。
kubectl常用命令
1 | kubectl get nodes |
1 | kubectl get pods --all-namespaces |
1 | kubectl get pods -n namespace |
1 | kubectl apply -f xxxx.yaml |
1 | kubectl get svc --all-namespaces |
1 | kubectl describe pod <pod-name> -n <namespace> |
1 | kubectl get pods -o wide --all-namespaces |
1 | kubectl explain pod |
1 | kubectl exec -it <pod-name> --grace-period=0 --force |
1 | kubectl delete -f xxxx.yaml |
在k8s中,我们需要停止服务,主要有如下两种方式:
1 | kubectl delete service [service_name] |
什么是应用现代化?对老旧软件进行更新使之采用更新的计算方式,包括更新的语言,框架和基础设施平台,就相当于对旧房进行翻新。通过新技术来更新改造及现代化应用的同时,来延长应用的生命周期。
现代应用程序(Modern Application)是通过采用云原生体系结构来快速响应事件,满足客户多变需求的一种方法,它的构建采用了容器化,松散耦合的微服务架构模式,Serverless运行模式和DevOps自动化软件交付流程。
单机应用(不联网,不可扩展的单例),数据存在内存中,不使用源代码控制,不用工具来自动构建和发布新版本,不具备扩展性和适配性。
不是说用了容器技术或跑在k8s上就是现代化应用,在裸机或虚拟机上运行的应用不一定表示它不是现代化的,微服务可以跑在裸机上或虚拟机上运行。
一个应用应该从不同的角度(比如构建,运行,管理,连接和保护)具有某些特质,才能称之为现代化的应用。
Deployment资源对象yaml详解
1 | apiVersion: extensions/v1beta1 |