Twitter manually reviewed all accounts that posted links to ElonJet -exec
Twitter Inc's head of trust and safety told Reuters the company manually reviewed "any and all accounts" that violated its new privacy policy by posting links to a Twitter account called ElonJet that tracked Elon Musk's private jet using information in the public domain.
Big Ideas in Tech for 2023: An a16z Omnibus | Andreessen Horowitz
From entertainment franchise games to the precision delivery of medicines, the a16z team highlights over 40 builder-worthy pursuits for the coming year.
I sold mine because it was far too heavy and exacerbated issues in my arm and elbow. It’s not an accessible device IMHO | Valve: No Performance Upgrades for the Next-Gen Steam Deck
The next generation of Steam Decks will likely focus on better displays and battery life, say designers.
Tesla Has Been Denied A Retrial Following Multimillion-Dollar Racism Verdict
Tesla's request for a retrial following a Black worker's racism verdict has been denied. Tesla's attempts for a retail were denied by District Judge William Orrick.
Never did I ever think RSS would live on forever yet at the same time I see how it came to fall out of favor | How to rebuild social media on top of RSS
We should look for ways to make reading, publishing, and community services all play nicely together. I'm calling this model "the unbundled web," and I think RSS should be the primary method of interop.
Interesting | Why using Alpine Docker images and Python is probably bad for your project (right now)
Alpine Linux is a distribution that is designed to be lightweight. In particular, it’s seen a lot of use in Docker images because the resulting image bundles are considerably smaller than those generated by other minimal distros. However, in the context of building a Docker image for a Python application, it’s worth thinking carefully before using Alpine, as it can often result in slower builds and counterintuitively it can even result in larger images occasionally.
Blog: Kubernetes 1.26: Alpha API For Dynamic Resource Allocation
Authors: Patrick Ohly (Intel), Kevin Klues (NVIDIA)
Dynamic resource allocation is a new API for requesting resources. It is a
generalization of the persistent volumes API for generic resources, making it possible to:
access the same resource instance in different pods and containers,
attach arbitrary constraints to a resource request to get the exact resource
you are looking for,
initialize a resource according to parameters provided by the user.
Third-party resource drivers are responsible for interpreting these parameters
as well as tracking and allocating resources as requests come in.
Dynamic resource allocation is an alpha feature and only enabled when the
DynamicResourceAllocation feature
gate and the
resource.k8s.io/v1alpha1 API group are enabled. For details, see the
--feature-gates and --runtime-config kube-apiserver
parameters .
The kube-scheduler, kube-controller-manager and kubelet components all need
the feature gate enabled as well.
The default configuration of kube-scheduler enables the DynamicResources
plugin if and only if the feature gate is enabled. Custom configurations may
have to be modified to include it.
Once dynamic resource allocation is enabled, resource drivers can be installed
to manage certain kinds of hardware. Kubernetes has a test driver that is used
for end-to-end testing, but also can be run manually. See
below for step-by-step instructions.
API
The new resource.k8s.io/v1alpha1 API group provides four new types:
ResourceClass
Defines which resource driver handles a certain kind of
resource and provides common parameters for it. ResourceClasses
are created by a cluster administrator when installing a resource
driver.
ResourceClaim
Defines a particular resource instances that is required by a
workload. Created by a user (lifecycle managed manually, can be shared
between different Pods) or for individual Pods by the control plane based on
a ResourceClaimTemplate (automatic lifecycle, typically used by just one
Pod).
ResourceClaimTemplate
Defines the spec and some meta data for creating
ResourceClaims. Created by a user when deploying a workload.
PodScheduling
Used internally by the control plane and resource drivers
to coordinate pod scheduling when ResourceClaims need to be allocated
for a Pod.
Parameters for ResourceClass and ResourceClaim are stored in separate objects,
typically using the type defined by a CRD that was created when
installing a resource driver.
With this alpha feature enabled, the spec of Pod defines ResourceClaims that are needed for a Pod
to run: this information goes into a new
resourceClaims field. Entries in that list reference either a ResourceClaim
or a ResourceClaimTemplate. When referencing a ResourceClaim, all Pods using
this .spec (for example, inside a Deployment or StatefulSet) share the same
ResourceClaim instance. When referencing a ResourceClaimTemplate, each Pod gets
its own ResourceClaim instance.
For a container defined within a Pod, the resources.claims list
defines whether that container gets
access to these resource instances, which makes it possible to share resources
between one or more containers inside the same Pod. For example, an init container could
set up the resource before the application uses it.
Here is an example of a fictional resource driver. Two ResourceClaim objects
will get created for this Pod and each container gets access to one of them.
Assuming a resource driver called resource-driver.example.com was installed
together with the following resource class:
apiVersion: resource.k8s.io/v1alpha1
kind: ResourceClass
name: resource.example.com
driverName: resource-driver.example.com
An end-user could then allocate two specific resources of type
resource.example.com as follows:
---
apiVersion : cats.resource.example.com/v1
kind : ClaimParameters
name : large-black-cats
spec :
color : black
size : large
---
apiVersion : resource.k8s.io/v1alpha1
kind : ResourceClaimTemplate
metadata :
name : large-black-cats
spec :
spec :
resourceClassName : resource.example.com
parametersRef :
apiGroup : cats.resource.example.com
kind : ClaimParameters
name : large-black-cats
–--
apiVersion : v1
kind : Pod
metadata :
name : pod-with-cats
spec :
containers : # two example containers; each container claims one cat resource
- name : first-example
image : ubuntu:22.04
command : ["sleep" , "9999" ]
resources :
claims :
- name : cat-0
- name : second-example
image : ubuntu:22.04
command : ["sleep" , "9999" ]
resources :
claims :
- name : cat-1
resourceClaims :
- name : cat-0
source :
resourceClaimTemplateName : large-black-cats
- name : cat-1
source :
resourceClaimTemplateName : large-black-cats
Scheduling
In contrast to native resources (such as CPU or RAM) and
extended resources
(managed by a
device plugin, advertised by kubelet), the scheduler has no knowledge of what
dynamic resources are available in a cluster or how they could be split up to
satisfy the requirements of a specific ResourceClaim. Resource drivers are
responsible for that. Drivers mark ResourceClaims as allocated once resources
for it are reserved. This also then tells the scheduler where in the cluster a
claimed resource is actually available.
ResourceClaims can get resources allocated as soon as the ResourceClaim
is created (immediate allocation ), without considering which Pods will use
the resource. The default (wait for first consumer ) is to delay allocation until
a Pod that relies on the ResourceClaim becomes eligible for scheduling.
This design with two allocation options is similar to how Kubernetes handles
storage provisioning with PersistentVolumes and PersistentVolumeClaims.
In the wait for first consumer mode, the scheduler checks all ResourceClaims needed
by a Pod. If the Pods has any ResourceClaims, the scheduler creates a PodScheduling
(a special object that requests scheduling details on behalf of the Pod). The PodScheduling
has the same name and namespace as the Pod and the Pod as its as owner.
Using its PodScheduling, the scheduler informs the resource drivers
responsible for those ResourceClaims about nodes that the scheduler considers
suitable for the Pod. The resource drivers respond by excluding nodes that
don't have enough of the driver's resources left.
Once the scheduler has that resource
information, it selects one node and stores that choice in the PodScheduling
object. The resource drivers then allocate resources based on the relevant
ResourceClaims so that the resources will be available on that selected node.
Once that resource allocation is complete, the scheduler attempts to schedule the Pod
to a suitable node. Scheduling can still fail at this point; for example, a different Pod could
be scheduled to the same node in the meantime. If this happens, already allocated
ResourceClaims may get deallocated to enable scheduling onto a different node.
As part of this process, ResourceClaims also get reserved for the
Pod. Currently ResourceClaims can either be used exclusively by a single Pod or
an unlimited number of Pods.
One key feature is that Pods do not get scheduled to a node unless all of
their resources are allocated and reserved. This avoids the scenario where
a Pod gets scheduled onto one node and then cannot run there, which is bad
because such a pending Pod also blocks all other resources like RAM or CPU that were
set aside for it.
Limitations
The scheduler plugin must be involved in scheduling Pods which use
ResourceClaims. Bypassing the scheduler by setting the nodeName field leads
to Pods that the kubelet refuses to start because the ResourceClaims are not
reserved or not even allocated. It may be possible to remove this
limitation in the
future.
Writing a resource driver
A dynamic resource allocation driver typically consists of two separate-but-coordinating
components: a centralized controller, and a DaemonSet of node-local kubelet
plugins. Most of the work required by the centralized controller to coordinate
with the scheduler can be handled by boilerplate code. Only the business logic
required to actually allocate ResourceClaims against the ResourceClasses owned
by the plugin needs to be customized. As such, Kubernetes provides
the following package, including APIs for invoking this boilerplate code as
well as a Driver interface that you can implement to provide their custom
business logic:
k8s.io/dynamic-resource-allocation/controller
Likewise, boilerplate code can be used to register the node-local plugin with
the kubelet, as well as start a gRPC server to implement the kubelet plugin
API. For drivers written in Go, the following package is recommended:
k8s.io/dynamic-resource-allocation/kubeletplugin
It is up to the driver developer to decide how these two components
communicate. The KEP outlines an approach using
CRDs .
Within SIG Node, we also plan to provide a complete example
driver that can serve
as a template for other drivers.
Running the test driver
The following steps bring up a local, one-node cluster directly from the
Kubernetes source code. As a prerequisite, your cluster must have nodes with a container
runtime that supports the
Container Device Interface
(CDI). For example, you can run CRI-O v1.23.2 or later.
Once containerd v1.7.0 is released, we expect that you can run that or any later version.
In the example below, we use CRI-O.
First, clone the Kubernetes source code. Inside that directory, run:
$ hack/install-etcd.sh
...
$ RUNTIME_CONFIG = resource.k8s.io/v1alpha1 \
FEATURE_GATES=DynamicResourceAllocation=true \
DNS_ADDON="coredns" \
CGROUP_DRIVER=systemd \
CONTAINER_RUNTIME_ENDPOINT=unix:///var/run/crio/crio.sock \
LOG_LEVEL=6 \
ENABLE_CSI_SNAPSHOTTER=false \
API_SECURE_PORT=6444 \
ALLOW_PRIVILEGED=1 \
PATH=$(pwd)/third_party/etcd:$PATH \
./hack/local-up-cluster.sh -O
...
To start using your cluster, you...
WebAssembly, or Wasm, was shown to be a very practical way to run code on a web browser, serving as a compiler of sorts. Eventually, it dawned on developers that Wasm could run on server operations systems as well and its use now extends across hardware platforms, leading some to attempt to view it as an alternative to Kubernetes.
NEW: Twitter currently does not have admin access to some of its GitHub repos. These repos contain Twitter source code (much of it is open source; some is not). This includes code for companies Twitter acquired, like Smyte. 1/— Zoë Schiffer (@ZoeSchiffer) December 13, 2022
I think the big takeaway is the US gov’t got a Discord Voice chat of the scheme | SEC says social media influencers used Twitter and Discord to manipulate stocks
The regulatory agency charged them in what it says was a $100 million securities fraud scheme run by people who portrayed themselves as successful stock traders.
Elon Musk is using the Twitter Files to discredit foes and push conspiracy theories
The Twitter CEO's selective release of internal communications largely corroborate what is already known about the messy business of policing a large social network.
ChatGPT is changing the game, and I want to share real things you can do with this AI system today.Please save this thread and start testing this technology NOW so you’re ahead of the curve.— Allie K. Miller (@alliekmiller) December 13, 2022