分类目录归档:LINUX

docker学习(8)—docker-compose安装

1、安装docker

2、安装docker-compose
官方建议使用curl方式安装:
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

3、查看版本
docker-compose --version
显示:
docker-compose version 1.27.4, build 40524192

4、卸载
sudo rm /usr/local/bin/docker-compose

继续阅读docker学习(8)—docker-compose安装

redis学习(3)—操作hash类型命令

1、什么是redis的hash数据结构
redis的hash数据结构,其实就是string的升级版,它把string数据结构的key/value,中的value类型升级为hash(和java中的hash一样)
Map<String, HashMap<String,String>> hash = new HashMap<String, HashMap<String,String>>();
也就是说value变成了一个hashmap

2、每个hash的存储大小:可以存储2的(32-1)次方的键值对(40多亿个)

3、存储java对象
key为对象名称,value为对象的<属性名称,属性的值>
只能存简单的pojo类,类属性都是string类型的

继续阅读redis学习(3)—操作hash类型命令

[转]wget/curl命令使用代理

国内机器跑分的时候,有些脚本下载不下来,这时候可以通过使用代理来下载

1、设置环境变量:
不带口令
export http_proxy=http://your-ip-address:port
export https_proxy=https://your-ip-address:port

带口令
export http_proxy=http://user:password@your-proxy-ip-address:port
export https_proxy=https://user:password@your-proxy-ip-address:port

2、取消代理
unset http_proxy
unset https_proxy

3、curl 使用命令行参数:[]内可选部分
protocol: http https socks5
curl -x '<[protocol://][user:password@]proxyhost[:port]>' url

4、wget 使用命令行参数:
wget --proxy=on --proxy-user "username" --proxy-password "password" url

5、wget 使用~/.wgetrc 优先级高于环境变量:
use_proxy = on
proxy_user=username
proxy_password=password
http_proxy = http://proxy.server.address:port/
https_proxy = http://proxy.server.address:port/

或者
use_proxy = on
http_proxy = http://username:password@proxy.server.address:port/
https_proxy = http://username:password@proxy.server.address:port/

6、wget 不使用代理命令行参数:
wget --no-proxy FILE_URL

redis学习(2)—操作String类型命令

1、SET命令
语法:SET key value [EX seconds] [PX milliseconds] [NX|XX]
必选参数说明
SET:命令
key:待设置的key
value:设置的key的value
可选参数说明
NX:表示key不存在才设置,如果存在则返回NULL
XX:表示key存在时才设置,如果不存在则返回NULL
EX seconds:设置过期时间,单位为秒
PX milliseconds:设置过期时间,单位为毫秒

2、SETNX命令
语法:SETNX key value
说明
所有参数为必选参数,设置一对key value,如果key存在,则设置失败,等同于SET key value NX
返回值
设置成功,返回(integer) 1
设置失败,返回(integer) 0

继续阅读redis学习(2)—操作String类型命令

redis学习(1)—概况

1、redis是一个内存数据库,主要用于数据缓存
2、redis有16个数据库,从DB0到DB15,每个数据库互相隔离,不共享
3、登录方式
默认登录本机的6379端口
./redis-cli
127.0.0.1:6379>
登录指定ip和端口
./redis-cli -h 192.168.102.62 -p 10079 -a 123_12345678^_00
192.168.102.63:10079>
4、key和value都可以指定序列化器

CentOS搭建k8s集群(12)—安装kubernetes-dashboard(方式一:官方yaml文件 + NodePort)(2)

未完成!!!

1、安装监控组件Metrics Server
官网:https://github.com/kubernetes-sigs/metrics-server
当前dashboard不能展示pod的CPU、内存等图形,由kubernetes-metrics-scraper从Metrics Server获取这些信息
下载:
cd /tmp
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.1/components.yaml

修改点1:

    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
        - --kubelet-use-node-status-port
        - --kubelet-insecure-tls
        - --metric-resolution=30s
部署:
kubectl apply -f components.yaml

继续阅读CentOS搭建k8s集群(12)—安装kubernetes-dashboard(方式一:官方yaml文件 + NodePort)(2)

CentOS搭建k8s集群(12)—安装kubernetes-dashboard(方式一:官方yaml文件 + NodePort)

1、版本信息
版本:kubernetes dashboard v2.0.4
地址:https://github.com/kubernetes/dashboard/releases/tag/v2.0.4
支持Kubernetes版本:1.19
使用的镜像版本:
kubernetesui/dashboard:v2.0.4
kubernetesui/metrics-scraper:v1.0.4

2、下载
cd /tmp
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml

将Dashboard Service改为nodePort方式
修改点1:

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard
kubectl apply -f recommended.yaml
service服务端口443,对应pod端口8443,对外暴露端口30001

继续阅读CentOS搭建k8s集群(12)—安装kubernetes-dashboard(方式一:官方yaml文件 + NodePort)

CentOS搭建k8s集群(10)—k8s如何部署pod

一、pod控制器
pod是k8s容器的最小单位,而控制它要用k8s的控制器,k8s有好几个控制器类型,常用的是以下两个:
DaemonSet方式:后台守护进程的方式,每个节点都部署一个pod副本,适合于资源监控、日志收集等功能
Deployment方式:最常用的方式,可以动态的扩展和缩小pod的数量

二、手写yaml文件方式
1、deployment yaml文件格式
例如手写一个abc.yaml
使用安装命令:kubectl apply -f abc.yaml
abc.yaml是部署文件,描述了创建资源的模板,需要手写。可以重复使用,像代码一样管理
里面定义了资源的名称、用哪个镜像、副本数量、部署位置等信息

2、那么yaml的格式说明从哪里来
1)获取所有的资源
kubectl api-resources
2)获取deployment资源信息
kubectl explain deploy
3)获取deployment下的spec字段,格式就是:type.fieldName[.fieldName]
kubectl explain deploy.spec

继续阅读CentOS搭建k8s集群(10)—k8s如何部署pod

CentOS搭建k8s集群(9)—跨node访问不通问题

集群内部,包括master和所有node都可以通过pod ip访问pod

1、前一篇说道httpd安装在node1,但是在它安装的node1上能访问,master和node2上curl不通
curl http://10.122.1.18
curl http://10.103.242.174
node1都通
master都不通
node2都不通

2、查看路由表
ip r s

10.122.0.0/24 dev cni0 proto kernel scope link src 10.122.0.1
10.122.1.0/24 via 10.122.1.0 dev flannel.1 onlink
10.122.2.0/24 via 10.122.2.0 dev flannel.1 onlink

三台机器都有flannel网络的配置

继续阅读CentOS搭建k8s集群(9)—跨node访问不通问题