Kubernetes安装手册
Kubernetes在2014年开源后,很快便占据了容器编排的主导地位,成为容器编排的事实标准。那么Kubernetes的安装是了解它的第一步。目前有非常多的工具方法来实现Kubernetes的安装,收集了一些如下。
kubeadm:https://github.com/kubernetes/kubeadmkubeadm是官方提供的最为通用的一种部署方案。
kops:https://github.com/kubernetes/kopskops通过命令行创建,销毁,升级和维护生产级,高可用性的Kubernetes集群。目前正式支持AWS(Amazon Web Services),其中GCE和OpenStack处于beta测试阶段,而VMware vSphere处于alpha阶段。
kubespray:https://github.com/kubernetes-sigs/kubespraykubespray通过 Ansible Playbook 来定义系统与 Kubernetes 集群部署的任务。
KubeOperator: https://github.com/KubeOperator ...
Kubernetes工具集(持续收集------)
Kubescope cliKubescope cli 是一个可以运行在本地或 Kubernetes 中的工具,可直接从 Docker Daemon 中收集容器指标并可视化。和 cAdvisor 等其他集群指标收集服务一样, kubescope cli 收集指标的周期是 1 秒(而不是 10-15 秒)。如果周期是 10-15 秒,你可能会在测试期间错过一些引发性能瓶颈的问题。如果你使用 cAdvisor 进行测试,每次都要使用新的 Pod 作为测试对象,因为 Kubernetes 在超过资源限制时就会将 Pod 杀死,然后重新启动一个全新的 Pod。而 kubescope cli 就没有这方面的忧虑,它直接从 Docker Daemon 中收集容器指标(你可以自定义收集指标的时间间隔),并使用正则表达式来选择和过滤你想要显示的容器。
KubeMarkKubemark是K8s官方提供的一个对K8s集群进行性能测试的工具。它可以模拟出一个K8s cluster(Kubemark cluster),不受资源限制,从而能够测试的集群规模比真实集群大的多。这个cluster中master是真实 ...
Kubernetes更新etcd证书
在三台etcd所在的主机上执行以下操作
123456789$ cd /etc/kubernetes/pki$ mv etcd etcd.bak$ mkdir apiserver-etcd-client$ mv apiserver-etcd-client.* apiserver-etcd-client/$ kubeadm alpha phase certs etcd-ca$ kubeadm alpha phase certs etcd-server --config=/etc/kubernetes/kubeadmcfg.yaml$ kubeadm alpha phase certs etcd-peer --config=/etc/kubernetes/kubeadmcfg.yaml$ kubeadm alpha phase certs etcd-healthcheck-client --config=/etc/kubernetes/kubeadmcfg.yaml$ kubeadm alpha phase certs apiserver-etcd-client --config=/etc/ ...
Kubespray安装Kubernates过程
准备机器,绑定好IP(请关闭ipv6功能),关闭防火墙,并配置好hostname
1
在bation机器上设置免密码登录,并下载好kubespray安装脚本
先安装python3与python3-pip,并将pip进行升级
12$ yum install python3 python3-pip -y$ pip3 install --upgrade pip
安装python依赖包
1$ pip install -r requirements.txt -i https://pypi.douban.com/simple
更改镜像地址,特别是国内网络安装时
12$ vim roles/download/defaults/main.yml
OpenShift-3升级Docker服务
背景介绍OpenShift是一个开源产品,自2015年3.0版本开始,它使用Kubernetes作为底层的编排引擎,已经有将近5年了。同时它也有企业级版本,服务了众多大中小企业。经过这些年生产上的实践,OpenShift 3不断完善,已经非常稳定了,但是它依赖组件多,不断增加新的功能,使用量不断增多,一些漏洞和问题会被发现。在生产环境中,运行着大量的生产级应用,我们该如何升级Docker等组件,把业务影响降到最小,这是每个企业都无法绕过的问题。Docker作为OpenShift 3默认的容器运行,它的可靠性也尤为重要。本篇就以Docker升级为例介绍如何对OpenShift组件进行升级。升级不同OpenShift组件的思路是一样,主要是如下两条。
逐个节点升级
升级前将业务应用迁走
升级Docker实操
更新yum源中的docker包12$ cp docker-rpm/* ./extras/Packages/d/$ createrepo --update extras
迁移节点上的POD并将它设置为不可调度1$ oc adm drain <node_name> --fo ...
OpenShift-4-3部署安装(国内需要使用科学上网支持)
准备好本机访问科学上网环境
安装pip软件1$ yum install python2-pip
安装shadowsocks包1pip install shadowsocks -i https://pypi.douban.com/simple
编辑文件/etc/shadowsocks.json123456789101112$ cat > /etc/shadowsocks.json <<EOF{ "server":"shadowsocks的IP", "server_port":8388, "local_address": "0.0.0.0", "local_port":1080, "password":"fuuuuuuuuuuuuckgfw", "timeout":300, "method":" ...
OpenShift-ImageStream指向的镜像是否为内部镜像仓库
ImageStream是OpenShift中的一个特有的资源。在DeploymentConfig/BuildConfig中使用ImageStream和ImageStreamTag时经常会有这样的疑惑:究竟它指向的镜像有没有pull到OpenShift内部的镜像仓库呢?我们使用DeploymentConfig发布应用时,集群会从内部镜像仓库中pull镜像,还是从指向的外部镜像仓库中拉取?大家来看一下下面这个例子:
1$ oc import-image openshift/jenkins:v3.10 --from=docker.io/openshift/jenkins-2-centos7:v3.10 --confirm
猜一猜,以上这条命令是否会将镜像拉取到内部镜像仓库?答案是否定的,内部镜像仓库并不会拉取镜像本身,只是获取镜像的元数据,将创建的ImageStreamTag openshift/jenkins:v3.10指向镜像docker.io/openshift/jenkins-2-centos7:v3.10。这里的关键就是ImageStream[Tag]的一个配置项:re ...
OpenShift-Kafka-Operator测试报告
1. 测试环境物理机设备:集群(3 master 2 infra 3 node) 管理(1manager 部署LB+外部镜像仓库+DNS)物理机配置:40c 378GOpenshift:v3.11.0+1a90c5c-83Kubernetes:v1.11.0+d4cacc0Kafka Operator:amq-streams-1.1.0Kafka:2.1.1
2. 测试要求和内容根据测试要求,本次具体测试的功能点如下:
序号
测试项目
测试项
优先级
1
Kafka Operator部署
Kafka Operator部署
高
Kafka集群创建
高
Kafka监控部署
高
2
Kafka功能测试
Kafka创建Topic
高
Openshift集群内部Kafka producer与consumer测试
高
Openshift集群外部Kafka producer与consumer测试(NodePort方案)
高
Openshift集群外部Kafka producer与consumer测试(Router方案)
高
3
Kafka ...
OpenShift-Kubernetes中易理解错误的问题汇总
###1. readiness健康检查一直失败,Pod会不会重启?
不会,一直处于Running状态,但Not Ready。
2. Pod重启时,Pod的容器是重启,还是重新创建? POD容器不动,应用容器是重新创建。POD IP保持不变,但应用容器中的临时文件会丢失。
###3. 如果更改Deployment的配置后,马上将配置恢复回去,应用Pod是否会触发重新部署?不会,恢复回去后不会创建新的RS。
4. master_cluster_hostname与master_cluster_public_hostname的区别master_cluster_hostname是集群内部组件使用的域名master_cluster_public_hostname是集群外部使用的域名###5. 对于高可用集群中,3个master节点是完全相同的吗?openshift
不是,虽然它们的运行态是完全一致的,但是在OpenShift的运维脚本中是有区分的,如集群扩容时。有一台是主master(inventory中的第一台),它会单独保存集群的证书及一些配置。
###6. 对于statefulset类型 ...
OpenShift-Kubernetes集群-Calico-BGP管理工具calicoctl配置
calico 是容器网络的一种解决方案,也是当前最流行的方案之一。它完全利用路由规则实现动态组网,通过BGP协议通告路由。Calico BGP没有像ovs那样需要封包解包,所以它的网络性能更好。管理calico网络免不了使用calicoctl工具,本篇介绍如何在OpenShift/Kubernetes环境下,配置calicoctl来管理集群网络。
calico元数据支持两种存储类:etcd与kubernetes
安装calicoctl12$ curl -O -L https://github.com/projectcalico/calicoctl/releases/download/v3.10.0/calicoctl$ chmod a+x calicoctl
确认Calico部署时使用的元数据存储类型,查看calico-config1$ oc describe cm calico-config -n kube-system | grep datastore_type
可以为kubernetes、etcdv3。默认为etcdv3。设置为kubernetes时表示直接使用k8 ...


