Diskimage-builder 是openstack社区用于制作镜像的工具。
1 | 基于CentOS 7 |
1 | #export LIBGUESTFS_BACKEND=direct |
若 virt-sysprep 报错,请 yum update 再重启物理机
排错
1 | 1. git 连接openstack/requirements 失败,更改为自己的源 |
Diskimage-builder 是openstack社区用于制作镜像的工具。
1 | 基于CentOS 7 |
1 | #export LIBGUESTFS_BACKEND=direct |
若 virt-sysprep 报错,请 yum update 再重启物理机
1 | 1. git 连接openstack/requirements 失败,更改为自己的源 |
某一集群,双网卡,突然很多业务POD异常,排查发现DNS无法解析,进而怀疑coredns出现了问题。。。
查看coredns pod日志
1 reflector.go:134] github.com/coredns/coredns/plugin/kubernetes/controller.go:317: Failed to list *v1.Endpoints: Get https://172.30.0.1:443/api/v1/endpoints?limit=500&resourceVersion=0: dial tcp 172.30.0.1:443: connect: no route to host
问题来了,172.30.0.1 是谁 ?
想起 Kuberntes svc的cidr是 172.30.0.0/16, pod的cidr是 172.20.0.0/16
由刚才那个url,判断该url为Kubeapi 的地址
1 | #kubectl get svc |
发现172.30.0.1 是kubernetes svc的地址
1 | #kubectl describe svc kubernetes |
才发现这三个endpoint不对, (服务器IP已经改为 192.168.**了。。。。)
原因是 什么呢?
想起 eth0 换IP地址了,所以肯定和换IP地址有关。
解决办法:
1 | #systemctl restart kube-controller-manager.service |
改进方法:
内群内部通信走 eth0网卡,不再改变eth0的IP,如需改变IP,只改eth1不改eth0
实际场景,有A服务器,位于某内网环境,没有外网IP,外面无法SSH
但我自己有比如阿里云上的一台服务器B,我想直接SSH A服务器,怎么办?
1 | B 服务器IP 101.198.*.* |
etcd2和etcd3是不兼容的,两者的api参数也不一样,详细请查看 etcdctl -h
api2 使用方法
ETCDCTL_API=2 etcdctl ls /
api3 使用方法
从kubernetes 1.6开始,etcd集群使用version 3, 现在生产很多集群都是1.18的了。。。
1 | #export ETCDCTL_API=3 |
查看某个具体的key的值
1 | #etcdctl --endpoints=${ETCD_ENDPOINTS} --cacert=${ETCDCTL_CACERT} --cert=${ETCDCTL_CERT} --key=${ETCDCTL_KEY} get /registry/services/endpoints/default/kubernetes --keys-only=false |
加载模块
1 | # modprobe macvlan |
配置网卡
1 | 通过macvlan 虚拟出网卡 mac_eth4_1 , 通过eth4 出去 |
多台主机互通测试~
1 | 服务器 10.16.57.168 |
1 | #git clone https://github.com/openstack/kolla -b stable/stein |
开启ipv6
calico 网络方案
(步骤略)
1 | #curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.19.0/bin/linux/amd64/kubectl |
1 | #export GOPROXY=https://goproxy.io |
惊奇发现,部署好简单? 啥也不需要配置 ? 往下走。。。。
kustomize是sig-cli的一个子项目,它的设计目的是为kubernetes提供一种可以重复使用配置的声明式应用管理,从而在配置工作中用户只需要管理和维护kubernetes的原生API对象,不需要使用复杂的模版,对 K8s 应用定义为由 Yaml 表示的资源描述,对 K8s 应用的变更可以映射到对 Yaml 的变更上。而这些变更操作可以利用 git 等版本控制程序来管理,因此用户得以使用 git 风格的流程对 K8s 应用进行管理。
提示:若担心安全问题请使用HTTPS加密源
Linux Mac Windows 通用命令
可以在使用pip的时候在后面加上-i参数,指定pip源
#pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
Linux:
修改 pip.conf 文件 (没有就创建一个)
$HOME/.config/pip/pip.conf
修改内容如下:
1 | [global] |
Mac:
修改 pip.conf 文件
$HOME/Library/Application Support/pip/pip.conf
如果没有上面的目录,在如下目录创建 pip.conf
$HOME/.config/pip/pip.conf
修改内容如下:
1 | [global] |
Windows:
修改 pip.conf 文件 (没有就创建一个)
%APPDATA%\pip\pip.ini
修改内容如下:
1 | [global] |
使用非HTTPS加密源(如豆瓣源),在执行命令发生错误,在命令最后加上--trusted-host pypi.douban.com
pip install django -i http://pypi.douban.com/simple –trusted-host pypi.douban.com
MySQL 8.0 的用户授权语句和之前版本有所区别, mysql 8.0 新增用户并授权访问
1 | >CREATE USER 'lining'@'%' IDENTIFIED BY '123456'; |